Database Reference
In-Depth Information
principles help to effectively drive down the cost of computing infrastructure.
In particular, multi-tenancy allows pooling of resources which improves utilization
by eliminating the need to provision each tenant for their maximum load. Therefore,
multi-tenancy is an attractive mechanism for both of the service providers who are
able to serve more customers with a smaller set of machines, and also to customers
of these services who do not need to pay the price of renting the full capacity of
a server. Database-as-a-service (DaaS) is a new paradigm for data management in
which a third party service provider hosts a database as a service [ 62 , 144 ]. The
service provides data management for its customers and thus alleviates the need for
the service user to purchase expensive hardware and software, deal with software
upgrades and hire professionals for administrative and maintenance tasks. Since
using an external database service promises reliable data storage at a low cost, it
represents a very attractive solution for companies especially that of startups. In this
section, we give an overview of the-state-of-the-art of different options of DaaS
from the key players Google, Amazon and Microsoft.
Google Datastore
Google has released the Google AppEngine datastore [ 20 ] which provides a scalable
schemaless object data storage for web application. It performs queries over data
objects, known as entities . An entity has one or more properties where one property
can be a reference to another entity. Datastore entities are schemaless where two
entities of the same kind are not obligated to have the same properties, or use the
same value types for the same properties. Each entity also has a key that uniquely
identifies the entity. The simplest key has a kind and a unique numeric ID provided
by the datastore. An application can fetch an entity from the datastore by using its
key or by performing a query that matches the entity's properties. A query can return
zero or more entities and can return the results sorted by property values. A query
does not allow the number of results returned by the datastore to be very large in
order to conserve memory and run time.
With the AppEngine datastore, every attempt to create, update or delete an entity
happens in a transaction. A transaction ensures that every change made to the entity
is saved to the datastore. However, in the case of failure, none of the changes
are made. This ensures consistency of data within an entity. The datastore uses
optimistic concurrency to manage transactions. The datastore replicates all data
to multiple storage locations, so if one storage location fails, the datastore can
switch to another and still access the data. To ensure that the view of the data stays
consistent as it is being updated, an application uses one location as its primary
location and changes to the data on the primary are replicated to the other locations
in parallel. An application switches to an alternate location only for large failures.
For small failures in primary storage, such as a single machine becoming unavailable
temporarily, the datastore waits for primary storage to become available again
to complete an interrupted operation. This is necessary to give the application a
Search WWH ::




Custom Search