NoSQL and Polyglot Persistence

Standard

Historically, at the beginning in Databases We got a lot of cool things, like SQL, persistence, concurrence between transactions and all. But, for example in SQL we got some problems.

Object database could be cool. Save in the memory.

We were wrong. 

What object database are so good ? They have some answers to it, but it has passed. 

And the relational database continue dominates after 2000 years. It was hard to find a new way to get all informations and store them, using something better than RDMS.  

Particularly with the use of internet, we got a lot of traffic. Companies like Google or Amazon, for example, worry about those things. Computer costs a lot.  Lots a lots of CPUs it might be a good answer. Clusters?

Relational database are good to work in a single node. Companies like Google and Amazon created Bigtable and Dynamo, respectively. And then….NoSQL!

Basically, we cannot define NOSQL, but we can take a look in some characteristics, for example:

  • Open Source
  • Cluster friendly
  • Non-relational
  • Schema-less

Regarding to data models,web can find on the theory basically two data models: Key Value and Documents. Both are Aggregated. There are a fuzzy line between a document model and a key value model.

There are the Graph Model which is ACID and it’s not aggregated.

Discussing about Database, we should think about some inherent properties for a a relational database and so important in software development: Consistency.

Typically, We see RDBMS as ACID properties, We might to say noSQL are BASE! We should take care about consistency when We use a NoSQL database, and take a look for our system requirements. Normally, We use NoSQL when We need to get easier development and/or large scala data.

Nowadays, noSQL is an overrated theme, maybe we should talk about Polyglot Persistence.

Advertisements

Cluster vS Grid

Standard

There are many differences between Grid and Clusters. The following table shows comparison of Grid and Clusters.

CHARACTERISTIC CLUSTER GRID
Population Commodity Computers Commodity and High-end computers
Ownership Single Multiple
Discovery Membership Services Centralized Index  and Decentralized Info
User Management Centralized Decentralized
Resource management Centralized Distributed
Allocation/ Scheduling Centralized Decentralized
Inter-Operability VIA and Proprietary No standards being developed
Single System Image Yes No
Scalability 100s 1000?
Capacity Guaranteed Varies, but high
Throughput Medium High
Speed(Lat. Bandwidth) Low, high High, Low

A cluster is a group of computers organized together to perform the same set of functions. For instance, you may have a cluster running your database software. Or you can have a cluster running your corporate e-mail server software.

A grid is a collection of resources. A grid can be composed of multiple clusters. In Oracle’s grid world, you can have a cluster of servers running the database software and a cluster of servers running the Application Server software. Since they are all in the grid, you can move resources from one cluster to another should demands dictate.

References:

Oracle RAC Cluster Tips by Burleson Consulting

Oracle Website