file system on steroids

Post on 09-May-2015

4.035 Views

Category:

Business

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentation at ApacheCon EU 2008 in Amsterdam

TRANSCRIPT

File system on steroidsan introduction to JCR

Jukka Zitting

Apache Jackrabbit

Agenda

• Big Picture

• Content Repository

• Repository Features

• Apache Jackrabbit

The Big Picture

User Interface

Processing

Storage

Our Focus: Storage

Main requirements

• Persistence

• Consistency

• Scalability

• Performance

Main alternatives

• File system

• Database

• Network

Introducing TheContent Repository

File system Database

Content Repository

readwrite

transactions

structuredintegrity

query

hierarchicalstreams

access control

locking

observationversioning

full text

unstructured

JCR, JSR 170, JSR 283• Content Repository for Java

Technology API– Not just the Java API, but also the

content repository semantics– POSIX file system defined as a C API

• Accessible from other environments– JVM: Groovy, JRuby, Scala, etc.– Network: WebDAV, Ajax (JSON)– Ports planned: .NET, PHP

Why Something New?

• Goal: Single API for all storage– Universal access– No content silos

• Existing systems don't cover all needs– Reiser: “Storage layers above the FS: A

sure symptom the FS developer has failed”

• Solution: Content repository

Content Repository Semantics

• Everything is content– Hierarchy of named and typed nodes– Content in named and typed properties

• Superset of file system semantics– Can be used to store files and folders,

and more– Can be mounted as a file system

• With many database semantics

Granularity of Content

Granularity of Content, 1/2

• File systems are typically best with coarse grained content– Small files in ReiserFS, NTFS, etc. – Extended properties in many systems

• XML & co for fine grained content– DJB: “Don't parse”

Granularity of Content, 2/2

• Databases are best with fine grained content– Blobs are becoming better supported– Often special limitations for search,

access, etc.

• Content repository: Uniform interface for both stream and scalar properties

Structure vs. Flexibility

Structure vs. Flexibility

• File systems have no constraints– Any file or directory can go anywhere– Naming conventions and access control

• Databases have nothing but constraints– Structure of content is predefined

• Content repository: Both structured and unstructured content

Search

Search

• Traditionally no search in file systems

• Custom indexers and search APIs– Google Desktop Search– Mac OS X Spotlight– Lucene in many applications

• Content repository: Built-in search with full text indexing

Transactions

Transactions

• File systems have limited support for atomic updates– The copy-and-move trick

• No transactions that cover multiple changes– Journaling is internal to the system

• Content repository: Change sets, distributed transactions

Versioning

Versioning

• Typically no tracking of previous versions of content– Snapshots in ZFS & co.– Version control systems

• Backups for archival vs. restore purpose– Mac OS X Time Machine

• Content repository: Built-in versioning

Observation

Observation

• File system change monitoring– File Alteration Monitor– Polling– Event APIs

• Triggers in databases

• Content repository: Standard observation API

Apache Jackrabbit

Apache Jackrabbit

• Fully featured JCR content repository

• Releases– 1.0 in 2006– 1.4 available since January 2008– 1.5 (with explorer) planned for Q2– 2.0 (with JCR 2.0) planned for 2008

• Focus on conformance and flexibility

Image creditsImages from the morgueFile archive, used as licensed

– http://morguefile.com/archive/?display=96733, Infographe_Elle

– http://morguefile.com/archive/?display=81906, msxo

– http://morguefile.com/archive/?display=132988, imelenchon

– http://morguefile.com/archive/?display=95446, ronnieb

– http://morguefile.com/archive/?display=175657, seriousfun

– http://morguefile.com/archive/?display=135511, rollingroscoe

– http://morguefile.com/archive/?display=134540, cohdra

– http://morguefile.com/archive/?display=196920, penywise

– http://morguefile.com/archive/?display=48096, bluekdesign

– http://morguefile.com/archive/?display=128133, gracey

Thank you!

Questions / Comments?

top related