-
Notifications
You must be signed in to change notification settings - Fork 688
feat: graceful drop of recorder #2326
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Warning Rate limit exceeded@github-actions[bot] has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 25 minutes and 32 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (11)
WalkthroughThis set of changes refactors and extends the distributed key-value router subsystem. It introduces new event-driven, asynchronous, and multi-worker mechanisms for tracking prefill tokens and active sequences, adds new event types and metrics publishing functionality, and updates worker scheduling logic and endpoint definitions. Several modules are migrated to async patterns with distributed event synchronization. Changes
Sequence Diagram(s)Distributed Prefill Token SynchronizationsequenceDiagram
participant WorkerA as PrefillCountersMultiWorker (A)
participant WorkerB as PrefillCountersMultiWorker (B)
participant NATS as Distributed Event Bus
WorkerA->>NATS: Publish PrefillEvent (add tokens)
NATS->>WorkerB: Deliver PrefillEvent
WorkerB->>WorkerB: Update local counter
WorkerB->>NATS: Publish PrefillEvent (remove tokens)
NATS->>WorkerA: Deliver PrefillEvent
WorkerA->>WorkerA: Update local counter
Worker Metrics PublishingsequenceDiagram
participant Worker as WorkerMetricsPublisher
participant NATS as KV_METRICS_SUBJECT
participant Other as Metrics Aggregator
Worker->>Worker: Detect metrics change
Worker->>Worker: Wait for stability (1ms)
Worker->>NATS: Publish LoadEvent
NATS->>Other: Deliver LoadEvent
Scheduling Request FlowsequenceDiagram
participant Client as Requester
participant Scheduler as KvScheduler
participant Slots as ActiveSequencesMultiWorker
participant Selector as WorkerSelector
Client->>Scheduler: schedule(request)
Scheduler->>Slots: Compute blocks/tokens (async)
Scheduler->>Selector: Select worker
Scheduler->>Client: Respond with worker assignment
Scheduler->>Slots: Add request to slots
Estimated code review effort🎯 5 (Critical) | ⏱️ ~75 minutes Possibly related PRs
Poem
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
Overview:
as titled
Summary by CodeRabbit
New Features
Improvements
Bug Fixes
Chores
dashmapcrate.Tests