Highly concurrent cache consistency for object-oriented database systems
Markos Zaharioudakis · 1997
Contemporary object-oriented database systems (OODBMSs) are typically deployed in client-server, data-shipping environments. Data items are shipped from servers to clients so that application processing can be performed at the client workstations. For simplicity and communication efficiency, several existing OODBMSs are based on page-server architectures; data pages are their minimum unit of transfer and client caching. Despite their efficiency, page servers can be too restrictive with respect to concurrency, as existing systems use pages as the minimum locking unit as well. The first two parts of the thesis show how to support object-level locking in a page server context. Several approaches are described, including an adaptive approach that uses page-level locking for most pages but switches to object-level locking when necessary. Each of the approaches is based on extending the idea of callback locking. Performance studies (based on simulations and actual implementations) are presented that compare the different approaches with each other and with pure page and pure object servers as well. For the range of workloads examined, the proposed adaptive page server is shown to provide very good performance, usually outperforming the pure page server, the pure object server, and the other alternatives as well. In addition to user-level data, OODBMSs create indices for fast access to the user data. While client caching and related algorithms for user-level data have been studied extensively, little has been said about indices in client-server OODBMSs. In fact, many OODBMS products simply treat indices like user data and perform two-phase locking (2PL) on index nodes. This approach ignores the fact that indices require specialized handling with respect to concurrency (and therefore caching as well). The last part of this thesis presents four approaches to supporting highly concurrent $B\sp{+}$-tree indices in data-shipping OODBMSs. The first approach performs all index operations at the server, while the others support varying degrees of client caching and usage of index pages. Performance results obtained from actual implementations emphasize the need for the non-2PL approaches and demonstrate the tradeoffs between no-caching and the three caching alternatives.