A Backend to tie them all?

32
A backend to tie them all ?

description

 

Transcript of A Backend to tie them all?

Page 1: A Backend to tie them all?

A backend to tie them all ?

Page 2: A Backend to tie them all?

Apache Software Foundation member

Chairman of MINA project

PMC of Apache Directory Project

IKTEK Owner (www.iktek.com)

www.iktek@com, [email protected]

Emmanuel Lécharny

Page 3: A Backend to tie them all?

What is the Backend anyway ?

Entries+

Indexes

Page 4: A Backend to tie them all?

Entries/Index

dn: dc=example,dc=comobjectclass: topobjectclass: domaindc: example

dn: cn=user1,dc=example,dc=comobjectClass: topobjectClass: personcn: user1sn: User one

dn: cn=user2,dc=example,dc=comobjectClass: topobjectClass: personcn: user2sn: User two

Page 5: A Backend to tie them all?

Criteria

Performance

Size

Cost

reliability

Page 6: A Backend to tie them all?

In MemoryBackend

Page 7: A Backend to tie them all?

In memory Backend

Internal data structures :

Btrees,

AVLs,

HashMap,

Lists,

...

Page 8: A Backend to tie them all?

In Memory Backend Usage

Cache

Ultra-fast server

No local storage

Tests

Page 9: A Backend to tie them all?

In Memory Backend

PerformanceSize

Cost

reliability

Page 10: A Backend to tie them all?

LDIFBackend

Page 11: A Backend to tie them all?

LDIF Backend

version: 1

dn: dc=example,dc=comobjectclass: topobjectclass: domaindc: example

dn: cn=user1,dc=example,dc=comobjectClass: topobjectClass: personcn: user1sn: User one

dn: cn=user2,dc=example,dc=comobjectClass: topobjectClass: personcn: user2sn: User two

Page 12: A Backend to tie them all?

LDIF Backend Usage

Configuration

Schema

Tests

Page 13: A Backend to tie them all?

LDIF Backend

Performance

Size

Cost

reliability

Page 14: A Backend to tie them all?

BTreeBackend

Page 15: A Backend to tie them all?

BTree Backend

Page 16: A Backend to tie them all?

BTree Backend

Various possible

Implementations

Btree, B+tree, B*Tree, ...

Page 17: A Backend to tie them all?

BTree Backend

Average Worst Case

Space O( n ) O( n )

Search O( log n ) O( log n )

Insert O( log n ) O( log n )

Delete O( log n ) O( log n )

Page 18: A Backend to tie them all?

BTree Backend

Usage :

Pretty much everything

Improvements :

Hashed keys

Cache

Page 19: A Backend to tie them all?

MVCC Backend

Performance

Size

Cost

reliability

Page 20: A Backend to tie them all?

MVCCBackend

Page 21: A Backend to tie them all?

MVCC Backend

Page 22: A Backend to tie them all?

MVCC Backend

Usage :

Pretty much everything

Page 23: A Backend to tie them all?

MVCC Backend

PerformanceSize

Cost

reliability

Page 24: A Backend to tie them all?

RDBMSBackend

Page 25: A Backend to tie them all?

RDBMS Database

Page 26: A Backend to tie them all?

RDBMS Backend

Usage :

Existing DBAs...

ApacheDS experimentation :Oracle Partition

http://svn.apache.org/viewvc/directory/apacheds/branches/ldif-partition/oracle-partition/?pathrev=982537

Page 27: A Backend to tie them all?

RDBMS Backend

Performance

SizeCost

reliability

Page 28: A Backend to tie them all?

NoSQLBackend

Page 29: A Backend to tie them all?

NoSQL Backend

Distributed File SystemDistributed Configuration Service

Page 30: A Backend to tie them all?

NoSQL Backend

Usage :

Replicated backend

Huge base

ApacheDS experimentation :http://www.stefan-seelmann.de/media/presentations/3rdOpenHUG2010_Seelmann_ApacheDirectoryHBase.pdf

http://svn.apache.org/repos/asf/directory/sandbox/seelmann/

Page 31: A Backend to tie them all?

NoSQL Backend

Performance

SizeCost

reliability

Page 32: A Backend to tie them all?

Thanks!