Changeset 5476 for trunk/Nebulous/docs/design.txt
- Timestamp:
- Nov 4, 2005, 3:08:32 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/Nebulous/docs/design.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous/docs/design.txt
r5050 r5476 1 1 # Copyright (C) 2004-2005 Joshua Hoblitt 2 2 # 3 # $Id: design.txt,v 1. 4 2005-09-14 03:24:45jhoblitt Exp $3 # $Id: design.txt,v 1.5 2005-11-05 01:08:32 jhoblitt Exp $ 4 4 5 5 Abstract … … 7 7 8 8 Nebulous is a user-space distributed object (file) storage system. It is much 9 more a database of where objects are stored then a filesystem in the10 traditional sense. Nebulous is considered distributed because of it's data 11 storage model, where objects are stored across a number of storage volumes and 12 may have redundant copies. While IPC is done in the traditional client/server9 more of a database of objects locations then a file system in the traditional 10 sense. Nebulous is considered distributed because of it's data storage model, 11 where objects are stored across a number of storage volumes and may have one 12 or more redundant copies. While IPC is done in the traditional client/server 13 13 model with a single[1] centralized server containing all storage object 14 meta-data. This system was designed, unlike most distributed filesystems,14 meta-data. This system was designed, unlike most distributed storage system, 15 15 specifically so that clients have the option of hosting one or more storage 16 volumes. Although, if you so choose, clients and storage volumes can reside 17 on independent hardware. Above all else, Nebulous is designed to make 18 efficient use of both disk and network bandwidth. 19 20 21 Overview 22 -- 23 24 There are 4 principle components required for a working Nebulous system; 25 server, client, data transport, and data storage. The Nebulous software 26 distribution provides only the server and the client software. Data 27 transport[2] and Data storage are left to 3rd party software packages. As 28 those functionalities are typically included with most operation system. 29 Instead, Nebulous build upon and benfits from advances made in those 30 technologies. 31 32 Server 33 -- 34 35 The server is responsible for keeping track of storage objects, all instances 36 of that object, and enforcing locking semantics. Extensive logging and 37 tracing support is provided for debug and to allow for statics generation and 38 possible X<hotspot> optimization. 39 40 Nebulous uses a centralized server model. This model was choosen because it 41 allows efficient X<pattern matching> of storage object names. The current 42 'best' technique for a distributed metadata store is with distributed hash 43 tables. Unfortunately, no widely available DHT implementation allows efficent 44 I<pattern matching> of key names. 45 46 47 [1] Multiple Nebulous servers should be possible via database replication. 48 [2] A future version of Nebulous may include it's own data transport layer 49 based on the WEB DAV protocol. 50 51 Client <-> Server IPC 52 -- 53 54 The Nebulous Server and clients communicate via the SOAP protocol. Since SOAP 55 is platform independent this allows native Nebulous clients to be written in a 56 variety of languages. With in the Nebulous Server itself the IPC mechanism is 57 abstracted to allow ether multi-protocol support or complete replacement of 58 SOAP by another protocol. 59 60 XXX SOAP namespace 16 volumes and that data may be stored and accessed locally on a node. This 17 allows network I/O to be dramatically reduced if the end user does simple data 18 locality optimizations. Although, if you so choose, clients and storage 19 volumes can reside on independent hardware. Above all else, Nebulous is 20 designed to make efficient use of both disk and network bandwidth. 61 21 62 22 Data model … … 105 65 XXX 106 66 67 68 Components 69 -- 70 71 There are 4 principle components required for a working Nebulous system; 72 server, client, data transport, and data storage. The Nebulous software 73 distribution provides only the server and the client software. Data 74 transport[2] and Data storage are left to 3rd party software packages. As 75 those functionalities are typically included with most operating systems. 76 Nebulous build upon and benefits from advances made in those technologies. 77 78 Server 79 -- 80 81 The server is responsible for keeping track of storage objects, all instances 82 of that object, and enforcing locking semantics. Extensive logging and 83 tracing support is provided for debug and to allow for statics generation and 84 possible X<hotspot> optimization. 85 86 Nebulous uses a centralized server model. This model was choosen because it 87 allows efficient X<pattern matching> of storage object names. The current 88 'best' technique for a distributed metadata store is with distributed hash 89 tables. Unfortunately, no widely available DHT implementation allows efficient 90 I<pattern matching> of key names. 91 92 93 [1] Multiple Nebulous servers should be possible via database replication. 94 [2] A future version of Nebulous may include it's own data transport layer 95 based on the WEB DAV protocol. 96 97 Client <-> Server IPC 98 -- 99 100 The Nebulous Server and clients communicate via the SOAP protocol. Since SOAP 101 is platform independent this allows native Nebulous clients to be written in a 102 variety of languages. With in the Nebulous Server itself the IPC mechanism is 103 abstracted to allow ether multi-protocol support or complete replacement of 104 SOAP by another protocol. 105 106 XXX SOAP namespace 107 108 107 109 Storage volume state tracking. 108 110
Note:
See TracChangeset
for help on using the changeset viewer.
