A method comprising: receiving a write request having an extent, wherein the extent is write data, the write request being processed at a storage system having a processor and a memory, the storage system being coupled to a solid state drive; applying a hash function to the extent to generate a hash value, the hash value including a hash table selector, a first hash table index (808; 820a), and a second hash table index (806; 820a); selecting a hash table from a set of hash tables (850a... 850n) using the hash table selector, each hash table being divided into at least first and second index address spaces (902, 904); selecting a first entry in the first index address space of the hash table using the first hash table index as a first index, the first entry including a first set of slots, each slot of the first set of slots including a first key and a first location field; searching each first key of the first set of slots using the second hash table index; determining whether a first free slot exists within the first set of slots, and in response to determining that the first free slot exists: identifying a location on the SSD in which to store the extent; storing an SSD offset representing the identified SSD location in the first location field of the first free slot, and storing the second hash table index as the first key of the first free slot; and storing the extent on the SSD at the SSD offset representing the identified SSD location. receiving a write request having an extent, wherein the extent is write data, the write request being processed at a storage system having a processor and a memory, the storage system being coupled to a solid state drive; applying a hash function to the extent to generate a hash value, the hash value including a hash table selector, a first hash table index (808; 820a), and a second hash table index (806; 820a); selecting a hash table from a set of hash tables (850a... 850n) using the hash table selector, each hash table being divided into at least first and second index address spaces (902, 904); selecting a first entry in the first index address space of the hash table using the first hash table index as a first index, the first entry including a first set of slots, each slot of the first set of slots including a first key and a first location field; searching each first key of the first set of slots using the second hash table index; determining whether a first free slot exists within the first set of slots, and in response to determining that the first free slot exists: identifying a location on the SSD in which to store the extent; storing an SSD offset representing the identified SSD location in the first location field of the first free slot, and storing the second hash table index as the first key of the first free slot; and storing the extent on the SSD at the SSD offset representing the identified SSD location. identifying a location on the SSD in which to store the extent; storing an SSD offset representing the identified SSD location in the first location field of the first free slot, and storing the second hash table index as the first key of the first free slot; and storing the extent on the SSD at the SSD offset representing the identified SSD location.