mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-26 19:35:12 +00:00
" This series changes the native CQL3 protocl layer so that it works with fragmented buffers instead of a single temporary_buffer per request. The main part is fragmented_temporary_buffer which represents a fragmented buffer consisting of multiple temporary_buffers. It provides helpers for reading fragmented buffer from an input_stream, interpreting the data in the fragmented buffer as well as view that satisfy FragmentRange concept. There are still situations where a fragmented buffer is linearised. That includes decompressing client requests (this uses reusable buffers in a similar way to the code that sends compressed responses), CQL statement restrictions and values that are hard-coded in prepared statements (hopefully, the values in those cases will be small), value validation in some cases (blobs are not validated, irrelevant for many fixed-size small types, but may be a problem for large text cells) as well as operations on collections. Tests: unit(release), dtests(cql_prepared_test.py, cql_tests.py, cql_additional_tests.py) " * tag 'fragmented-cql3-receive/v1' of https://github.com/pdziepak/scylla: (23 commits) types: bytes_view: override fragmented validate() cql3: value_view: switch to fragmented_temporary_buffer::view types: add validate that accepts fragmented_temporary_buffer::view cql3 query_options: add linearize() cql3: query_options: use bytes_ostream for temporaries cql3: operation: make make_cell accept fragmented_temporary_buffer::view atomic_cell: accept fragmented_temporary_buffer::view values cql3: avoid ambiguity in a call to update_parameters::make_cell() transport: switch to fragmented_temporary_buffer transport: extract compression buffers from response class tests/reusable_buffer: test fragmented_temporary_buffer support utils: reusable_buffer: support fragmented_temporary_buffer tests: add test for fragmented_temporary_buffer util fragment_range: add general linearisation functions utils: add fragmented_temporary_buffer tests: add basic test for transport requests and responses tests/random-utils: print seed tests/random-utils: generate sstrings cql3: add value_view printer and equality comparison transport: move response outside of cql_server class ...