HDFS-17937. Limit fsimage transfer concurrency during checkpoint with multiple NameNodes.#8559
HDFS-17937. Limit fsimage transfer concurrency during checkpoint with multiple NameNodes.#8559huangzhaobo99 wants to merge 4 commits into
Conversation
|
@Hexiaoqiao @ayushtkn @tomscut , could you please help review this patch? |
… multiple NameNodes.
08fa63c to
fe1b5af
Compare
|
Thanks @huangzhaobo99 for your works. Make sense to me. One concern, If the fsimage files may amass to large numbers because it can't upload to other namenodes on time when enable this configuration to end user by default? |
@Hexiaoqiao Thanks for review. I updated the concurrency policy in code as follows:
Therefore, when there are many Observer NN nodes, concurrency can be limited based on the actual deployment scenario, It will not easily lead to fsimage amass. |
|
My bad, I want to say that the checkpoint could not execute as expect because checkpoint time cost will enlarge. |
|
💔 -1 overall
This message was automatically generated. |
|
@Hexiaoqiao Yes, this can happen. This is expected, since the concurrency is configured to a low value, which increases checkpoint execution time. |
Got it. However we have changed the configuration |
Description of PR
JIRA: https://issues.apache.org/jira/browse/HDFS-17937
This patch adds dfs.namenode.checkpoint.parallel.upload.max-threads to cap fsimage upload concurrency in StandbyCheckpointer when parallel upload is enabled.
The limit is needed to avoid excessive simultaneous fsimage uploads in multi-NameNode (9 Observer NN) HA deployments, which can otherwise increase CPU/Network/Disk pressure and impact checkpoint/upload stability.
Effective concurrency is now min(remoteNNAddresses.size(), max-threads), with config/docs updates in DFSConfigKeys, CheckpointConf, and hdfs-default.xml, plus validation that max-threads >= 0.
How was this patch tested?
Added TestStandbyCheckpoints#testCheckpointParallelUploadRespectsMaxThreads UT to verify observed upload concurrency does not exceed configured max threads.