YGGDRASIL PROJECT - draft for publication clearance
May 5, 1989 9:54:49 am PDT
The Yggdrasil Project:
a large scale hypertext database system
Robert B. Hagmann, William Jackson, Brian Oki, and Marvin Theimer
Xerox Palo Alto Research Center
Abstract: Literature is the stored form of human information. So far, computers have mostly attacked very simple forms of literature (e. g., numbers and short strings that are interconnected in a structured way.) In the future, literature will evolve and the computer support for literature will change. One aspect of this is the database support for literature. The project discussed in this paper has the goal of storing and retrieving large numbers of large electronic documents in a way that matches the needs of the new literature.
1. Introduction
The storage, presentation, organization, access, creation, tailorability, finding, and contributing to the store of knowledge of mankind will be changing. Part of this is the underlying database support for this activity. In this paper we present a project that plans to build a database with the data model and of the scale needed for departmental sized organizations to deal with the new literature.
Literature today is thought of as a collection of writings, that have been printed, and that distill the knowledge of mankind. At various times, literature was passed orally, was restricted to "scholars," was not supposed to evolve, or was only available to the rich. Today, printed literature is widely available.
We expect that literature will evolve away from printing solely on paper. Movies, radio, telephone, television, recorded video tape, recorded audio tape, electronic mail, CD ROM, and high bandwidth communication will (continue) to provide alternative dissemination methods to printing. By scanning old format printed material into an electronic form, and performing page recognition and natural language processing, old literature will evolve into an electronic form. With electronic literature, there is a further broadening of the availability of information to the people.
The character of the literature also will change. A piece of literature can be designed to be viewed as a hologram. The piece can be active: it can run simulations, perform database queries, and compute graphics or sound. Special equipment in the "office" may be needed. A document can be shown at the level of understanding of the reader.
Literature will change faster. Much of what will be published will be of low quality. Criticism and reviews will also be published. Criticism and reviews must be used to filter the literature so that it is manageable.
Literature distills the knowledge of mankind. It should not be just the rendering of facts and opinions. It should also allow ease of learning. Using video and interactive participation of the learner, people will be able to learn easier, not just get "facts".
Since literature will become electronic, the structure of it can change. There will be non-linear documents (hypertext). Access to literature will also change: querying and filtering agents will find information for us and hide junk from us.
One of the keys to having literature evolve is to have the database. To be useful, it has to be large. It has to be able to store text files, object files, PDL files, editable documents, video, audio, as well as the normal "data" that is stored in databases (integers, dates, floats, etc.). The Yggdrasil project addresses the database issue by building a database server whose's underlying data model is hypertext, that is the "base engine" for higher level hypertext systems, that has the scale and scalability needed, and has the "systems" aspects done well.
2. Historical Perspective on Stored Information (European view)
2.1 The last fifteen centuries
During the Middle Ages, most information was passed by the oral tradition. Bards codified stories and performed them. Manuscripts and libraries, such as there were any, were owned by the Catholic Church.
In the Seventh Century, the Moors lost their Spanish foothold in Europe. The great Arabic libraries fell into Christian hands. These libraries also became the property of the Catholic Church. Monks translated books to Latin. Preservation is the major theme of libraries and of scholarship.
Paper arrived in Europe during the Eleventh and Twelfth Centuries. Prior to this time, manuscripts were usually written on parchment. Parchment is made from skin and is very expensive as compared to paper.
Nearly as a direct consequence of the introduction of paper is the forming of secular universities starting in the Twelfth Century. Vast collections of books, copied by hand, formed the nucleus that grouped a collection of scholars (note: vast is measured according to the scale of the time).
The printing press (in Europe) was invented about 1450. This altered the cost and availability of books. Literary was still very restricted and books still were very expensive to the average person.
The scholarly journal started in the 17th Century. This is a fast form of publishing that was required to keep up with the pace of the times.
Public libraries came in the 18th and 19th Centuries. The lending library came into common use in the 18th Century, while free public library became common in the 19th Century. Literary also became nearly universal due to free public education. (However, note that only half the world is literate today).
A more recent change is the introduction of the Xerox 914 copier. This device changed the way that information stored on paper can be reproduced.
2.2 Computers
The first information was stored on tape or in boxes of cards. As computers and disks became more reliable, file systems were used for the permanent storage of information (CTSS was the first system to maintain the system sources on disk in the early 1960's). Access methods for files became more commonplace, particularly within IBM. Database systems evolved that used either the hierarchical data model (e. g., IMS) or the network data model (e. g., CODASYL). More recently, the relational data model has been both a theoretical and a commercial success.
However, computer databases have only managed to capture a small fraction of the information used by society. In their marketing, Wang claims that only 1% of stored information for businesses is in "DP" and 3% on microfilm or microfiche, while the remaining 96% is on paper.
There are many reasons why paper based systems are so popular. Computer systems are expensive, are of limited capacity, require access via a terminal, are hard to use, and require special training. The database systems are large and complex. The data models are rigid. Although rigidity is a feature when the data is well structured (such as account payable), it is a determent when the information is not well structured (as in a literature).
2.3 Technology Change
Anyone that follows the computer business is very aware of technology change. We often hear of evolutions in the decreasing cost of main memory, fast commercial microprocessors, workstations, scanners, and Fax. Also coming is higher speed communications (FDDI at 100 Megabits/second), cheaper and faster electronic printers, and high capacity magnetic disks. Optical disks and optical disk jukeboxes can put on-line lots of data at a cheap cost per byte. Information services and CD ROM publishing will continue to grow.
Often overlooked are the potential of high capacity optical and magnetic tapes. If these systems can be made to be reliable and have short latencies, then they have the potential to store a good fraction of a terabyte for a few thousand dollars, with access time of a few seconds.
2.4 Perspective Summary
There have been vast changes over fifteen centuries. Where literature was once controlled by religion, it is now (almost) freely available. Where once it was important to preserve literature, it is now important to increase literature. Where the public used to be illiterate, now half of the world is literate. Where the average person was a serf, now we are faced with the post-industrial information worker. Where the media was Parchment or papyrus, now the media is evolving into an electronic one.
We have the potential for a "Future Shock." The amount of information growing. The speed of delivery is increasing. The media and delivery systems are evolving. Old schemes will not work forever.
We also have opportunity. Finding, access, presentation, organization, creation, and contributing to the store of knowledge of mankind will be changing. Reviews and criticism will have to evolve. Collaboration will increase. We need the infrastructure to enable this change. Part of this infrastructure is the database.
3. The Problem and Its Motivations
The basic problem that this project tries to solve is the storage and retrieval of large numbers of large electronic documents and/or objects. The documents can be multimedia and unstructured. The system would operate as a server that is robust, scalable, and efficient.
Yggdrasil is a project in Xerox's Palo Alto Research Center (PARC), Computer Sciences Laboratory to address many of the research issues needed to provide such a service. But the system also must provide a service to the researchers at PARC.
Although much of the research in database systems is involved with increasing the semantics of the system, many of the potential clients of these systems simply want data storage. They want the database to ``store the bits and get out of the way.'' Much of the semantics will be provided by the applications. The database must be fast, efficient, and robust.
Hence, the Yggdrasil project plans to build a database server. We want to handle large number of nodes of any size, use an appropriate data model (a form of hypertext), have non-navigational access (non-procedural access), deal with scale, interoperate, have transactions, be robust, have good performance, perform fast recovery, provide good availability, have access control, and provide hooks for building on system.
The system is "only" a database system. It has no user interface.
4. Seven Key Ideas
In this section we present the seven basic ideas for the system. None of these ideas are new. The value of this project is in the selection of ideas and their implementation as a server.
4.1 Nodes ({ documents or objects without semantics)
In keeping with the theme of literature, nodes in the database are also called documents. A node may not have a real world analogy that the reader might consider a document. The node's contents might be the number three. The node might be a source or object "file."
The system can handle a large number of nodes (e. g., millions). A node can be of any size: one byte long, or a gigabyte. Nodes (or node parts) will be archived to on-line tertiary storage (e. g., an optical disk jukebox).
Nodes have a contents. The contents of a node is a primitive value: it is a type and a value (of that type). Only a dozen or so types are understood by the server. For example, strings (any length), dates, floats (32 bit), and integers (32 bit and infinite precision) are supported. In addition, other types may be stored without the server understanding what the value means. For example, ODA documents and compressed scanned images can be stored, but the server treats them as uninterpreted bytes. The client code, not running on the server, is expected to provide the semantics for these types. The type space is fairly large (almost 32 bits) and is administrated by a database administrator without much support from the system.
4.2 Typed links
Nodes can be connected by links (hypertext) [Bush45, Engl??, Nels81]. A link is a directed pointer between two nodes. The link has a type, which is just a string. An inlink or a to link are links that point at a node, while an outlink or a from link are links leaving a node.
Nodes can efficiently determine both their inlinks and outlinks. Although links are directional, they can be followed in either way. Links are themselves nodes, so they can have attributes. Yggdrasil provides only node to node links. If a client wants a link to point at part of a node, then the client has to encode this as a property on the link.
4.3 Nodes have properties ({ attributes)
Nodes have a set of attributes or properties. Both terms are used interchangeably. The attributes of a node are a set of attribute name and attribute value pairs. The attribute name is just a string that identifies the attribute. The attribute value is a set of fields. Each field has a field name and a field value. The field value is a set of primitive values. Each of the above sets may be ordered or unordered (default is unordered).
4.4 Containers group nodes
Yggdrasil is designed to hold millions of nodes. Without some help, it is easy to get "lost in (hyper) space." Both databases and file systems have grouping mechanisms. Relational databases have relations that group similar nodes together. File systems have (hierarchical) directories that are a well accepted improvement over a flat name space. Some sort of context or grouping is needed by any large system.
Containers are the context mechanism in Yggdrasil. A container is a (possibly ordered) set of nodes. A container is associated with a root node of the container (analogous to directory in a file system). A node can belong to any number of containers. In addition, a container can be a sub-container of another container. A container can be the sub-container of any number of containers. Loops are allowed in the sub-container relation (i. e., it is a directed graph, not just a DAG).
4.5 Set oriented non-navigational access
One of the powers of relational databases is the non-navigational, relational access to data. Relations are just sets of similar items. The access to data is non-navigational in that the client characterizes what the matching data looks like, as opposed to providing the systems with an (imperative) program to get the data. Sometimes this is called non-procedural access.
Both navigational and non-navigational access are desirable. Hypertext systems are outstanding for browsing (navigating), but are not good at finding starting points for browsing.
Containers can be configured to automatically maintain indices. For any attribute, all nodes that can be reached in the transitive closure of the containment graph starting at the container are indexed. Index maintenance is specified by the "owner" of the subtree or by the database administrator. An index at a level replicates data of indices at lower levels. We intend that the query language will use the notion of container, so that often the indices can be used during query evaluation. Filters (similar to SELECT and join in a RDBMS) will be used to restrict the results of expansions.
4.6 Documents can be named
Any node can act as a directory. It is natural to expect the root nodes of containers to be directories, but the system does not make this restriction. A special system maintained property provides the name and node binding. Not all nodes have to be named and a node can have many names.
Naming can also help with the "lost in (hyper) space" problem. However, a major consequence of providing naming is that Yggdrasil can provide a view of a database that is a file system or file server. A file server front-end can be built that talks a file server protocol, and provides access to some of the data in the server. Links are not modeled in all file server protocols, so they usually disappear from the file server view. A particular file server protocol may have a restricted notion of attributes (e. g., a fixed number of them of fixed types) or the protocol may not type the contents of files. Directories may or may not have contents. In any case, the file server front-end provides a view of the database that is suitable for programs that are designed to talk to a file server.
A few front-ends are anticipated. NFS, Xerox's NS Filing Protocol, and ANSI/CCITT/OSI Filing and Retrieval are all candidates for front-ends. A server is not restricted to only one front-end filing protocol.
One prime benefit of this is to unify file systems and databases. There is one permanent storage mechanism. Different views are provided for different software. It is possible to maintain information in the database, and "publish" it via the naming system.
4.7 Versions and alternatives for nodes
Nodes can have have versions, revisions, and alternatives. A node, then, is really a tree of states. States can differ in any of contents, properties, links, containers to which it belongs, and its value as a container. A new branch may be started from any state in the tree. This is called an alternative. Major changes along a branch are called versions while minor changes are called revisions. Changes are (usually) applied at the leaves of the tree. A new version or revision is built whenever a transaction commits that changes some part of the node. The version or revision is added to the version chain for the current alternative. A new version collapses the revisions between it and the previous version.
Yggdrasil will use some "delta" and compression techniques. The system will be optimized for access to the current version.
Yggdrasil will not directly provide for the merging of alternatives and/or versions. Client level code can do the merge in an application specific manner for a container.
5. Making It Real
The system is intended to be used by many clients. Below is a brief list of features that are essential:
f data compression and decompression
f alerters (send a network message when a system event occurs)
f page level access within a node
f transactions
f whole node locking
f robust
f good performance
f fast recovery
f good availability
f surrogates (nodes whose contents are stored on foreign servers (e. g., CD ROM))
f replication
f access control and security
f administration
f backup
f use standards
f hooks for multi-server and foreign server support
One of these deserves more explanation than the others. Alerters are simple triggers set on lock, insert, delete, read, or update of a node or container. When an alerters fires, it sends a network message (using message passing or RPC) to some (set of) clients. Alerter setting is not lost due to crashes. Possible uses of alerters are screen refresh due to update of a node being viewed, cache maintenance on client machines, and triggering of services (e. g., automatic indexing of a new node.)
6. Not an OODBMS
Is this system an object-oriented database management system? It is easy to make a case for it since there is a heavy node (object) emphasis throughout this paper. However, the main difference is in execution. An OODBMS usually has a complex model for execution on the server. Yggdrasil does not.
During the concept development stage, many potential clients expressed that they wanted a database but that they wanted it to "store the bits and get out of my way." They did not want the server to do a lot of execution. RDBMS-like execution was fine: filtering the objects to be presented to the client was clearly desirable. However, the break was at filtering. Understanding the semantics for the objects retrieved, the proper data structure to hook them together, and their interpretation to this client were viewed as proper for the client. For example, nobody wanted to execute design rule checking code on the database server.
One way to use the system is for clients find a super-set of the nodes desired non-navigationally. The client then further filters the nodes (if needed). The client then builds appropriate data structures and uses semantics for the current problem. Hooks are added to the database to help clients (e. g., alerters and the type system).
In addition, full blown execution is very hard. Performance, locking, security, evolution of objects and their semantics, deadlock, match of execution model to programming model, longevity of the execution model, query optimization, and looping together make a formidable set of problems. Many of them appear to be mutually exclusive. For example, a system seems to be able to perform or be secure, but not both.
We await further research in OODBMS. However, it appears that it is much to immature to be used for real. Yggdrasil is intended to be real and to be in use for a decade or more. It can be used as the underpinnings of a OODBMS, but it is not itself an OODBMS.
7. Status
An overall system design has been proposed. The basic system is currently be constructed. It is being built over Mach and Camelot. Coding is being done in the Cedar programming language.
Mach is an operating system under development at CMU. It has tasks and threads, is message based, supports multiprocessors, and has external pagers.
Camelot is a transaction facility built on top of Mach. It is also being developed at CMU. It provides (among other things) logging, commit message protocols, recoverable storage management, media recovery, backup, and a name service.
Cedar is a programming language and a programming environment developed at Xerox PARC/CSL. It shares from its predecessor language Mesa that it is an Algol family language with strong typing, monitors, threads, exceptions, and abstract data types. Cedar adds garbage collection, generic types, lists, atoms, and other features. Single thread Cedar currently runs under Mach, with multi-thread support under development.
The initial system will have hypertext, attributes, naming, indexing, and containers. It should be in use at PARC in the fall of 1989. Many systems issues will not be directly addressed: performance, recovery, availability, access control, and data compression. Versions and alternatives, and non-navigational access will also be postponed. On-line archival storage, alerters, and better locking are candidates to include in the second system which we plan to have in use at PARC in early 1990.
8. Conclusions
This paper describes the historical foundation, goals, motivations, and basic system design for Yggdrasil. This project contributions are in the selecting existing ideas to build an artifact. The artifact is a large scale, full featured hypertext system with set oriented non-navigational access. Another major theme of the project is the integration of databases and file servers.
This system is being built to handle millions of nodes, terabytes of storage, and multiprocessors delivering hundreds of MIPs. By building such a system now, when larger scale hardware becomes available we will have experience at this more modest scale.
References
[Bush45] V. Bush, ``As We May Think,'' The Atlantic Monthly. Vol. 176, No. 1, pp. 101-108, July, 1945.
[Engl??] D. Engelbart Some augment paper
[Nels81] T. Nelson. Literary Machines. T. H. Nelson, Swarthmore, PA., 1981.