Checkpointing is an essential part of file system metadata maintenance and persistence in HDFS. It is critical for efficient recovery and restart of NameNode and is an important indicator of the overall health of the cluster. NameNode persists file system metadata. NameNode's main role is to store the HDFS namespace. That is, things like the directory tree, file permissions, and the mapping of files to block IDs. It is important that this metadata is stored securely in stable storage for fault tolerance reasons.  This file system metadata is stored in two distinct parts: the fsimage and the edit log. The fsimage is a file that represents a snapshot of the file system metadata. While the fsimage file format is very efficient to read, it is not suitable for small incremental updates such as renaming a single file. So instead of writing a new fsimage each time the namespace is changed, the NameNode instead records the change operation in the edit log for permanent storage. This way, in case of a crash, the NameNode can recover its state by first loading the fsimage and then replaying all the operations (also called edits or transactions) in the edit log to get the latest state of the namespace. The edit log consists of a series of files, called edit log segments, which together represent all the changes made to the name system since the fsimage was created.