NoSQL, Part 3- or -
A Modest Proposalfor a heretical
Key Value Store
•Open Source and Standards Advocate
•Community Manager
•Drizzle DB merge steward
•Hire me!
Mark Atwood
The story so far...
•Brian Aker, “Guide to NoSQL” at Open SQL Camp Portland 2009.
•Mark Atwood, “Guide to NoSQL, redux” at MySQL Conference 2010.
•And now, this...
NoSQL Patterns
•BigTable + Dynamo
•Document
•Graph
•Key Value
My Favorite KVSes
•InnoDB / HailDB
•MemCacheD
•ReDiS
•S3 / Walrus / Swift
Want a KVS that
•is optimized for real hardware
•uses fast disk streaming IO
•can use random writes
Want a KVS that
•has cherry picked features
•is usable by ordinary programmers
•has a powerful simple API
Atwood’s Law of Computer Latency
Processor cycles, storage density, and network bandwidth are
increasing,faster than the speed of light is
getting faster.
•XML - JSON
•REST / HTTP
•TCP/IP
•Structured Data
•In-kernel
•syscall API
•half-IPC
Namespaces
A namespace isa simple ASCII
string
A namespace can contain objects & more namespaces
An object is a bytestream with a
name
Access Control:Use the process
UID.Public/Private.
Read/Write.
Mutable Objects
Can write to an existing object at
any offset
Many processes can write to the
same object at the same time
Some more ideas
•More than one name pointing at the same object
•A network access protocol
•Metadata (modification date, MIME type, etc?)
•“Bake in” the API to existing and new languages
Thank you!