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