[ https://issues.apache.org/jira/browse/CASSANDRA-9792?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bharatendra Boddu updated CASSANDRA-9792: ----------------------------------------- Attachment: Token.java.patch Merkle tree serialized size is further reduced by using byte to serialize a token. This table describes serialized sizes (in bytes) of Merkle trees with different depths before and after MerkleTree and Token patches. | Depth | Before patch | After patch | Diff | |-------+--------------+-------------+-------| | 8 | 15948 | 13389 | 2559 | | 9 | 31820 | 26701 | 5119 | | 10 | 63564 | 53325 | 10239 | | 11 | 127052 | 106573 | 20479 | | 12 | 254028 | 213069 | 40959 | | 13 | 507980 | 426061 | 81919 | > Reduce Merkle tree serialized size > ---------------------------------- > > Key: CASSANDRA-9792 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9792 > Project: Cassandra > Issue Type: Improvement > Components: Core > Reporter: Bharatendra Boddu > Priority: Minor > Fix For: 3.x > > Attachments: MerkleTree.java.patch, Token.java.patch > > > This patch reduces the serialized size of a Merkle Tree by 10%. With > num_tokens set to 256, 10% reduction in Merkle tree serialized size for each > token range repair, improves network bandwidth during repair > This table describes serialized sizes (in bytes) of Merkle trees with > different depths before and after patch. > Serialized size of a Merkle tree with certain depth, doesn't depend on number > of keys it represent. > | Depth | Before patch | After patch | Diff | > |-------+--------------+-------------+-------| > | 5 | 2060 | 1840 | 220 | > | 6 | 4044 | 3600 | 444 | > | 7 | 8012 | 7120 | 892 | > | 8 | 15948 | 14160 | 1788 | > | 9 | 31820 | 28240 | 3580 | > | 10 | 63564 | 56400 | 7164 | > | 11 | 127052 | 112720 | 14332 | > | 12 | 254028 | 225360 | 28668 | > | 13 | 507980 | 450640 | 57340 | > Merkle tree with depth 15, uses serialized size of ~2MB and with this patch > it will be reduce the size by ~200KB. Repairing 256 token ranges will save > ~50MB in transfer. > Also if token serialize() method uses, byte type to represent a token size, > then the serialized size can be reduced by 30 to 40%. -- This message was sent by Atlassian JIRA (v6.3.4#6332)