use a MappedByteBuffer to access the file, refactor the different BDB
page types into separate classes