DRAFT -- November 25, 1987 8:16:11 am PST -- DRAFT Internal Memo XEROX To From Distribution Bob Hagmann PARC/CSL Subject Date Yggdrasil Implementation: Phase 1 Plan November 25, 1987 Introduction This memo addresses the issue of how to implement the first phase of Yggdrasil. Features needed in Phase 1 Below are the features of the system as taken from the overview memo. In strikeout are the features that are to be omitted in phase 1. f large number of documents f documents can be large f documents can be small f documents ``types'' understood by the system include text, bitmaps, digitized audio, digitized video (?), graphics, ... f documents ``types'' are extensible f documents can be connected via links (hypertext) f documents can be named via a ``hierarchical'' name system f documents can have attributes and keywords f documents are grouped into contexts called containers f keyword and other indices maintained per container f support for versions and alternatives f data compression and decompression f support for archival storage f alerters (send a message when a system event occurs) f query language and query optimizer f page level access within a document f transactions f robust f good performance f fast recovery f good availability f hooks for multi-server and foreign server support Implementation factoring Server Level 0 Disk.mesa and below The system has to have some way do finding and using ``raw'' disks. This is Disk.mesa in Cedar. We have to do something on SUN OS to interface to their ``raw'' disks. Low level communications support Runtime support B-tree and other data structures Server Level 1 Buffer manager Similar to the file and segment layers of Cypress and the file page manager of Alpine. Log manager Lock manager Transaction manager Access Control Server Communications Multi-frontend coordination manager Server Level 2 Object encoder/decoder Similar to the page layer of Cypress. Backup and backup recovery Crash recovery DID manager Performance monitoring and historical and debugging logging Client Client stub for Cedar xxx Test code from Cedar client   WordlistsYggdrasil.wordlistStyleDef BeginStyle (Cedar) AttachStyle (DefaultNest) "for print" {DoNest} PrintRule (look.w) "annotation looks" { "Cream" family bold face } ScreenRule (look.w) "annotation looks" { AlternateFontFamily bold+italic face } PrintRule (firstHeadersAfterPage) {0} .cvx .def (root) "format for root nodes" { cedarRoot docStandard 36 pt topMargin 36 pt headerMargin 1.75 in leftMargin 1.5 in rightMargin 9.00 in lineLength 24 pt topIndent 24 pt topLeading 0 leftIndent 10 pt rightIndent } ScreenRule (root) "format for root nodes" { cedarRoot docStandard 36 pt topMargin 36 pt headerMargin 1.75 in leftMargin 1.5 in rightMargin 5.25 in lineLength 24 pt topIndent 24 pt topLeading 0 leftIndent 10 pt rightIndent } PrintRule (positionInternalMemoLogo) "Xerox logo: screen" { docStandard 1 pt leading 1 pt topLeading 1 pt bottomLeading } ScreenRule (positionInternalMemoLogo) "for Xerox logo" { docStandard 1 pt leading 1 pt topLeading -28 pt bottomLeading -1.5 in leftIndent } PrintRule (internalMemoLogo) "Xerox logo: screen" { "Logo" family 18 bp size 20 pt topLeading 20 pt bottomLeading } ScreenRule (internalMemoLogo) "for Xerox logo" { "Logo" family 18 pt size 12 pt leading -28 pt topLeading 36 pt bottomLeading -1.5 in leftIndent } PrintRule (memoHead) "for the To, From, Subject nodes at front of memos" { docStandard AlternateFontFamily 240 pt tabStops } StyleRule (raggedIndent) "ragged-right block" { block flushLeft lineFormatting flushLeft lastLineFormatting 1.5 em restIndent } StyleRule EndStyleIunleadedMark centerFooteros22Iblock insideHeaderbox IpositioninternalmemologoIinternalmemologomemoheadsO t O OOOOO O88OOhead LOOLI raggedindentCharSets CharPropsPostfix XCPrintFontsQPostfix XCPrintFontsQPostfix XCPrintFontsQyPostfix XCPrintFontsyzzQ$Postfix XCPrintFonts$%%Q2Postfix XCPrintFonts233Q;Postfix XCPrintFonts;<