BREAKDOWN OF HDFS-2832 ENABLE SUPPORT FOR HETEROGENEOUS STORAGES IN HDFS IMPROVEMENTS: HDFS-4985. Add storage type to the protocol and expose it in block report and block locations. (Arpit Agarwal) HDFS-5115. Make StorageID a UUID. (Arpit Agarwal) HDFS-5000. DataNode configuration should allow specifying storage type. (Arpit Agarwal) HDFS-4987. Namenode changes to track multiple storages per datanode. (szetszwo) HDFS-5154. Fix TestBlockManager and TestDatanodeDescriptor after HDFS-4987. (Junping Du via szetszwo) HDFS-5009. Include storage information in the LocatedBlock. (szetszwo) HDFS-5134. Move blockContentsStale, heartbeatedSinceFailover and firstBlockReport from DatanodeDescriptor to DatanodeStorageInfo; and fix a synchronization problem in DatanodeStorageInfo. (szetszwo) HDFS-5157. Add StorageType to FsVolume. (Junping Du via szetszwo) HDFS-4990. Change BlockPlacementPolicy to choose storages instead of datanodes. (szetszwo) HDFS-5232. Protocol changes to transmit StorageUuid. (Arpit Agarwal) HDFS-5233. Use Datanode UUID to identify Datanodes. (Arpit Agarwal) HDFS-5222. Move block schedule information from DatanodeDescriptor to DatanodeStorageInfo. (szetszwo) HDFS-4988. Datanode must support all the volumes as individual storages. (Arpit Agarwal) HDFS-5377. Heartbeats from Datandode should include one storage report per storage directory. (Arpit Agarwal) HDFS-5398. NameNode changes to process storage reports per storage directory. (Arpit Agarwal) HDFS-5390. Send one incremental block report per storage directory. (Arpit Agarwal) HDFS-5401. Fix NPE in Directory Scanner. (Arpit Agarwal) HDFS-5417. Fix storage IDs in PBHelper and UpgradeUtilities. (szetszwo) HDFS-5214. Fix NPEs in BlockManager and DirectoryScanner. (Arpit Agarwal) HDFS-5435. File append fails to initialize storageIDs. (Junping Du via Arpit Agarwal) HDFS-5437. Fix TestBlockReport and TestBPOfferService failures. (Arpit Agarwal) HDFS-5447. Fix TestJspHelper. (Arpit Agarwal)