wiki:UseCases

Version 10 (modified by nejucomo, at 2007-11-05T08:30:43Z) (diff)

Add section on node role archetypes and deployment experiences.

Network Configurations

There are several ways that people might want to use Tahoe. We're not necessarily committed to satisfying all of these use cases -- these are just possibilities.

As these network configurations develop, the node roles section develops in complement.

namenumber of nodesadministrative domainsnode capacitynode availabilitychurn
friendnet2-10many domains, but all trustedmixedmixedlow
proprietary grid -- 1x upload2-30one domainuniformhighlow
proprietary grid -- p2p upload2-30 servers, up to 50,000 clientsone domain for servers, many for clientsuniformhighlow
hivecache10-1000one domain, but not as well controlledsomewhat uniformhighlow
Allmydata plus customers10-10,000manymixedmixedmedium
global gridanymanymixedmixedhigh
  • friendnet: A group of friends want to share backup and files.
  • proprietary grid -- 1x upload: A sysadmin, or Allmydata Inc. wants to backup data onto a set of servers. The data is uploaded to the servers over a streaming protocol such as HTTP (using the Web API).
  • proprietary grid -- p2p upload: A sysadmin, or Allmydata Inc. wants to backup data onto a set of servers. The data is uploaded to the servers over the Tahoe distributed upload protocol.
  • hivecache: A sysadmin wants to backup data onto hundreds of employee workstations.
  • Allmydata plus customers: Allmydata, Inc. and its customers share a storage grid including the customer's computers.
  • global grid: A large, diverse ecosystem of people and organizations who want a storage grid with extremely high reliability and availability.

Node Roles

Network configurations can usually be thought of in terms of a topology connecting particular node roles. These roles often fulfill the same abstraction across network configurations. By allowing specialized role configurations, a plethora of custom network configurations can be deployed without modifying the code.

Here are some archetypal roles:

  • The Available Migrator consumes storage from a changing address.
    • Migration Pattern Availability - Availability is high, but address changes are frequent.
    • Examples: Laptops, mobile devices, poor DHCP configurations.
    • Should this role supply storage? If so, how does it affect average file availability? -reliability?
  • The Ephemeral Consumer consumes storage, but lacks availability.
    • Poor availability - Availability is low, such as a node that is only up when consuming storage service.
    • Examples: Backup service customer.
    • Hints:
      • Set size limit config option to 0. (Is this a kludge currently? -Nejucomo)
  • A Grid Storage Servant provides storage but does not consume it.
    • High Availability - An individual file's availability is largely dependent on average storage availability.
    • Remote Control - Typically a provider configures many nodes through a centralized manner for convenience.
    • Non Consumer - Specialized storage providers do not consume storage services.

  • A Grid Manager does not provide storage services but controls storage servents.

Deployment

The Test Grid

... Put your experience with particular configurations here ...