1. A method comprising: receiving a data stream including one or more data blocks; determining a size of the one or more data blocks; determining a number of mappings based on the size of the one or more data blocks and a size of a physical block, the number of mappings being variable for different physical blocks depending on the size of the one or more data blocks stored in the physical block; retrieving a dynamically sized reverse map, a size of the dynamically sized reverse map corresponding to the variable number of mappings for different physical blocks; determining a starting location in the dynamically sized reverse map for mappings of the one or more data blocks; and creating an entry for the physical block in the dynamically sized reverse map, the entry including the number of mappings of the physical block and the starting location for the one or more data blocks, the entry being an index of the numbers of mappings for the physical block.