Skip to content

feat: batched inserts via mpsc channel#4

Open
Dafuriousis wants to merge 1 commit intodevelopfrom
feat/batched-inserts
Open

feat: batched inserts via mpsc channel#4
Dafuriousis wants to merge 1 commit intodevelopfrom
feat/batched-inserts

Conversation

@Dafuriousis
Copy link
Copy Markdown
Owner

Implements a batched insert buffer to reduce DB round-trips under high volume.

Changes:

  • BatchInsertRequest: Transaction + oneshot reply sender
  • spawn_batch_flusher(): mpsc channel, flushes on BATCH_INSERT_SIZE=100 items
    or BATCH_INSERT_TIMEOUT_MS=200ms timeout
  • insert_transactions_batch(): bulk INSERT ... VALUES (...),(...) RETURNING *;
    falls back to individual inserts on failure
  • AppState: batch_tx field added
  • callback handler: routes through batch channel when available, falls back to direct insert
  • main.rs: spawn_batch_flusher() called at startup
  • All test AppState constructions updated
  • Unit test: channel plumbing and reply mechanics

- BatchInsertRequest type: Transaction + oneshot reply sender
- spawn_batch_flusher(): mpsc channel, flushes on BATCH_INSERT_SIZE (100)
  or BATCH_INSERT_TIMEOUT_MS (200ms) timeout
- insert_transactions_batch(): bulk INSERT ... VALUES (...),(...) RETURNING *;
  falls back to individual inserts on failure
- AppState: batch_tx Option<mpsc::Sender<BatchInsertRequest>>,
  tenant_configs, profiling_manager fields added/restored
- callback handler: routes through batch channel when batch_tx is Some,
  falls back to direct insert otherwise
- main.rs: spawn_batch_flusher() called at startup
- All test AppState constructions updated with new fields
- Unit test: channel plumbing and reply mechanics
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.

1 participant