A OSGi-Powered Database System

On the article One size fits all: A concept whose time has come and gone, Stonebraker comments that in the past some RDBMSs advocated the idea of a single solution to solve all database management needs.

He further points out that data management needs have grown since the inception of the technology in the 1970’s. Database systems started off focusing on OLTP, that is, transaction (i.e. particularly update) intensive applications, moved to OLAP, which is analytical, that is, read-intensive in nature, and hasn’t stopped since. Other interesting examples of new application areas related to data management are stream processing, web search and indexing, XML management, and local and distributed caches.

Today, database systems are often taught in computer science courses, to the point that it is common to sub-divide its study into separate functional areas, such as:

  • Query compiler
  • Query optimizer
  • Transaction manager
  • Concurrency manager
  • Index manager
  • Buffer (Memory) manager
  • Storage manager
  • Logging and recovery manager

Consider a DBMS system that is implemented by the modularization of each one of these functional areas, for example, which could be done by composing each functional area as a separate OSGi bundle.

This DBMS system could then be easily configured for different database management needs. Let’s revisit the application areas mentioned previously, and see how modularization could help us achieve them:

  • Stream processing: extend the query compiler and optimizer to handle stream-based algebra; drop transaction, and storage manager, as there are no atomicity nor durability across events.
  • Web search: use index manager based upon inverse lookups instead of B-trees.
  • Distributed cache: distribute the logging and recovery manager.
Of course, this is a over-simplification of the challenges and work involved, however it does strike me that most of the components already exist, it is just a matter of modularizing and re-using them correctly to assemble the next database management application…
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: