|
NAME : HCPCNODE
DESCRIPTION: Collision node for MDC hash table.
DSECT : CNODE
FUNCTION : To provide mapping of a MDC overflow hash
table node.
CREATED BY : HCPFTHRD
DELETED BY : HCPFTHUD, HCPFTHDC, HCPFMUFL, HCPFMURM
RELOCATION CONSIDERATIONS : None
NOTES :
The MDC hash table is comprised of a base hash table and
collision page(s). A hashing algorithm is used to convert
a key to the address of a base node. The base node is 3
words and is either empty or holds a single TCHBK (see
HCPTCHBK).
Multiple keys can hash to the same base node and such
collisions are handled via a chaining scheme that links
the base node with additional (collision) nodes that lie
outside the hash table proper. The second word of the
last (or only) TCHBK in the chain contains data relating
to the track represented by that TCHBK. The second word
of all other TCHBKs contain the address of a collision
node with the high-order bit set to one to indicate that
there are additional nodes. (The data words never have
the high-order bit set to one.)
A collision node is comprised of a TCHBK prefixed by a
fullword containing the data that was displaced from the
preceding TCHBK to make room for a forward pointer.
Base Node (in hash table)
+------------+------------+------------+
| TCHBK |
+------------+-----+------+------------+
|
+------------------+
|
v Collision Node (in collision page)
+------------+------------+------------+------------+
| N-1 data | TCHBK |
+------------+------------+------+-----+------------+
|
+--------------------------------+
|
v Terminal Collision Node (in collision page)
+------------+------------+------------+------------+
| N-1 data | TCHBK |
+------------+------------+------------+------------+
| |