[ https://issues.apache.org/jira/browse/CASSANDRA-15393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17193067#comment-17193067 ]
Caleb Rackliffe commented on CASSANDRA-15393: --------------------------------------------- Read through the last raft of commits, and things are looking pretty good. Some closing nits... - {{ByteArrayAccessor#toString(byte[], Charset)}} doesn't look like it needs to have {{CharacterCodingException}} in its {{throws}} clause, although if you want to keep it for uniformity with the interface, I suppose that's fine. - Many of the tests in {{ByteArrayUtilTest}} seem to fail because we removed {{ByteArrayUtil#ensureCapacity()}}, which produces a more detailed error message. Not sure if we want to keep that around or leave it out (performance?) and adjust the tests to expect the simpler error. - {{ValueAccessor#createArray()}} and {{compare()}} have a dangling JavaDoc {{@return}}. - {{ValueAccessor#write()}} typo: "...into the a ByteBuffer" - {{ValueAccessor#slice()}} typo: "...@prarm offset..." - {{ValueAccessor#compareByteArrayTo()}} and {{compareByteBufferTo()}} typo: "...\{@parame <V>}..." - {{TupleType#split()}} still seems like it would be a pretty easy place to revert to {{ByteBuffer}} only to we don't have to worry about having introduced any offset-related bugs? (i.e. Literally its only usage is an overload that passes the {{ByteBufferAccessor}} singleton.) - The declaration of {{Unfiltered.Kind}} doesn't need a semicolon following it. - Might still be nice to make a note in the code around why {{Unfiltered}} has to extend {{Clusterable}} without a type bound. - In {{ByteArrayUtil#writeWithShortLength()}}, in the {{assert}}, {{0 <= length}} is always true. - Are the FIXMEs in {{DurationSerializer}} still live? bq. I also didn't convert the randomized tests to QT. That's fine w/ me. It's a pretty low-value conversion. The above notwithstanding, +1 from me overall at this point, assuming clean test runs, etc. > Add byte array backed cells > --------------------------- > > Key: CASSANDRA-15393 > URL: https://issues.apache.org/jira/browse/CASSANDRA-15393 > Project: Cassandra > Issue Type: Sub-task > Components: Local/Compaction > Reporter: Blake Eggleston > Assignee: Blake Eggleston > Priority: Normal > Fix For: 4.0-beta > > Time Spent: 20m > Remaining Estimate: 0h > > We currently materialize all values as on heap byte buffers. Byte buffers > have a fairly high overhead given how frequently they’re used, and on the > compaction and local read path we don’t do anything that needs them. Use of > byte buffer methods only happens on the coordinator. Using cells that are > backed by byte arrays instead in these situations reduces compaction and read > garbage up to 22% in many cases. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org