
The deinitialization of BufferPool internal objects is controled by global object, but it depends on other global objects, which leads to errors caused by undefined deinitialization order of global objects. I merge global objects initialization into single class, which performs initialization and deinitialization in correct order.