selecting the right nosql tool for the job

21
Choosing a NoSQL Solution Thursday, August 25, 11

Upload: dataversity

Post on 20-Aug-2015

617 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Selecting the Right NoSQL Tool for the Job

Choosing a NoSQL Solution

Thursday, August 25, 11

Page 2: Selecting the Right NoSQL Tool for the Job

Dave GrijalvaDirector of Platform Technology

Thursday, August 25, 11

Page 3: Selecting the Right NoSQL Tool for the Job

NoSQL

Thursday, August 25, 11

Page 4: Selecting the Right NoSQL Tool for the Job

Why so many?

Thursday, August 25, 11

Page 5: Selecting the Right NoSQL Tool for the Job

Tradeoffs

Thursday, August 25, 11

Page 6: Selecting the Right NoSQL Tool for the Job

CAP Theorem

C

PA

Consistency

Partition Tolerance

Availability

Unpossible

Thursday, August 25, 11

Page 7: Selecting the Right NoSQL Tool for the Job

Access Patterns

• How much content?

• How many operations?

• Ratios of Insert/Update/Read/Delete?

• How valuable is your data?

Thursday, August 25, 11

Page 8: Selecting the Right NoSQL Tool for the Job

Schema and Indexing

• How will you access your data?

• User Requests vs Background Processing

• Secondary Indexes

Thursday, August 25, 11

Page 9: Selecting the Right NoSQL Tool for the Job

Clustering

•Where is the sharding done?

• Adding and removing nodes

•Where (in the world) is your data?

• Failure cases

Thursday, August 25, 11

Page 10: Selecting the Right NoSQL Tool for the Job

Operations

• Backup and recovery

• Multi-datacenter issues

• Ease of deployment

• Tools integration

• Support

Thursday, August 25, 11

Page 11: Selecting the Right NoSQL Tool for the Job

NoSQL @ ngmoco:)

Thursday, August 25, 11

Page 12: Selecting the Right NoSQL Tool for the Job

Start Simple

Load Balancer

API Server API Server API Server

MySQL MySQLMemcached

Thursday, August 25, 11

Page 13: Selecting the Right NoSQL Tool for the Job

OAuth

• Shared secret based

• Signature validation on every request

• Tokens are per session

• Tokens expire

Thursday, August 25, 11

Page 14: Selecting the Right NoSQL Tool for the Job

Redis

• In memory key/value store

• Really fast

• Delayed persistence

• Supports TTL per record

• Values can be blobs, lists, sets, or hashes

Thursday, August 25, 11

Page 15: Selecting the Right NoSQL Tool for the Job

Game Data Store

• Per user, per game key/value store

• Exposed via REST API

• Very write heavy

• Keys are usually provided upfront

• High data throughput

Thursday, August 25, 11

Page 16: Selecting the Right NoSQL Tool for the Job

Cassandra

• Configurable consistency

• No single write master

• Sharding managed by the cluster

• Built in replication

• Supercolumns!

Thursday, August 25, 11

Page 17: Selecting the Right NoSQL Tool for the Job

“The Bank”

• High transaction volume

• ACID a requirement

• Lots of tracking required for revenue calculations

• Five nines uptime

• Insert dominant

Thursday, August 25, 11

Page 18: Selecting the Right NoSQL Tool for the Job

Marklogic

• XML Document store

• Transactional

• Insert based persistence

• Temporal

• Clustered

Thursday, August 25, 11

Page 19: Selecting the Right NoSQL Tool for the Job

Tips

• Start as simple as possible

• Learn how the systems work

• Try to find success and failure stories

• Explore failure scenarios. Test!

• There is no best solution. Look for a best match solution

Thursday, August 25, 11

Page 20: Selecting the Right NoSQL Tool for the Job

ngmoco:) is hiring!ngmoco.com/careers

Thursday, August 25, 11

Page 21: Selecting the Right NoSQL Tool for the Job

Questions?

Thursday, August 25, 11