A multi-level architecture for distributed object bases

https://doi.org/10.1016/j.datak.2005.11.007Get rights and content

Abstract

The work described in this article arises from two needs. First, there is still a need for providing more sophisticated database systems than just relational ones. Secondly, there is a growing need for distributed databases. These needs are addressed by fragmenting schemata of a generic object data model and providing an architecture for its implementation. Key features of the architecture are the use of abstract communicating agents to realise database transactions and queries, the use of a remote object call mechanism to enable remote agents to communicate with one another, and the use of multi-level transactions. Linguistic reflection is used to map database schemata to the level of the agents. Transparency for the users is achieved by using dialogue objects, which are extended views on the database.

Introduction

The amount of data that is collected and stored in databases is steadily growing. In many cases the structure of these data is not adequately reflected in the database schema and query languages. E.g. many databases containing important biological data are organised more or less as flat files. In addition, the centralisation of data in a big central database becomes more and more a handicap for efficient data processing. As data arises at various locations and will be used at various other locations as well, the need for data distribution increases.

As to the structure of the data, the research in the last decade has investigated complex values (i.e. data constructed by various type constructors) and references/links between data – which in fact lead to infinite, yet finitely representable structures. The object oriented data model (OODM) from [1] allows these different aspects to be combined. Starting from an arbitrary underlying type system a schema is defined as a set of classes, each of which combines complex values and references. Thus, the theory of that data model can be tailored according to the underlying type system. This has been exploited in [2] to define a generic query algebra.

Thus, in order to satisfy the identified needs it is a natural idea to develop a distributed database system based on this OODM. The first problem that has to be addressed is the distribution of the data. The fragmentation and allocation of OODM schemata have recently been addressed in [3], [4], [5]. The result of fragmentation and allocation will be still an OODM schema, but each class will be allocated to exactly one node – or in the case of replication several nodes – of a network. As a consequence the global objects corresponding to the original schema would be represented by several local objects for the fragmented schema.

However, the structure of local objects is still complex, whereas efficient storage and retrieval would require to provide just records stored on pages. This implies to further decompose objects as we move closer to the physical storage, so that we obtain multiple levels of objects.

The existence of multiple levels for objects suggests to exploit the concept of multi-level transactions [6], [7], [8], [9] for the database functionality. Multi-level transaction schedulers exploit the fact that many low-level conflicts become irrelevant, if higher-level operation semantics are taken into account. The introduced system uses the hybrid multi-level concurrency control protocol FoPL [9], [10] as well as the more familiar two-phase locking protocol [8], [10]. Both are combined with a multi-level recovery system [9], [11] based on the ideas from the ARIES system [12].

The multiple object levels are also reflected in the operational system, which exploits the ideas of stack-based abstract machines [13], [14] to implement database functionality, and in particular, to integrate the processing of queries and transactions. However, these machines have to be extended in a way that they can communicate with each other including communication via remote object calls, run in parallel, are coupled with the transaction manager and the persistent object store, and reflect the operations on higher levels of the multi-level system.

Two more problems have to be addressed. The first one concerns the transformation of high-level queries and operations to the level of these stack-based machines. For this we exploit linguistic reflection [15], [16]. We provide a macro language, in which the high-level constructs in transactions such as generic update operations and the high-level algebra constructs for querying can be formulated. In [17] it has been shown how linguistic reflection can be used to expand such macros for the case of query algebra constructs. In [18] linguistic reflection has been applied to expand macros for generic update operations.

The second problem concerns transparency at the user interface. We follow the idea to provide dialogue interfaces based on dialogue objects, which are defined by extended views [19]. These dialogue objects can be created anywhere in the network. Starting an operation associated with such a dialogue object would create a master agent at the user’s node and start executing a top-level transaction.

Section 2 provides a brief overview of discussions and research activities, developments on the subject of object-oriented database systems, and our intended contribution. In Section 3 we give a more detailed overview of the architecture of our proposed system. Section 4 then briefly describes the data model, the user interface integration, fragmentation and allocation, and linguistic reflection. In Section 5 we describe more details of the operational architecture, which is comprised of components that execute database requests efficiently, support distribution, parallelism, concurrency, persistence, etc. In Section 6.1 we briefly discuss how data is cached in main memory. Section 7 briefly addresses the realisation of a corresponding prototype system. Finally, Section 8 concludes our work.

Section snippets

Object-oriented databases – A brief history

Object-oriented database systems (OODBSs) first appeared in the 1980s as both, prototype systems and commercial products. Prototype systems developed in the 1980s and early 1990s include Avance, ENCORE/ObServer, EXODUS/EXTRA, IRIS, KIWI, ORION, OZ+, and Starburst. Commercial products released in that period include GemStone, O2, ObjectStore, ONTOS, ORION-2, Statice, and VERSANT. Initially, OODBSs have been regarded as the solution to the discovery of the limitations of relational database

Architecture overview

In this section we provide an overview of the architecture of our distributed object-oriented database system (DOODBS). Fig. 1 illustrates this architecture. As virtually all modern database systems the proposed system has a layered internal architecture. Each layer has an interface that provides services invoked by the layer above it to implement their higher-level services. The distributed object-oriented database system consists of a collection of OODBS nodes (or OODBS instances) that

The data model and its interfaces

In this section we briefly address concepts related to the conceptual database level and means of database access. Database access is provided in terms of user interfaces (e.g. Web forms, SQL-like interfaces, dialogue operations, object query languages, etc.). Access through dialogue objects and operations is the only type of user access addressed in this paper. For all other means of access we refer the reader to the relevant literature, including IQL [31], [32], OQL [24], etc.

On the

The operational architecture

In this section we focus on the operational architecture of the proposed system. The operational architecture is comprised of the Request Evaluation Engine (REE), the Persistent Object Store (POS), the Transaction Management System (TMS), and a Remote Object Call (ROC) mechanism.

We describe each of these components in more detail. First, different types of agents employed by the Request Evaluation Engine are introduced. Subsequently, we will outline the motivation, purpose and internal

The caching module

Access to persistent storage devices comprises a bottleneck in terms of performance. Hence, caching or buffering mechanisms are employed to overcome this problem. We are using a system buffer to decrease access costs. It is divided into segments each accommodating pages of the same size. The page size is determined at the time a new segment is created. Generally, the page size is a multiple of the disk block-size. A page represents the smallest transfer unit between the main memory and the

Notes on problems, development and implementation

Section 2.1 outlined our research objectives. This paper mainly focuses on the general architecture for distributed object bases and its foundations. Having introduced these concepts in more detail, we now turn our attention to remaining problems and the realisation of a prototype system.

The proposed OODBS system has a modular design. This modularity will also be taken advantage of when developing prototypes. Each module has a well-defined functionality and one or more well-defined interfaces.

Conclusion

This article proposes a multi-level architecture for distributed object bases. The proposed systems meets two steadily increasing demands. On the one hand it supports a distributed architecture that is flexible w.r.t. network architectures and communication mechanisms. On the other hand the demand for representing complex, real-world objects, relationships among those objects and even behaviour associated with them as real as possible is met by describing data on the basis of an object-oriented

Markus Kirchberg studied Computer Science at Clausthal University of Technology (Germany), from which he received a Master of Science in Computer Science in 2000. During 2000 and the first half of 2001 he worked as an Assistant Lecturer at the Department of Information System at Massey University (New Zealand). Since mid 2001 he is employed as Lecturer at the Department of Information System at Massey University. Since 2003 he is also a member of the Information Science Research Centre at

References (83)

  • C. Beeri

    A formal approach to object-oriented databases

    Data and Knowledge Engineering

    (1990)
  • B. Courcelle

    Fundamental properties of infinite trees

    Theoretical Computer Science

    (1983)
  • P. Zezula et al.

    Object store with navigation acceleration

    Information Systems

    (1993)
  • P.A. Bernstein et al.

    Serializability theory for replicated databases

    Journal of Computer and System Sciences

    (1985)
  • K.-D. Schewe et al.

    Fundamental concepts of object oriented databases

    Acta Cybernetica

    (1993)
  • K.-D. Schewe

    On the unification of query algebras and their extension to rational tree structures

  • K.-D. Schewe

    Fragmentation of object oriented and semistructured data

  • H. Ma et al.

    A heuristic approach to horizontal fragmentation in object oriented databases

  • H. Ma et al.

    Query optimisation as part of distribution design for complex value databases

  • G. Weikum

    A theoretical foundation of multi-level concurrency control

  • C. Beeri et al.

    A model for concurrency in nested transactions systems

    Journal of the ACM (JACM)

    (1989)
  • G. Weikum

    Principles and realization strategies of multilevel transaction management

    ACM Transactions on Database Systems (TODS)

    (1991)
  • K.-D. Schewe et al.

    Hybrid concurrency control and recovery for multi-level transactions

    Acta Cybernetica

    (2000)
  • M. Kirchberg et al.

    A comparison of multi-level concurrency control protocols

  • M. Kirchberg

    Exploiting multi-level transactions in distributed database systems

  • C. Mohan et al.

    ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging

    ACM Transactions on Database Systems (TODS)

    (1992)
  • K. Subieta

    LOQIS: the object-oriented database programming system

    Lecture Notes in Computer Science

    (1991)
  • K. Subieta, C. Beeri, F. Matthes, J.W. Schmidt, A stack-based approach to query languages, Tech. Rep. 738, Institute of...
  • D. Stemple et al.

    A recursive base for database programming primitives

    Lecture Notes in Computer Science

    (1991)
  • D. Stemple, T. Sheard, L. Fegaras, Reflection: a bridge from programming to database languages, in: Proceedings of the...
  • D. Stemple et al.

    Exceeding the limits of polymorphism in database programming languages

  • K.-D. Schewe, D.W. Stemple, B. Thalheim, Higher-level genericity in object-oriented databases, in: Conference on...
  • K.-D. Schewe et al.

    Integrating database and dialogue design

    Knowledge and Information Systems

    (2000)
  • W. Kim, Research directions in object-oriented database systems, in: Proceedings of the Ninth ACM SIGACT-SIGMOD-SIGART...
  • M. Atkinson, F. Bancilhon, D. DeWitt, K. Dittrich, D. Maier, S. Zdonik, The object-oriented database system manifesto,...
  • The Committee for Advanced DBMS Function Corporate, Third-generation database system manifesto, SIGMOD Rec. 19(3)...
  • H. Darwen et al.

    The third manifesto

    SIGMOD Rec.

    (1995)
  • R.G.G. Catell et al.

    The Object Data Standard: ODMG 3.0

    (2000)
  • S. Alagic

    The ODMG object model: does it make sense?

    SIGPLAN Not.

    (1997)
  • C. Lamb et al.

    The ObjectStore database system

    Communications of the ACM

    (1991)
  • F. Bancilhon et al.

    Building an Object-oriented Database System: The Story of 02

    (1992)
  • S. Franklin, Choosing the right OODB solution: gain an understanding of the differences among four top OODB products,...
  • N. Leavitt

    Whatever happened to object-oriented databases?

    Computer

    (2000)
  • M. Kirchberg et al.

    A multi-level architecture for distributed object bases

  • S. Abiteboul et al.

    Object identity as a query language primitive

  • S. Abiteboul et al.

    IQL(2): a model with ubiquitous objects

  • M. Tamer Özsu et al.

    Query processing in object-oriented database systems

  • L. Cardelli et al.

    On understanding types, data abstraction, and polymorphism

    ACM Computing Surveys (CSUR)

    (1985)
  • J.C. Mitchell

    Type systems for programming languages

    (1990)
  • H. Aït-Kaci

    An overview of LIFE

  • V. Tannen et al.

    Naturally embedded query languages

  • Cited by (7)

    View all citing articles on Scopus

    Markus Kirchberg studied Computer Science at Clausthal University of Technology (Germany), from which he received a Master of Science in Computer Science in 2000. During 2000 and the first half of 2001 he worked as an Assistant Lecturer at the Department of Information System at Massey University (New Zealand). Since mid 2001 he is employed as Lecturer at the Department of Information System at Massey University. Since 2003 he is also a member of the Information Science Research Centre at Massey University. He is currently studying towards Ph.D. in Information Systems. His major research interests are Distributed Object Bases, Database Programming and Querying Languages, Transaction Processing, and Database Caching.

    Klaus-Dieter Schewe studied Mathematics and Computer Science at Bonn University (Germany). In 1985 he received his Ph.D. in Mathematics from Bonn University. During 1985 and 1990 he worked with large industrial companies in the fields of Artificial Intelligence, Software Engineering and Office Information Systems. Returning to Hamburg University in 1990 he worked on Formal Specifications and Semantics and Database Theory. In 1995 he received the Habilitation (=D.Sc.) in Theoretical Computer Science from the Brandenburgian Technical University at Cottbus (Germany). From 1994 to 1999 he worked at the Computer Science Department of the Clausthal University of Technology (Germany). Since 2000 he is Chair of Information Systems at Massey University in New Zealand. Since 2003 he is also the Director of the Information Science Research Centre at Massey University. Since his habilitation his major fields of interest are Formal Specifications and Semantics, Logic in Computer Science, Database Theory, Distributed Object Bases, and Design of Integrated Information Systems.

    Alexei Tretiakov graduated from Moscow State University (Moscow, Russia) and received a Ph.D. degree in Information Sciences from Tohoku University (Sendai, Japan). He taught for a number of years at the Graduate School of Information Sciences of Tohoku University and at the Department of Information Systems of Massey University (Palmerston North, New Zealand). Alexei’s research interests range from Stochastic Cellular Automata and Object Oriented Database Management Systems to Web-based Systems and e-Learning.

    Baide (Richard) Wang studied Mechanical Engineering at Northeastern University (P.R. China), from which he received a Master of Science in Mechanical Engineering in 1985. He studied Computer Science at Auckland University (New Zealand), from which he received a Postgraduate Diploma in Computer Science in 2001. From 2002 to 2004 he worked as Junior Research Officer at the Department of Information System at Massey University. His main research focus was on Network Communication.

    View full text