Database Reference
In-Depth Information
(tenants) that can be running simultaneously in a cloud environment. Therefore,
it becomes a significant issue for the cloud consumers to be able to monitor and
adjust the deployment of their systems if they intend to offer viable service level
agreements (SLAs) to their customers (end users). It is an important requirement
for cloud service providers to enable the cloud consumers with a set of facilities,
tools and framework that ease their job of achieving this goal effectively.
10.4
Transaction Support
A transaction is a core concept in the data management world that represents
a set of operations which are required to be executed atomically on a single
consistent view of a database [ 140 ]. In general, the expertise gained from building
distributed database systems by researchers and practitioners have shown that sup-
porting distributed transactions hinder the ability of building scalable and available
systems [ 189 ]. Therefore, to satisfy the scalability requirements of large scale
internet services, many systems have sacrificed the ability to support distributed
transactions. For example, most of the NoSQL systems (e.g. Bigtable, Dynamo,
SimpleDB) supports atomic access only at the granularity of single keys. This
design choice allows these systems to horizontally partition the tables, without
worrying about the need for distributed synchronization and transaction support.
While many web applications can live with single key access patterns [ 99 , 121 ],
many other applications (e.g. payment, auction services, online gaming, social
networks, collaborative editing) would require atomicity guarantee on multi key
accesses patterns. In practice, leaving the burden of ensuring transaction support
to the application programmer normally leads to increased code complexity, slower
application development, and low-performance client-side transaction management.
Therefore, one of the main challenges of cloud-hosted database systems that has
been considered is to support transactional guarantees for their applications without
compromising the scalability property as one of the main advantages of the cloud
environments.
The G-Store system [ 117 ] has been presented as a scalable data store which
provides transactional multi key access guarantees over non-overlapping groups of
keys using a key-value store. The main idea of GStore is the Key Group abstraction
that defines a relationship between a group of keys and represents the granule for
on-demand transactional access. This abstraction allows the Key Grouping protocol
to collocate control for the keys in the group to allow efficient access to the group of
keys. In particular, the Key Grouping protocol enables the transfer of ownership for
all keys in a group to a single node which then efficiently executes the operations on
the Key Group. At any instance of time, each key can only belong to a single group
and the Key Group abstraction does not define a relationship between two groups.
Thus, groups are guaranteed to be independent of each other and the transactions
on a group guarantee consistency only within the confines of a group. The Key
Grouping protocol ensures that the ownership of the members of a group reside
Search WWH ::




Custom Search