Skip to content

Conversation

@jakeloo
Copy link
Member

@jakeloo jakeloo commented Aug 12, 2025

Reverts #263

Summary by CodeRabbit

  • New Features
    • Added a parallel publishing/committing mode to improve throughput.
    • In default mode, publishing now runs asynchronously after commit for faster responsiveness.
  • Refactor
    • Removed support for read-only ClickHouse configurations and related environment variables; unified storage path.
    • Removed sample readonly configuration.
  • Documentation
    • Deleted the Readonly ClickHouse setup guide.

@jakeloo jakeloo merged commit cfffac0 into main Aug 12, 2025
4 checks passed
@jakeloo jakeloo deleted the revert-263-np/read_only_clickhouse branch August 12, 2025 15:48
@coderabbitai
Copy link

coderabbitai bot commented Aug 12, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Removes all readonly ClickHouse support across config, storage factories, and connectors; deletes related docs and example config; in handlers, inlines a simplified singleton storage accessor; reworks orchestrator to support parallel publish/commit loops and async publish in default mode; adjusts logs handler to use the new accessor.

Changes

Cohort / File(s) Summary of changes
Config: remove readonly ClickHouse fields
configs/config.go
Deleted ReadonlyHost/Port/Username/Password/Database from ClickhouseConfig; removed env wiring and strconv import.
Docs and examples cleanup
configs/config_readonly_example.yml, docs/README_READONLY_CLICKHOUSE.md
Removed readonly ClickHouse example config and documentation.
Handlers: storage accessor refactor
internal/handlers/logs_handlers.go, internal/handlers/storage_utils.go
Inlined singleton getMainStorage in logs_handlers; removed storage_utils (including readonly/regular selection logic).
Storage layer: drop readonly connector and factory
internal/storage/clickhouse_readonly.go, internal/storage/connector.go
Deleted ClickHouseReadonlyConnector and its API; removed NewReadonlyConnector factory; retained NewConnector.
Orchestrator: parallel publish/commit support
internal/orchestrator/committer.go
Added parallel mode with separate publish/commit loops via WaitGroup; default mode now publishes asynchronously post-commit; updated metrics/state handling.

Sequence Diagram(s)

sequenceDiagram
  participant C as Context
  participant O as Orchestrator
  participant P as Publisher

  Note over O: Start (parallel mode)
  C->>O: Start()
  O->>P: Start()
  par Publish loop
    O->>O: runPublishLoop()
    O->>P: publish()
  and Commit loop
    O->>O: runCommitLoop()
    O->>O: commit(blockData)
  end
  C-->>O: cancel
  O->>P: Shutdown()
Loading
sequenceDiagram
  participant O as Orchestrator
  participant P as Publisher

  Note over O: Default mode commit
  O->>O: commit(blockData)
  O-->>P: publish(blockData) (async goroutine)
  P-->>O: on success update lastPublishedBlock + cleanup
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~40 minutes

Possibly related PRs

  • async commit + wh #263 — Prior PR that introduced readonly ClickHouse support; this PR removes those additions.

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7e62d5e and 5db9c31.

📒 Files selected for processing (8)
  • configs/config.go (0 hunks)
  • configs/config_readonly_example.yml (0 hunks)
  • docs/README_READONLY_CLICKHOUSE.md (0 hunks)
  • internal/handlers/logs_handlers.go (3 hunks)
  • internal/handlers/storage_utils.go (0 hunks)
  • internal/orchestrator/committer.go (4 hunks)
  • internal/storage/clickhouse_readonly.go (0 hunks)
  • internal/storage/connector.go (0 hunks)
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch revert-263-np/read_only_clickhouse

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants