Details
Description
Block reports are encoded as a PB repeating long. Repeating fields use an ArrayList with default capacity of 10. A block report containing tens or hundreds of thousand of longs (3 for each replica) is extremely expensive since the ArrayList must realloc many times. Also, decoding repeating fields will box the primitive longs which must then be unboxed.
Attachments
Attachments
Issue Links
- breaks
-
HDFS-9484 NNThroughputBenchmark$BlockReportStats should not send empty block reports
- Resolved
-
HDFS-10569 A bug causes OutOfIndex error in BlockListAsLongs
- Resolved
- contains
-
HDFS-7906 BlockReport of a RUR can have a FINALIZED original replica from Truncate
- Closed
- is caused by
-
HDFS-16284 Unboxing long value in old version's block report cause full GC
- Open
- is related to
-
HADOOP-11339 Reuse buffer for Hadoop RPC
- Open
- relates to
-
HDFS-9221 HdfsServerConstants#ReplicaState#getState should avoid calling values() since it creates a temporary array
- Closed