Logo

GRAS: Architecture

General Architecture of GRAS


Though RGRAS and GRAS3 differ a lot in their implementation, the basic ideas and the general architecture of both systems are the same. The common architecture of GRAS is built up of 5 layers, each adding some functionality to the layer below. The most basic layers do not implement any graph functionality but relaize rather basic features needed in almost any database management system. The paging system as the bottom most layer is concerned with retrieving pages from stable storage and buffering them for faster access. In RGRAS, pages are read and written directly to the NFS. In GRAS3 on the other hand, storage pages are received and sent to a page-server process, i.e. GRAS3 implements client-server distribution within this architecture layer.

Image

The coarse architecture of GRAS

The record storages subsystem above the paging system maps records of data to pages. It implements a dynamic hashing algorithm (called 'tries') to efficiently find the page a record is stored on. The location of the record on the page is determined by a static hashing function.

The next three layers all implement graphs as abstract data types. Each of them adds some features to the ADT, so that the layers conceptually form an inheritance hierarchy. The basis of the hierarchy is graph storage. This subsystem already provides all basic means for manipulating graphs. It is designed to efficiently store and retrieve complex structures like the syntax tree of a programming source text. In fact, IPSEN tools not only store the syntax tree of a document but also context sensitive information like application to declaration bindings as additional edges in the database. Therefor, we rather speak of a syntax graph than a syntax tree.

Above graph storage we find the change management layer. With this layer GRAS gains the ability to recover from crashes and to undo and redo actions. It also implements all means for version control in GRAS. On top of this is the schema management. GRAS not only provides types for edges and nodes but with the schema management also a notion of type for complete graphs. The schema of a graph determines the node types in it, the attributes of a node type and type and cardinality of edges between typed nodes. Highlights of this architecture layer are a stratified type system (node classes with an inheritance relationship between them and node types, which are instances of classes) and automatic attribute evaluation.

Besides the graph layers of GRAS, the architecture features an event-trigger mechanism to implement active rules. All higher layers of GRAS forward information about events to the rule engine the only subsystem outside the strict hierarchy of the architecture. Here the layering is violated, because every layer may possibly detect events on its own. Nevertheless all events are handled and promoted by the rule engine.

Created by: system last modification: Wednesday 01 of December, 2004 [10:48:14 UTC] by Sven