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

Tracing interferes with digest requests when using RandomPartitioner

    XMLWordPrintableJSON

Details

    • Normal

    Description

      A ThreadLocal<MessageDigest> is used to generate the MD5 digest when a replica serves a read command and the isDigestQuery flag is set. The same threadlocal is also used by RandomPartitioner to decorate partition keys. So in a cluster with RP, if tracing is enabled the data digest is corrupted by the partitioner making tokens for the tracing mutations. This causes a digest mismatch on the coordinator, triggering a full data read on every read where CL > 1 (or speculative execution/read repair kick in).

      Attachments

        Issue Links

          Activity

            People

              samt Sam Tunnicliffe
              samt Sam Tunnicliffe
              Sam Tunnicliffe
              Jason Brown
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: