A Backend to tie them all?

Post on 18-Nov-2014

586 views 2 download

description

 

Transcript of A Backend to tie them all?

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, elecharny@iktek.com

Emmanuel Lécharny

What is the Backend anyway ?

Entries+

Indexes

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

Criteria

Performance

Size

Cost

reliability

In MemoryBackend

In memory Backend

Internal data structures :

Btrees,

AVLs,

HashMap,

Lists,

...

In Memory Backend Usage

Cache

Ultra-fast server

No local storage

Tests

In Memory Backend

PerformanceSize

Cost

reliability

LDIFBackend

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

LDIF Backend Usage

Configuration

Schema

Tests

LDIF Backend

Performance

Size

Cost

reliability

BTreeBackend

BTree Backend

BTree Backend

Various possible

Implementations

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

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 )

BTree Backend

Usage :

Pretty much everything

Improvements :

Hashed keys

Cache

MVCC Backend

Performance

Size

Cost

reliability

MVCCBackend

MVCC Backend

MVCC Backend

Usage :

Pretty much everything

MVCC Backend

PerformanceSize

Cost

reliability

RDBMSBackend

RDBMS Database

RDBMS Backend

Usage :

Existing DBAs...

ApacheDS experimentation :Oracle Partition

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

RDBMS Backend

Performance

SizeCost

reliability

NoSQLBackend

NoSQL Backend

Distributed File SystemDistributed Configuration Service

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/

NoSQL Backend

Performance

SizeCost

reliability

Thanks!