= Files = == data.[0-9]+ == Hashtable entity values, the serialized V part of the Hashtable. There can be any number of these files, refered to as partitions in the code. Posting data: {{{ int value length in bytes. 0 = null byte[] serialized value }}} == key postings == Hashtable key postings list, the serialized K part of the Hashtable. If keys share the same hash code, or if the capacity is not great enough for keys to get a unique posting the the hashtable entities will be added to a list that must be iterated in order to find the correct posting. This file contains metadata in the first 1024 bytes. This really ought to be factored out to a new file. Currently it only contains two values: {{{ int next available entry offset int entity count }}} Posting data: {{{ int offset position in this file to the next entry with the same hash, -1 = null int value partition number, -1 = null value int offset position in value partition, -1 = null int key length in bytes, 0 = null byte[] serialized key (if not null) int key hash, will be used for future rehashing }}} == hashtable == The actual key entity hashtable, points at the first position in entities-file for the given hash. The position for any given key is calculated with: hash & (capacity - 1); Posting data: {{{ byte 0 = no posting. Any other value means there is a posting. int offset position to first entity with this hash }}}