background preloader

NoSQL

Facebook Twitter

Unbiased, Data-Driven Comparisons. Two-phase commit protocol. In a "normal execution" of any single distributed transaction ( i.e., when no failure occurs, which is typically the most frequent situation), the protocol consists of two phases: The commit-request phase (or voting phase), in which a coordinator process attempts to prepare all the transaction's participating processes (named participants, cohorts, or workers) to take the necessary steps for either committing or aborting the transaction and to vote, either "Yes": commit (if the transaction participant's local portion execution has ended properly), or "No": abort (if a problem has been detected with the local portion), andThe commit phase, in which, based on voting of the participants, the coordinator decides whether to commit (only if all have voted "Yes") or abort the transaction (otherwise), and notifies the result to all the participants.

Two-phase commit protocol

Note that the two-phase commit (2PC) protocol should not be confused with the two-phase locking (2PL) protocol, a concurrency control protocol. Apache ZooKeeper. Apache ZooKeeper is a software project of the Apache Software Foundation, providing an open source distributed configuration service, synchronization service, and naming registry for large distributed systems.

Apache ZooKeeper

[clarification needed] ZooKeeper was a sub project of Hadoop but is now a top-level project in its own right. ZooKeeper's architecture supports high-availability through redundant services. The clients can thus ask another ZooKeeper master if the first fails to answer. ZooKeeper nodes store their data in a hierarchical name space, much like a file system or a trie datastructure.

Clients can read and write from/to the nodes and in this way have a shared configuration service. ZooKeeper is used by companies including Rackspace, Yahoo! Typical use cases[edit] See also[edit] Hadoop References[edit] External links[edit]

NoSQL Graph DB

Key-ValueNoSQL DB. Document NoSQL DB. Column NoSQL DB. Hypertable. Hypertable is an open source database system inspired by publications on the design of Google's BigTable.

Hypertable

The project is based on experience of engineers who were solving large-scale data-intensive tasks for many years. Hypertable runs on top of a distributed file system such as the Apache Hadoop DFS, GlusterFS, or the Kosmos File System (KFS). It is written almost entirely in C++. VoltDB. Architecture[edit] By making stored procedures the unit of transaction and executing them at the partition containing the necessary data, it is possible to eliminate round trip messaging between SQL statements.

VoltDB

Stored procedures are executed serially and to completion in a single threaded without any locking or latching, similar to the LMAX architecture.[2] Because the data is in memory and local to the partition, a stored procedure can execute in microseconds. VoltDB's stored procedure initiation scheme allows all nodes to initiate stored procedures while ensuring that there is a single serializable global order.[3] Versions history[edit] See also[edit] References[edit] External links[edit] Official websiteVoltDB at OhlohCurt Monash (25 May 2010). NoSQL. "Structured storage" redirects here.

NoSQL

For the Microsoft technology also known as structured storage, see COM Structured Storage. A NoSQL (often interpreted as Not Only SQL[1][2]) database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Motivations for this approach include simplicity of design, horizontal scaling and finer control over availability. The data structure (e.g. key-value, graph, or document) differs from the RDBMS, and therefore some operations are faster in NoSQL and some in RDBMS. There are differences though, and the particular suitability of a given NoSQL DB depends on the problem it must solve (e.g. does the solution use graph algorithms?). History[edit] There have been various approaches to classify NoSQL databases, each with different categories and subcategories.

A more detailed classification is the following, by Stephen Yen:[9]