Aveneu Park, Starling, Australia

The for your data store, then you

The
advantages of Key-Value storage

         There
are two distinct advantages of such systems to relational DB:

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

1.       They
are very suitable for cloud services. The first advantage of key-value storage
is that they are easier, and thus have greater scalability than relational
databases. If you put together your own system, and plan to place dozens or
hundreds of servers that need to cope with the increasing workload for your
data store, then you have to choose – key-value stores. Since this storage is
easily and dynamically expand, they are also useful for vendors who provide
multi-user storage web platform. Such a framework is relatively low-cost means
of storing data with a lot of potential for scalability. Users typically pay
only for what they use, but their needs may grow. The vendor will be able to
dynamically and virtually no restrictions to increase the size of the platform,
based on the load.

 

2.       A
more natural integration with the code. The relational data model and object
model of code are usually constructed in different ways, leading to some
incompatibilities. The developers solve this problem by writing the code that
displays the relational model to an object model. This process does not have
clear and achievable values quickly and can take a lot of time that could be
spent on the development of the application itself. Meanwhile, many key-value
storages store

data in such a
structure that appears in objects more naturally. This can significantly reduce
development time.

The
disadvantages of Key-Value storage (the advantages of Relational DB)

1.       Constraints
in a relational database to ensure data integrity at the lowest level. Data
that do not satisfy the constraints are physically unable to get to the base.
In storages of key-value there are no such restriction, so data integrity
monitoring is fully based on the application. However, in any code has bugs. If
the errors in a properly designed relational database usually don’t lead to
data integrity issues, errors in the storages of key-value storages will
usually lead to such problems.

 

2.     
Another advantage of relational databases is that they force you to go through
the process of developing a data model. If you have a well-developed model, the
database will contain a logical structure that fully reflects the structure of
the stored data, but at odds with the structure of the application. Thus, the
data become independent of the application. This means that another application
can use the same data and application logic can be changed without any changes
in the database model. To do the same thing with the key-value storage, you
need to replace the process of designing the relational model design classes in
which are general classes, based on the natural data structure.

 

3.       Unlike
relational databases, repositories are targeted for use in the
“cloud”, are much less common standards. Although conceptually they
are not different, they all have different the API, query interfaces and
specific. Therefore, you’d better trust your vendor, because if something
happens, it will be not so easily switch to another service provider. And given
the fact that almost all modern key-value storages are in beta versions, trust
is even riskier than in the case of relational databases.

Key-Value
Store Features on Riak example

         Usage
of NoSQL data stores requires an understanding of features compatibility
between itself and the standard RDBMS data stores, which also used by us. The main
point is to understand what features NoSQL are lacking and what changes must be
done to the application architecture for more effective use of a key-value data
store and its features. Some common features of NoSQL data stores we will
discuss here are consistency, transactions, query features, structure of the
data, and scaling.

 

Consistency

         Consistency
applies only for a single-key operation. These are either a get, put, or delete
on a single key. Optimistic writes are very cost-expensive because data store
itself cannot determine a change in value.

            In distributed key-value stores
(Riak, for example) implemented the eventually
consistent model of consistency. Since the value may have already been
replicated to other nodes, Riak has two ways of resolving update conflicts:
either the newest write wins and older writes lose, or both (all) values are
returned allowing the client to resolve the conflict.

         In
Riak, these options can be set up during the bucket creation. Buckets are just
a way to namespace keys so that key collisions can be reduced. Let’s assume
that all customer keys reside in the customer bucket. When creating a bucket,
we can provide default consistency values, such as “write is considered good
only when the data is consistent across all the nodes where the data is stored.” 

x

Hi!
I'm Simon!

Would you like to get a custom essay? How about receiving a customized one?

Check it out