Database Reference
In-Depth Information
Table 10.1 (continued)
Research aspect
Related factors
Open research challenges
Transaction
support
-
Granularity of
atomicity
-
Providing efficient multi row atomicity guarantees
on NoSQL systems
-
Distributed
transactions
-
Designing intelligent workload-aware and
transaction-aware database partitioning
mechanisms for cloud-hosted databases
-
Performance
-
Providing scalable transactional guarantees over
multiple partitions for distributed database (across
different data centers) in cloud environments
￿
NoSQL systems are viable solutions for applications that require scalable data
stores which can easily scale out over multiple servers and support flexible data
model and storage scheme. However, the access pattern of these applications
should not require much join operations and can work with limited transaction
support and weaker consistency guarantees. In general, NoSQL systems are
recommended for newly developed applications but not for migrating existing
applications which are written on top of traditional relational database systems.
For example, Amazon Web Services describe the anti-patterns for using its
cloud-hosted NoSQL solution, SimpleDB, to include: pre-developed software
applications which are tied to traditional relational database or applications that
may require many join operations and complex transactions. 1 In addition, with
the wide options and variety of currently available NoSQL systems, software
developers need to well understand the requirements of their application to
choose the NoSQL system with adequate design decisions of their applications.
￿
Database-as-a-Service solutions are recommended for software applications
which are built on top of relational databases. They can be easily migrated to
cloud servers and alleviate the need to purchase expensive hardware, deal with
software upgrades and hire professionals for administrative and maintenance
tasks. However, these application should have the ability to accurately predict
their application workloads and provision the adequate computing resources that
can achiever their performance requirements. Unfortunately, these applications
should be ready to not automatically leverage the elasticity and scalability
promises of cloud services.
￿
Virtualized database servers are recommended for software applications which
require to leverage the full elasticity and scalability promises of cloud services
and need to have full control on the performance of their applications. However,
these application need to build and configure their admission control for manag-
ing the database tier of their applications.
1 http://aws.amazon.com/whitepapers/storage-options-aws-cloud/ .
 
Search WWH ::




Custom Search