alternative databases

Post on 18-May-2015

780 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Alternative DatabasesScott MacVicar

Dutch PHP Conference 2009

Saturday, 13 June 2009

Who are you?

Saturday, 13 June 2009

History Lesson

Saturday, 13 June 2009

Relational Database is Born

Relational Databases FTW!

Saturday, 13 June 2009

Parts of a RDBMS?

Maths SQL

Relation Table

Derived Relation

Result Set

Tuple Row

Attribute Column

Domain TypeSaturday, 13 June 2009

SQL Purpose

Retrieval

Manipulation

Transactions

Saturday, 13 June 2009

SQL Fails

Complex Specification

Join Fails

Where clause

Saturday, 13 June 2009

RDBMS through the Ages

Saturday, 13 June 2009

RDBMs suck

Adding fields is hard

Complex

Copying / Backup database

Performance

Saturday, 13 June 2009

Scaling?

MasterDatabase

MasterDatabase

MasterDatabase

App App App

Saturday, 13 June 2009

Scaling?

SlaveDatabase

MasterDatabase

SlaveDatabase

App App App

Saturday, 13 June 2009

“Write consistency is the reason RDBMS are imploding under their own weight.”

Saturday, 13 June 2009

Why do we use a RDBMs?

Saturday, 13 June 2009

RDBMS Hangups

Saturday, 13 June 2009

SQL

blogblog_idtitlepublish_timeauthorcontent

comments

comment_id

blog_id

author

content

Saturday, 13 June 2009

Save See

Secure Share

Saturday, 13 June 2009

Memcache + BerkleyDB = MemcacheDB?

Saturday, 13 June 2009

MemcacheDB

Memcache isn’t persistent :(

Memcache dependency

Memcache does what it does well

Saturday, 13 June 2009

MemcacheDB

Simple Protocol

Tried and tested DB

Transactions

Replication

Saturday, 13 June 2009

Tokyo Cabinet

Collection of types

Created for mixi.jp (Facebook of Japan)

Common API

New in PHP6, maybe PHP 5.3.1

Saturday, 13 June 2009

Tokyo Hash Database

Constant time for most operations

Second Hash for collisions

Key values stored in a bucket array

Saturday, 13 June 2009

Buckets!

Key ValueKey ValueKey ValueKey ValueKey ValueKey Value

Saturday, 13 June 2009

B+ Tree

Ordered Access

Multiple Keys

Cursor

Saturday, 13 June 2009

Fixed-Length

Access by numeric key

No keys stored

Fast

Saturday, 13 June 2009

Fixed-Length

value value value value value value value

value value value value value value value

value value value value value value value

value value value value value value value

value value value value value value value

0

8

16

24

32

40

Saturday, 13 June 2009

Table Database

Schema-less

Named Attributes

Indexes

Queries

Saturday, 13 June 2009

Table Database

Primary Key

Primary Key

Primary Key

name value

name value

name value

name value

name value

name value

name value

name value

name value

Saturday, 13 June 2009

Network wrapper

Speaks Memcache / HTTP

Extension in works by Mikko

Tokyo Tyrant

Saturday, 13 June 2009

Tokyo Tyrant

High Availability

Asynchronous Updates

Lua scripting

Saturday, 13 June 2009

CouchDB

REST

JavaScript

Erlang

Saturday, 13 June 2009

CouchDB

Document Database

Replication

Map Reduce

No Indexes

Saturday, 13 June 2009

Database Access

GET /_all_dbs

PUT /somedatabase/

DELETE /somedatabase/

GET /somedatabase/

Saturday, 13 June 2009

Document Access

GET /somedatabase/_all_docs

PUT /somedatabase/some_docid

POST /somedatabase/

DELETE /somedatabase/some_docid

GET /somedatabase/some_docid

Saturday, 13 June 2009

CouchDB Scaling

Caching

Clustering

Layering

Saturday, 13 June 2009

CouchDB Wrappers

PHPillow - http://short.ie/buiqhu

Phly_Couch - http://short.ie/pa47gp

Saturday, 13 June 2009

Amazon SimpleDB

Application

RestXML

Saturday, 13 June 2009

Amazon SimpleDB

Amazon Web Service

Cloudy

Rest / XML

Saturday, 13 June 2009

SimpleDB

1 billion attributes

5 seconds execution

1024 byte values

Saturday, 13 June 2009

SimpleDB API

Officially Amazon API - http://short.ie/apx6c3

Tarzan-AWS - http://short.ie/54rucx

Saturday, 13 June 2009

Questions?

http://talks.macvicar.net

http://couchdb.apache.org

http://aws.amazon.com

http://memcachedb.org

Saturday, 13 June 2009

top related