Files
scylladb/utils
Michał Chojnowski 03faf139c8 collection_mutation: don't linearize collection values
Yet another patch preventing potentially large allocations.
Currently, collection_mutation{_view,}_description linearize each collection
value during deserialization. It's not unthinkable that a user adds a
large element to a list or a map, so let's avoid that.

This patch removes the dependency on linearizing_input_stream, which does not
provide a way to read fragmented subbuffers, and replaces it with a new
helper, which does. (Extending linearizing_input_stream is not viable without
rewriting it completely).

Only linearization of collection values is corrected in this patch.
Collection keys are still linearized. Storing them in managed_bytes is likely
to be more harmful than helpful, because large map keys are extremely unlikely,
and UUIDs, which are used as keys in lists, do not fit into manages_bytes's
small value optimization, so this would incure an extra allocation for every
list element.

Note: this patch leaves utils/linearizing_input_stream.hh unused.

Refs: #8120

Closes #8690
2021-05-23 12:16:56 +03:00
..
2020-01-30 14:10:18 +02:00
2020-08-03 15:55:16 +03:00
2018-12-03 14:36:08 +01:00
2020-10-13 12:32:14 +03:00
2020-10-13 12:32:14 +03:00
2020-08-04 17:54:45 +03:00
2020-10-18 18:16:30 +03:00
2020-03-23 11:59:30 +02:00
2021-03-08 16:04:20 +01:00
2018-11-21 00:01:44 +02:00