]> andersk Git - moira.git/blame - gdb/gdb.mss
fix RCS Id strings
[moira.git] / gdb / gdb.mss
CommitLineData
5580185e 1@device(imprint10)
2@make(Report, Form 1)
3@style(hyphenation on)
4@style(BindingMargin 0)
5@style(justification off)
6@style(FontFamily ComputerModernRoman10)
7@style(footnotes "")
8@begin(center)
9@majorheading(GDB)
10@heading(Global Databases for Project Athena)
11@subheading(Noah Mendelsohn)
12@subheading(April 17, 1986)
13@end(center)
14@blankspace(1 cm)
15This note is intended as a brief introduction to the Global Database
16(GDB) system being
17developed at MIT Project Athena.
18GDB is an ongoing effort, still in its early stages, to provide the
19services of a high performance shared relational database to the
20heterogeneous systems comprising the Athena network. Specifications
21have been developed for a set of library routines to be used by
22@i[clients] to access the database.
23Current plans are to use the Ingres relational database product from
24RTI as a local data manager, but to support access via the client
25library from any Berkeley Unix@+[TM]@foot(@+[TM]Unix is a trademark of
26AT&T Bell Laboratories) system in the internet. Though early
27versions will manage only a single copy of any given relation,
28replication may be added at some point in the future.
29In the meantime the client library provides a uniform framework for
30writing database applications at Athena.
31
32While designing the client library it became apparent that many of its
33underlying services for structured data storage and transmission would
34be of value for a variety of applications. Most of these interfaces
35have been exposed, and the GDB project has undertaken as a secondary
36goal the development of these simple services for structured data
37maintenance and transmission.
38
39@section(Raison d'etre@+[1]@foot[@+[1]with apologies for lack of accents in the
40font!])
41
42The GDB project was motivated by the observation that Athena
43applications tend to exploit the computational and display services of
44the system much more effectively than they use the network.
45Furthermore,
46those applications which do use the network tend to have strong
47machine type affinities, running comfortably on either a Vax or an
48RT/PC,
49but rarely both. Indeed, the @i[strategic] Athena database system is
50currently unavailable on the RT/PC's.
51
52Of the many unexplored uses of the network, globally accessible
53databases seem to have great value in a variety of disciplines, and
54they are also badly needed for certain aspects of Athena
55administration. By providing well architected services for global
56data sharing, we hope to achieve at least two goals: (1) set the
57precedent that user written applications and Athena supplied services,
58like @b[madm], @b[chhome], and @b[passwd], run compatibly
59from any machine in the network, and (2) encourage
60the development of new database applications by eliminating the need
61for individual projects and departments to develop their own
62transmission and encapsulation protocols.
63
64@section(Implementation Goals)
65
66The following goals have been established for the architecture and
67implementation of GDB:
68
69@begin(itemize)
70Access to databases stored on incompatible machines (e.g. RT/PC to
71Vax) should be supported transparently.
72
73Multiple databases, possibly at several sites, should be accessible
74simultaneously. The ability to do concurrent activity on the several
75databases is desirable.
76
77Appropriate facilities for managing structured data returned from the
78database should be provided for programmers (e.g. access fields by
79name.)
80
81Asynchronous operation should be supported, for several reasons:
82@begin(itemize)
83Required for control of simultaneous access to multiple databases.
84
85Needed for graceful interruption of long-running or erroneous
86requests.
87
88Facilitates pipelining of requests, thereby maximizing overlap of
89server and client processing.
90@end(itemize)
91
92When the internal interfaces used for session control and data
93transmission can be generalized without adding unnecessarily to their
94complexity, then those interfaces should be documented and exposed.
95@end(itemize)
96
97@section(Implementation Strategy)
98
99Several approaches to achieving these goals were considered, and an
100implementation strategy has been chosen.
101
102One approach to achieving the required function would be to rely on
103the appearance of RTI products containing the necessary facilities.
104At the very least, we would need a full function Ingres port to the
1054.2 system on the RT/PC. RTI would further have to extend Ingres for
106access to databases through the internet, and they would have to
107support such access across multiple machine types. These extensions
108would give us a core of function suitable for limited application,
109though we would have to see whether flexibility and performance were
110truly appropriate for our needs. If RTI should come forward with a
111commitment to produce these products within the next few months, then
112need for the libraries described herein might not be so great.
113Lacking such products from RTI, it seems essential that we carry
114forward with a strategy for database access from @i[all] of the
115workstations in the Athena network.
116
117Having decided to do at least some of the necessary work ourselves,
118several implementation strategies are possible. One, which is
119currently being pursued by Roman Budzianowski, is to interpose the
120appropriate transmission services between the RTI Ingres front end and
121back end. This technique has a number of interesting advantages, and
122some disadvantages. The primary advantage is the ability to run
123existing Ingres applications, including some of the forms and query
124facilities, through the network. Also, Roman reports that he has
125succeeded in running an interesting subset of applications without too
126much effort. The disadvantages of Roman's approach are the lack of
127a strategy for supporting non-Vax machines until RTI comes out with
128the appropriate base products, and the dependence on undocumented
129interfaces.
130In some cases, the front-end and the back-end are sharing files, while
131in others signals seem to be sent. It remains to be seen how successfully
132we can divine these undocumented interfaces, how stable they remain
133over time, and whether--given an RTI Ingres on the RT/PC--we can
134figure out how to do the right byte swapping on the binary data sent
135through Ingres' pipes and files. Our conclusion is that Roman's
136effort should continue, because it can
137achieve valuable results without excessive effort.
138Nevertheless, this scheme falls short of our requirement for balanced
139support of all the machines in the Athena network, so we recommend an
140alternate implementation as the primary base for Athena application
141development.
142
143A machine independent access method for relational databases could be
144constructed in many different ways. One technique we have considered
145and rejected is to base an implementation on the RPC prototype
146developed by Steve Miller and Bob Souza. While RPC is
147convenient, and the prototype appears to be of very high quality, it
148fails to meet our needs in several crucial areas. We have concluded
149that asynchronous interaction between clients and servers is
150essential for performance, for parallel execution of multiple queries,
151and for interruptibility of ongoing operations. Synchronous RPC seems
152ill-suited to these requirements. A secondary concern is the lack of
153support for procedure calls across heterogeneous architectures in the
154current version of the RPC prototype. The right hooks are supposedly
155there, but the necessary alignment and type conversion routines have
156not been built. Indeed, the prototype has yet to be ported to the
157RT/PC.
158
159As a result of this analysis, we have designed a system which uses RTI
160Ingres for the things it does (or purports to do) well, and we have
161added a flexible, asynchronous transport mechanism for transmission of
162structured data between heterogeneous processors. The specification,
163outlined in a separate document, includes libraries for creation and
164management of tuples and relations in virtual memory, along with a
165simple mechanism for typing the fields comprising a tuple. Layered
166upon these are services for transmitting fields, tuples and relations
167through the internet, doing the necessary conversions and
168re-alignments when moving between incompatible machines. These
169services, in turn, are used by a library which provides almost
170all of the services of Ingres EQUEL to clients throughout the network.
171
172@section(Project Status)
173
174The specification for the interfaces to the client library routines is
175available in draft form and is now being refined. In parallel, design
176is proceeding on the protocol to be used between the sites, and on the
177related software structures used to encapsulate and parse the
178transmitted data. The design does include a simple but flexible
179proposal for managing asynchronous activities. Coding will start soon
180on those pieces of the library which seem to be stable; refinement of
181the other parts will take a few more weeks. While our rate of
182progress will depend greatly on the number of people doing the work
183and on their other responsibilities (neither of which are clear at
184this time), I'm optimistic that a basic implementation will start
185showing signs of life within a couple of months, with polishing taking
186a bit longer.
This page took 0.100078 seconds and 5 git commands to generate.