AWS DynamoDB
@nbluis
http://about.me/nbluis
What ?
• Database
• NoSQL
• AWS
• SaaS
What ?

•Database
• NoSQL
• AWS (IaaS, Paas)
What is a database ?

Dammit!
This is not for you!
What ?

• Database

•NoSQL
• AWS (IaaS, Paas)
What do you mean?
NoSQL vs NewSQL
• NoSQL is a really bad label
• It’s not about SQL
• It’s about better performance or
scalability

• Sometimes we can live without ACID
ACID ?
ACID
The cap theorem
It’s impossible to simultaneously provide
Availability

Consistency

Partition tolerance
Without partition
tolerance guarantee
We can be available (the data)
and consistent
RDBMS: Oracle, Postgres, MySQL, SQLServer, etc.
Without availability
guarantee
We can be highly scalable
Big Table, Hypertable, HBase, MongoDB,
Berkley DB, Memcache, Redis
Without consistency
guarantee
We can be highly replicable
DynamoDB, Voldemort, Cassandra, SimpleDB,
CouchDB, Riak
NoREL
• ACID & JOINS are considered
relational (unsupported)

• Key-Value model
• Column-oriented model
• Document-oriented model
What ?

• Database
• NoSQL

•AWS (IaaS, PaaS)
AWS
AWS
• IaaS (Infrastructure as a Service)
• PaaS (Platform as a Service)

• Full managed DynamoDB service
• Pay-as-you-go
DynamoDB
• Fast
• Full managed
• Coast effective
• Pay by throughput (reserved)
The good parts
• Table based (each table is
independent)

• Schema free (except the Key)
• Really fast to find using Primary and
Range Keys

• Support for complex queries (Scan)
The “must know” parts
• Eventual consistency by default, with
high costs to ensure consistency.

• Must use SDK/API to access
• 64K is the max “row” size
• Complex queries are made using

Sequential/Full Table Scan (high cost)
The bad parts
• Very limited data types (text, number,
binary)

• No way to join tables
• More than 64k of data per item
requires “workarounds”

• It’s not possible to copy a table to
another one
Final considerations
Pros:
• Really fast using IDs
• Really cost effective
• Full managed is a
good idea

• A good option for

key-value situations

Cons
• Very limited with
types and joins

• Complex queries are
costly
Thanks!
@nbluis
http://about.me/nbluis

NoSQL and AWS Dynamodb