public static class StripedBlockUtil.StripingCell extends Object
DFSStripedOutputStream
. This
size impacts how a logical offset in the file or block group translates
to physical byte offset in a stored internal block. The StripingCell util
class facilitates this calculation. Each StripingCell is inclusive with
its start and end offsets -- e.g., the end logical offset of cell_0_0_0
should be 1 byte lower than the start logical offset of cell_1_0_1.
| <------- Striped Block Group -------> |
blk_0 blk_1 blk_2
| | |
v v v
+----------+ +----------+ +----------+
|cell_0_0_0| |cell_1_0_1| |cell_2_0_2|
+----------+ +----------+ +----------+
|cell_3_1_0| |cell_4_1_1| |cell_5_1_2| <- idxInBlkGroup
= 5
+----------+ +----------+ +----------+ idxInInternalBlk
= 1
idxInStripe
= 2
A StripingCell is a special instance of StripedBlockUtil.StripingChunk
whose offset
and size align with the cell used when writing data.
TODO: consider parity cellsCopyright © 2008–2020 Apache Software Foundation. All rights reserved.