When we see the source code of hdfs especially FSNamesystem, there is so many block related types are used such as Block, LocatedBLocks, BlocksWithLocations. And this makes me very unclear about the system.
In addition, BlocksMap just maps Block and BlockInfo, but Block becomes LocatedBlock with DatanodeInfo. With several locateBlock, these become LocatedBlocks.
Also, Combining INode related classes with Block related classes makes me unhappy.
Is there anyone who let me know about the motto of this kind of complex structure of HDFS block management and give more specific and detail information?