Database Reference
In-Depth Information
a RESTful HTTP API for reading and updating (add, edit, delete) database
documents. The CouchDB document update model is lockless and optimistic.
Document edits are made by client applications. If another client was editing the
same document at the same time, the client gets an edit conflict error on save.
To resolve the update conflict, the latest document version can be opened, the edits
reapplied and the update retried again. Document updates are all or nothing, either
succeeding entirely or failing completely. The database never contains partially
saved or edited documents.
MongoDB [ 38 ] is another example of distributed schema-free document-oriented
database which is created at 10gen . 1 It is implemented in C CC but provides
drivers for a number of programming languages including C, C CC , Erlang.
Haskell, Java, JavaScript, Perl, PHP, Python, Ruby, and Scala. It also provides a
JavaScript command-line interface. MongoDB stores documents as BSON (Binary
JSON) which are binary encoded JSON like objects. BSON supports nested object
structures with embedded objects and arrays. At the heart of MongoDB is the
concept of a document which is represented as an ordered set of keys with associated
values. A collection is a group of documents. If a document is the MongoDB analog
of a row in a relational database, then a collection can be thought of as the analog to
a table. Collections are schema-free. This means that the documents within a single
collection can have any number of different shapes. MongoDB groups collections
into databases . A single instance of MongoDB can host several databases, each of
which can be thought of as completely independent. It provides eventual consistency
guarantees in a way that a process could read an old version of a document even
if another process has already performed an update operation on it. In addition,
it provides no transaction management so that if a process reads a document and
writes a modified version back to the database, there is a possibility that another
process may write a new version of the same document between the read and
write operation of the first process. MongoDB supports indexing the documents
on multiple fields. In addition, it provides a very rich API interface that supports
different batch operations and aggregate functions.
Many other variant projects [ 34 ] have followed the NoSQL movement and
support different types of data stores such as: key-value stores (e.g. Voldemort [ 52 ],
Dynomite [ 15 ], document stores (e.g. Riak [ 41 ]) and graph stores (e.g. Neo4j [ 39 ],
DEX [ 14 ].
3.4
Database-as-a-Service
Multi-tenancy , a technique which is pioneered by salesforce.com [ 43 ], is an
optimization mechanism for hosted services in which multiple customers are
consolidated onto the same operational system and thus the economy of scale
1 http://www.10gen.com/.
Search WWH ::




Custom Search