the data area
immediately following the transaction layer header is the 14-byte common header for the data layer (kdb). the remainder of the data layer header differs for cluster, table and index blocks. cluster blocks have a table directory, followed by a row directory. each slot in the table directory takes 4 bytes, and each slot in the row directory takes 2 bytes. table blocks are the same as cluster block, except that there can only be one table in the table directory. index blocks have a 16-byte common index block header following the common data block header, and then either a 24-byte branch block header, or a 32-byte leaf block header, depending on the block type. these index headers are followed by a row directory, as for clusters and tables.the body of each block contain the row data and free space. in general rows are inserted from the bottom of the block. however, block free space is not coalesced when rows are deleted or updated such that the overall row length is reduced. block free space is only coalesced when more contiguous space is needed for an insert or update than that which is available.