NoSQL (ELEKS DevTalks #1 - Jan 2015)

Preview:

Citation preview

Yuriy GutsR&D Engineer

ELEKS DevTalks

1. Data volume and performance that demands a cluster.

2. Developer productivity, OOP “impedance mismatch”.

3. The need for specialized tools for “painful” tasks.

• Not using the relational model

• Mostly schemaless

• Mostly open-source

• Mostly developed in early 21st century

• Mostly not using SQL as a query language

• Running well on clusters

ABC

ABC ABC

Write “C”

Read “C”

Replicate “C” to Slave 1

Replicate “C” to Slave 2

A

B C

Read/Write

“A”

Read/Write

“C”

Write “C”

ABC ABC ABCD ABD ABD

Write “D”

Agree with majority and replicate “C” Agree with majority and replicate “D”

ABC ABC ABCD ABD ABD

ABCDABCD ABCD ABCD ABCD

“Out of

Consistency

Availability

Partition Tolerance

You can get maximum two.”

You must find a tradeoff between Consistency and Availability.

A cluster should always be Partition Tolerant.

• Key-Value Store

• Document Store

• Column-Family Store

• Graph Database

• Riak

• Redis

• Memcached

• Amazon DynamoDB

• Voldemort

• MongoDB

• RavenDB

• CouchDB

• Azure DocumentDB

• Google BigTable

• Cassandra

• HBase

• Hypertable

• FlockDB

• Neo4j

• OrientDB

• Infinite Graph

1. Talent acquisition.

2. Ecosystem, tools, community.

3. Operational challenges.

Redis, MongoDB

yuriy.guts @ eleks.com

Recommended