NoSQL Databases

 

NoSQL != No SQL

NoSQL = Not Only SQL

BASE

  • Basically Available
  • Soft state
  • Eventual consistency

VS.

ACID

  • Atomicity
  • Consistency
  • Isolation
  • Durability

Types of NoSQL

  • Key-Value
  • Object
  • Document Store
  • Wide Column Store/Column Families
  • Graph
  • Time Series

Key Value

Good for:

  • Fast retrieval by key
  • Massive scalability
  • Session storage/retrieval

Example: Redis

Document Oriented

Good for:

  • Flexible or 'schemaless'
  • Outside-in design
  • Duplication is ok

Example: MongoDB

Column Family

Good for:

  • Flexible schema
  • Peer to peer replication

Example: Cassandra

https://muhammadhamed.blogspot.com/2012/04/nosql-graphdb-document-db-key-value.html

"If all you have is a hammer, everything looks like a nail."  

- Abraham Maslow

Integration and Batch Rebuild...

  • Horizontal scalability
  • On-demand local environments
  • Small development footprint
  • Flexible schemas for ongoing development

...Store large files??

Encrypted File Storage Service (CFS)

  • Store files
  • Store metadata about files

Should we store files in the database or on a filesystem?

Conducted Two Prototypes to Investigate

  • MongoDB
    • Document Storage DB
    • GridFS - built in feature to store files
    • Supporting Java drivers
    • Primary/Secondary replication topology

 

  • Cassandra
    • Column family DB
    • Stores large files with specialized drivers
    • Ring topology with no master

Results

  • MongoDB
    • Easy local setup
    • Java drivers work well and support GridFS
    • Deeper perfomance testing needed

 

  • Cassandra
    • Drivers no longer support large files
    • No prototype conducted

Next Steps

 

Deeper investigation of MongoDB in a development environment

 

 

Learning more about MongoDB and how we might deploy and tune it

 

Quick Demo

NoSQL

By samueltbrown

NoSQL

  • 679