[
https://issues.apache.org/jira/browse/HDDS-15857?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chung-En Lee updated HDDS-15857:
--------------------------------
Description:
Currently, the `getChecksums` method in `KeyValueHandler.java` fails or returns
incorrect checksums when chunks have variable sizes or are smaller than
bytesPerChunk.
The original code assumes all chunks (except the last one) have a fixed size
equal to `bytesPerChunk`. This assumption is incorrect when chunks have
different lengths, leading to wrong index calculations.
Crucially, when checksum verification is enabled, the DataNode must return the
actual ChunkInfo (which contains chunk lengths) to the client. Without this
metadata, the client cannot perceive the boundaries of each varying chunk,
making it impossible to correctly map the offsets and compute/verify the
checksums.
was:
Currently, the `getChecksums` method in `KeyValueHandler.java` fails or returns
incorrect checksums when chunks have variable sizes or are smaller than
bytesPerChunk.
The original code assumes all chunks (except the last one) have a fixed size
equal to `bytesPerChunk`. This assumption is incorrect when chunks have
different lengths, leading to wrong index calculations.
> Fix checksum calculation in KeyValueHandler for variable-sized chunks
> ---------------------------------------------------------------------
>
> Key: HDDS-15857
> URL: https://issues.apache.org/jira/browse/HDDS-15857
> Project: Apache Ozone
> Issue Type: Sub-task
> Reporter: Chung-En Lee
> Assignee: Chung-En Lee
> Priority: Critical
>
> Currently, the `getChecksums` method in `KeyValueHandler.java` fails or
> returns incorrect checksums when chunks have variable sizes or are smaller
> than bytesPerChunk.
> The original code assumes all chunks (except the last one) have a fixed size
> equal to `bytesPerChunk`. This assumption is incorrect when chunks have
> different lengths, leading to wrong index calculations.
> Crucially, when checksum verification is enabled, the DataNode must return
> the actual ChunkInfo (which contains chunk lengths) to the client. Without
> this metadata, the client cannot perceive the boundaries of each varying
> chunk, making it impossible to correctly map the offsets and compute/verify
> the checksums.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]