This class manages a buffer to cache certain amount of pages. It keeps a buffered page pool using byte[][], a hashtable matches pageNumber to page information, a look aside link list keeps all the pages not accessed by any thread at the moment.
If a thread trying to fetch a page, it gets the page info from the hashtable first.
If the page info indicated the page is a fixed page, which means it is accessed by some thread at the moment, the page is directly returned.
If the page is in a look aside link list, the page is removed from there, and becomes fixed page, and return.
If the page is not found, read it from pagedFile, put as fixed.
If there is no slot in the buffer for a new page, the first node (header) in the look aside link list is kicked off. If it is dirty, will do a write through.
After finishing reading / writing, insert the page to the end of look aside link list.
@version 1.0