METHOD TO REDUCE INDEX WRITE-AMPLIFICATION
One example method includes receiving a hash, inserting the hash into an array of an on-disk hash table that has one or more levels that each include a bundle of one or more arrays, and each of the arrays includes a plurality of hashes, and when the array into which the hash was inserted is full, merging the full array down to the next lower level of the on-disk hash table by appending the full array to a group of one or more arrays residing at the next lower level.
1 . A method, comprising:
receiving a hash;
inserting the hash into an array of an on-disk hash table that has one or more levels that each include a bundle of one or more arrays, and each of the arrays includes a plurality of hashes; and
when the array into which the hash was inserted is full, merging the full array down to the next lower level of the on-disk hash table by appending the full array to a group of one or more arrays residing at the next lower level.
2 . The method as recited in claim 1 , wherein each level in the on-disk hash table stores a larger volume of hashes than any level above it.
3 . The method as recited in claim 1 , wherein each level in the on-disk hash level varies by a specific multiple relative to an adjacent level.
4 . The method as recited in claim 1 , wherein when the full array is merged, no changes are made to the group of arrays in the level into which the full array has been merged.
5 . The method as recited in claim 1 , wherein the on-disk hash table has at least three levels.
6 . The method as recited in claim 1 , further comprising updating a bit array of a routing filter to indicate the location of the inserted hash.
7 . The method as recited in claim 1 , wherein the hashes in each of the arrays are sorted within the respective array where they are located.
8 . The method as recited in claim 1 , further comprising:
receiving a query at a routing filter associated with the on-disk hash table;
using the routing filter, identifying a possible location of a hash identified by the query; and
returning the possible location of the hash.
9 . The method as recited in claim 1 , wherein the on-disk hash table is a log-structured hash table.
10 . The method as recited in claim 1 , wherein the method is performed as part of a data deduplication process.
11 . A non-transitory storage medium having stored therein computer-executable instructions which, when executed by one or more hardware processors, perform the following operations:
receiving a hash;
inserting the hash into an array of an on-disk hash table that has one or more levels that each include a bundle of one or more arrays, and each of the arrays includes a plurality of hashes; and
when the array into which the hash was inserted is full, merging the full array down to the next lower level of the on-disk hash table by appending the full array to a group of one or more arrays residing at the next lower level.
12 . The non-transitory storage medium as recited in claim 11 , wherein each level in the on-disk hash table stores a larger volume of hashes than any level above it.
13 . The non-transitory storage medium as recited in claim 11 , wherein each level in the on-disk hash level varies by a specific multiple relative to an adjacent level.
14 . The non-transitory storage medium as recited in claim 11 , wherein when the full array is merged, no changes are made to the group of arrays in the level into which the full array has been merged.
15 . The non-transitory storage medium as recited in claim 11 , wherein the on-disk hash table has at least three levels.
16 . The non-transitory storage medium as recited in claim 11 , wherein the operations further comprise updating a bit array of a routing filter to indicate the location of the inserted hash.
17 . The non-transitory storage medium as recited in claim 11 , wherein the hashes in each of the arrays are sorted within the respective arrays where they are located.
18 . The non-transitory storage medium as recited in claim 11 , wherein the operations further comprise:
receiving a query at a routing filter associated with the on-disk hash table;
using the routing filter, identifying a possible location of a hash identified by the query; and
returning the possible location of the hash.
19 . The non-transitory storage medium as recited in claim 11 , wherein the on-disk hash table is a log-structured hash table.
20 . The non-transitory storage medium as recited in claim 19 , wherein the operations are performed as part of a data deduplication process.