= 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. ||__name__||__number of nodes__||__administrative domains__||__node capacity__||__node availability__||__churn__|| ||''friendnet''||2-10||many domains, but all trusted||mixed||mixed||low|| ||''proprietary grid -- 1x upload''||2-30||one domain||uniform||high||low|| ||''proprietary grid -- p2p upload''||2-30 servers, up to 50,000 clients||one domain for servers, many for clients||uniform||high||low|| ||''hivecache''||10-1000||one domain, but not as well controlled||somewhat uniform||high||low|| ||''Allmydata plus customers''||10-10,000||many||mixed||mixed||medium|| ||''global grid''||any||many||mixed||mixed||high|| * ''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 ...