final FreeList freeList = fh.getFreeList();
final int requiredSize = value.getLength() + 4;
final DataPage dataPage;
FreeSpace free = freeList.retrieve(requiredSize);
if(free == null) {
DataPage newPage = createDataPage();
free = new FreeSpace(newPage.getPageNum(), fh.getWorkSize());
freeList.add(free);
dataPage = newPage;
} else {
dataPage = getDataPage(free.getPage());
}
final long pageNum = dataPage.getPageNum();
final int tid = dataPage.add(value);