Uploaded image for project: 'Apache Cassandra'
  1. Apache Cassandra
  2. CASSANDRA-9673

Improve batchlog write path

Agile BoardAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    Description

      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 CASSANDRA-6230)
      • 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.

      Attachments

        1. gc_times_first_node_trunk_004.png
          180 kB
          Stefania Alborghetti
        2. gc_times_first_node_patched_004.png
          183 kB
          Stefania Alborghetti
        3. 9673_004.tar.gz
          3.83 MB
          Stefania Alborghetti
        4. 9673_001.tar.gz
          1.78 MB
          Stefania Alborghetti

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            stefania Stefania Alborghetti Assign to me
            aleksey Aleksey Yeschenko
            Stefania Alborghetti
            Aleksey Yeschenko
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment