  For performance reasons, conventional DBMSes adopt monolithic architectures.
A monolithic design cripples the adaptability of a DBMS, making it difficult to
customize, to meet particular requirements of different applications. In this
paper, we propose to completely separate the code of concurrency control (CC)
from a monolithic DBMS. This allows us to add / remove functionalities or data
structures to / from a DBMS easily, without concerning the issues of data
consistency. As the separation deprives the concurrency controller of the
knowledge about data organization and processing, it may incur severe
performance issues. To minimize the performance loss, we devised a two-level CC
mechanism. At the operational level, we propose a robust scheduler that
guarantees to complete any data operation at a manageable cost. At the
transactional level, the scheduler can utilize data semantics to achieve
enhanced performance. Extensive experiments were conducted to demonstrate the
feasibility and effectiveness of our approach.
