A type of DistributedDataStorage? where data is scattered among numerous peer nodes, which may (or may not) be geographically distributed, and the role of a centralized authority/repository (such as a RelationalDatabase engine) is minimized or eliminated.
Advantages of peer-to-peer (many of these advantages are theoretical; as production-quality peer-to-peer systems that can compete with a BigIron RDBMS like Oracle simply don't exist).
- Greater scalability. The Internet wouldn't work well if everything had to go through a central server somewhere. Servers invariably become bottlenecks.
- Can be implemented on inexpensive hardware. A RDBMS requires a piece of BigIron to run effectively.
- For applications involving multiple autonomous entities, better models the underlying political reality--each node is autonomous.
- Reliability and fault-tolerance; if one node goes down the rest still function. (Though many peer-to-peer implementations exist where if one node or link goes down, down goes everybody... [What P2P application on earth goes down if someone turns off their computer?]). With server-based systems, the server and the surrounding infrastructure is a SinglePointOfFailure.
- Better models the world; inconsistency is a part of real life.
And, the advantages of the server-based system (including things like replicated databases, where a single logical database is scattered across multiple systems).
- Much easier to achieve GlobalConcensus?--the canonical state of the system is kept by the server; everything else is just a (possibly out-of-date copy).
- Likewise, data consistency is not an issue--the OneTrueCopy? lives on the server. With peer-to-peer, it is easy for the distributed data to become inconsistent.
- Easier to maintain invariants on the data and provide transactional support (including the ability to roll back transactions which cause an invariant to not be satisfied).
- For applications involving entities under the control of one organization (such as corporations), better models the underlying political authority--the governance of the authority can implement policies for things like security, backups and data recovery, etc. at the server.
- The location of data is not an issue (it lives on the server). With peer-to-peer, before you can find out what the data is you may have to find where it is.
Note that the issues discussed here are largely orthogonal to the
RelationalModel--a
NetworkDatabase is just as capable as a
RelationalDatabase at addressing the above. (However, the most mature DBMS products are RDBMS's).