IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 4, 2005, 3:08:32 PM (21 years ago)
Author:
jhoblitt
Message:

update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous/docs/design.txt

    r5050 r5476  
    11# Copyright (C) 2004-2005  Joshua Hoblitt
    22#
    3 # $Id: design.txt,v 1.4 2005-09-14 03:24:45 jhoblitt Exp $
     3# $Id: design.txt,v 1.5 2005-11-05 01:08:32 jhoblitt Exp $
    44
    55Abstract
     
    77
    88Nebulous 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 the
    10 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/server
     9more of a database of objects locations then a file system in the traditional
     10sense.  Nebulous is considered distributed because of it's data storage model,
     11where objects are stored across a number of storage volumes and may have one
     12or more redundant copies.  While IPC is done in the traditional client/server
    1313model with a single[1] centralized server containing all storage object
    14 meta-data.  This system was designed, unlike most distributed filesystems,
     14meta-data.  This system was designed, unlike most distributed storage system,
    1515specifically 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
     16volumes and that data may be stored and accessed locally on a node.  This
     17allows network I/O to be dramatically reduced if the end user does simple data
     18locality optimizations.  Although, if you so choose, clients and storage
     19volumes can reside on independent hardware.  Above all else, Nebulous is
     20designed to make efficient use of both disk and network bandwidth.
    6121
    6222Data model
     
    10565XXX
    10666
     67
     68Components
     69--
     70
     71There are 4 principle components required for a working Nebulous system;
     72server, client, data transport, and data storage.  The Nebulous software
     73distribution provides only the server and the client software.  Data
     74transport[2] and Data storage are left to 3rd party software packages.  As
     75those functionalities are typically included with most operating systems.
     76Nebulous build upon and benefits from advances made in those technologies.
     77
     78Server
     79--
     80
     81The server is responsible for keeping track of storage objects, all instances
     82of that object, and enforcing locking semantics.  Extensive logging and
     83tracing support is provided for debug and to allow for statics generation and
     84possible X<hotspot> optimization.
     85
     86Nebulous uses a centralized server model.  This model was choosen because it
     87allows efficient X<pattern matching> of storage object names.  The current
     88'best' technique for a distributed metadata store is with distributed hash
     89tables.  Unfortunately, no widely available DHT implementation allows efficient
     90I<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
     95based on the WEB DAV protocol.
     96
     97Client <-> Server IPC
     98--
     99
     100The Nebulous Server and clients communicate via the SOAP protocol.  Since SOAP
     101is platform independent this allows native Nebulous clients to be written in a
     102variety of languages.  With in the Nebulous Server itself the IPC mechanism is
     103abstracted to allow ether multi-protocol support or complete replacement of
     104SOAP by another protocol.
     105
     106XXX SOAP namespace
     107
     108
    107109Storage volume state tracking.
    108110
Note: See TracChangeset for help on using the changeset viewer.