[
https://issues.apache.org/jira/browse/HDFS-8734?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Walter Su updated HDFS-8734:
----------------------------
Summary: Erasure Coding: fix one cell need two packets (was: Erasure
Coding: one cell need two packets)
> Erasure Coding: fix one cell need two packets
> ---------------------------------------------
>
> Key: HDFS-8734
> URL: https://issues.apache.org/jira/browse/HDFS-8734
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Reporter: Walter Su
> Assignee: Walter Su
> Attachments: HDFS-8734.01.patch
>
>
> The default WritePacketSize is 64k
> Currently default cellSize is 64k
> We hope one cell consumes one packet. In fact it's not.
> By default,
> chunkSize = 516( 512 data + 4 checksum)
> packetSize = 64k
> chunksPerPacket = 126 ( See DFSOutputStream#computePacketChunkSize for
> details)
> numBytes of data in one packet = 64512
> cellSize = 65536
> When first packet is full ( with 64512 data), there are still 65536 - 64512 =
> 1024 bytes left.
> {code}
> super.writeChunk(bytes, offset, len, checksum, ckoff, cklen);
> // cell is full and current packet has not been enqueued,
> if (cellFull && currentPacket != null) {
> enqueueCurrentPacketFull();
> }
> {code}
> When the last 1024 bytes of the cell was written, we meet {{cellFull}} and
> create another packet.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)