Repository navigation
Conversation
Points the client submodule at the head of questdb/java-questdb-client#121. That change groups already-published QWP frames into one TCP write of up to 64 KiB, sends before polling for writability, compacts the receive buffer once per recv instead of once per parsed frame, and accepts auto_flush_interval=off / auto_flush=off on ws:: senders. Wire bytes are unchanged; only the grouping of frames into TCP writes changes, so the QWP server suites now run against batched writes.
The bumped client packs every published frame into one TCP write of up to 64 KiB, so the server now receives bursts of frames per read, often ending mid-frame. These tests drive the real client in those shapes: - QwpSenderBatchedSendE2ETest flushes every row with a new symbol per row, fragmented and unfragmented, so each frame carries a dictionary delta and a lost or reordered frame shows up as a wrong or NULL symbol. It also mixes frames above the 64 KiB batch cap with small ones, runs deferred-commit transactions whose frames share writes, and pins auto_flush=off and auto_flush_interval=off on ws::. - QwpWebSocketSenderTlsE2ETest adds the per-row case over wss through the TLS proxy. - QwpEgressSmallFrameBurstTest streams a result one row per frame, so the client parses bursts of small frames per recv and keeps a partial tail until its next recv.
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the
|
|
Azure Pipelines: Successfully started running 1 pipeline(s). There may be pipelines that require an authorized user to comment /azp run to run. |
Picks up the client commit that rejects auto_flush=off / disableAutoFlush() on ws:: again, as main does. Only the time-based trigger can now be turned off on WebSocket, with auto_flush_interval=off.
The client keeps rejecting auto_flush=off on WebSocket and accepts only auto_flush_interval=off. The test that published only on flush() and close() now turns the row and interval triggers off individually, and a new test pins that auto_flush=off fails at build with the WebSocket rejection.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tandem: questdb/java-questdb-client#121, questdb/questdb-enterprise#1396
ws::senders acceptauto_flush_interval=offand rejectauto_flush=off.The client change groups already-published QWP frames into one TCP write of up to 64 KiB. The bytes on the wire do not change, but the server now receives bursts of frames per read, often ending mid-frame. The data tests give every row a new symbol, so every frame carries a symbol-dictionary delta and a lost, duplicated or reordered frame shows up as a wrong or NULL symbol, not only as a wrong row count.