Currently we allocate an on-heap ByteBuffer to serialize the batched mutations into, before sending it to a distant node, generating unnecessary garbage (potentially a lot of it).
With materialized views using the batchlog, it would be nice to optimise the write path:
- introduce a new verb (Batch)
- introduce a new message (BatchMessage) that would encapsulate the mutations, expiration, and creation time (similar to HintMessage in
- have MS serialize it directly instead of relying on an intermediate buffer
To avoid merely shifting the temp buffer to the receiving side(s) we should change the structure of the batchlog table to use a list or a map of individual mutations.