Huginn-kio opened a new pull request, #8662:
URL: https://github.com/apache/hbase/pull/8662

   ## HBASE-30390
   
   ### Summary
   
   Avoid copying previous cell values during data block encoding.
   
   JIRA: https://issues.apache.org/jira/browse/HBASE-30390
   
   ### Root cause
   
   `EncodingState.beforeShipped()` copies the complete previous cell with
   `KeyValueUtil.copyToNewKeyValue()`. `FastDiffDeltaEncoder` then uses that 
copied
   cell for previous-value length and content comparison. This allocates and 
copies
   value bytes even though the encoded value is already in the writer buffer.
   
   ### Fix
   
   - Keep previous key metadata stable with a key-only materialization.
   - Track previous value length separately.
   - Compare FAST_DIFF values against the encoded writer buffer after shipping.
   - Add focused regression coverage for shipped cells, reused buffers, and 
failed
     encoding paths.
   
   ### Testing
   
   - `JAVA_HOME=$(/usr/libexec/java_home -v 17) mvn -pl hbase-common -am 
-Dtest=TestFastDiffEncodingState -Dsurefire.failIfNoSpecifiedTests=false 
-DskipITs test`
     - Passed: 6 tests, 0 failures, 0 errors, 0 skipped.
   - `JAVA_HOME=$(/usr/libexec/java_home -v 17) mvn -pl hbase-server -am 
-DskipTests -Dcheckstyle.skip=true -Drat.skip=true -Dspotbugs.skip=true compile`
     - Passed: server reactor compilation completed successfully.
   - Scoped Checkstyle for the two new state classes and the regression test 
passed.
   - `apache-rat:check` and `spotbugs:check` passed for `hbase-common`.
   
   The full reactor Checkstyle command is currently blocked by existing
   `InterfaceIsType` violations in the `hbase-annotations` test-classification
   interfaces; none of the reported lines are part of this change.
   
   ### Compatibility
   
   - No public API impact; changes are internal.
   - No configuration impact.
   - No persisted-format or wire-format impact; encoded output semantics are 
unchanged.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to