in btrieve, each page is fixed but a record can be larger than the page size. this means that records often need to be fragmented and spread over many different pages. with very large records this can mean that many hundreds of pages may need to be used in order to store the record. a linked list approach would be able to allow for this fragmentation, but the btrieve engine would have a hard time reading through sequential records. therefore, starting with version 6.1, a table is used in the file that stores pointers to each of the pages that make up the data record. this table is called a "variable-tail allocation table" (vat).