The storage required for the bottom HNSW layer accounted for most of its memory usage. Each node within the HNSW structure required: (1) 4 bytes to specify the number of neighbors, (2) 4 * (2*M) bytes to store the node IDs of the (2*M) neighbors on the bottom layer, (3) D/8 bytes to store the fingerprint data where D is the length of the fingerprint, (4) 8 bytes to store the number of set bits, and