Adapt to2012 oak - the new repository

2,022 views

Published on

Jackrabbit Oak is an effort to implement a scalable and performant hierarchical content repository for use as the foundation of modern world-class web sites and other demanding content applications.

The Oak effort is a part of the Apache Jackrabbit project. Jackrabbit is a project of the Apache Software Foundation.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,022
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
29
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Adapt to2012 oak - the new repository

  1. 1. APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2012 Jackrabbit Oakthe next generation content repository
  2. 2. About us Jukka Zitting, Michael Dürig {jzitting, mduerig}@adobe.comadaptTo() 2012
  3. 3. Jackrabbit feature timeline Apache Jackrabbit 1.0 1.2 1.4 1.6 2.0 2.2 2.4 ISM locking Concurrency Data store JMX Original design Bundle PM Tar PM Clustering Shared nothing RMI remoting WebDAV remoting Lucene index Index config Tika Join JCR 1.0 JCR 2.0 2002 2004 2006 2008 2010 2012adaptTo() 2012
  4. 4. Design trajectoryadaptTo() 2012 http://www.flickr.com/photos/belsymington/4102783610/
  5. 5. Time for a redesignadaptTo() 2012 http://www.flickr.com/photos/ejcallow/6150622583/
  6. 6. Time for a redesignadaptTo() 2012 http://www.flickr.com/photos/spiderdog/3960915963/
  7. 7. Time for a redesignadaptTo() 2012 http://www.flickr.com/photos/daveseven/6006652787/
  8. 8. Project background ■ Brief history ■ Early ideas discusses already 2008 ■ Prototyping work in 2011 ■ Project Oak started early 2012 ■ Currently 2 - 8 people actively working on Oak ■ up from 2-3 in early SpringadaptTo() 2012
  9. 9. Project background ■ Key goals ■ Backwards compatibility (to some degree) ■ Performance especially for concurrent access ■ Scalability for huge repositories (> 100M nodes) ■ Large number of child nodes (flat hierarchies) ■ Support managed environments (OSGi, Spring) ■ Cloud deployments ■ Non-goals ■ Hard consistency guaranteed ■ Full JCR coverageadaptTo() 2012
  10. 10. Project background ■ Subproject of Apache Jackrabbit http://jackrabbit.apache.org/oak/ oak-dev@jackrabbit.apache.org http://svn.apache.org/repos/asf/jackrabbit/oak/ https://github.com/apache/jackrabbit-oakadaptTo() 2012
  11. 11. Technical overview http://www.flickr.com/photos/hugo90/4260716444/adaptTo() 2012
  12. 12. Technical overviewadaptTo() 2012
  13. 13. Technical overviewadaptTo() 2012
  14. 14. Technical overviewadaptTo() 2012
  15. 15. Key concepts ■ Lightweight tree model ■ Plugins for everything else ■ MVCC ■ Stable, immutable snapshot for sessions ■ Snapshot isolation ■ relaxed first committer wins strategy [1] ■ Branch and merge ■ Support for large transactions ■ Persisted transient space [1] http://wiki.apache.org/jackrabbit/Transactional model of the Microkernel based Jackrabbit prototypeadaptTo() 2012
  16. 16. Key concepts ■ Microkernel [1] ■ Think hierarchy aware persistence manager ■ Stateless ■ Scalable ■ JSON based API ■ Remotable ■ Interchangeable ■ Portable [1] http://wiki.apache.org/jackrabbit/RepositoryMicroKerneladaptTo() 2012
  17. 17. Key concepts ■ Node state model [1] ■ Low level abstraction of tree content ■ Immutable ■ Thread safe ■ Tree model [2] ■ Mutable tree model ■ Builders for node states ■ Transient space [1] https://github.com/apache/jackrabbit-oak/blob/trunk/doc/nodestate.md [2] https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/README.mdadaptTo() 2012
  18. 18. Key concepts ■ Plugins ■ Commit hooks ■ Validators ■ Editors ■ Indexing ■ Access control, permissions, privileges ■ User management ■ Namespaces ■ Conflict resolution ■ Uniqueness constraints ■ Node type validationadaptTo() 2012
  19. 19. Trade offs http://www.flickr.com/photos/twicepix/1985527617/adaptTo() 2012
  20. 20. Trade offs ■ Trade consistency for availability ■ Write skew [1] ■ Cluster sync ■ Limited support for SNS ■ Auto created node names ■ Naming convention ■ Limited support for orderability ■ Graceful degradation [1] http://wiki.apache.org/jackrabbit/Transactional model of the Microkernel based Jackrabbit prototypeadaptTo() 2012
  21. 21. Trade offs ■ Observation ■ Affected by session isolation ■ auto-refresh when observation is used ■ Effect based ■ exact sequence of operations not reflected ■ Limited support for session specific informationadaptTo() 2012
  22. 22. Where we are nowadaptTo() 2012 http://www.flickr.com/photos/exfordy/344603717/
  23. 23. Current status ■ What works already? ■ Sling core components ■ Granite/CRX quickstart ■ CRXDE Lite ■ CRX package manageradaptTo() 2012
  24. 24. Current status ■ What are we working on? ■ CQ5 quickstart ■ Geometrixx ■ Whats next? ■ More features: security, versioning, etc... ■ Performance/scalability ■ Testing and optimization ■ Cloud deployment and clusteringadaptTo() 2012
  25. 25. Getting involved http://www.flickr.adaptTo() 2012 com/photos/dwmoran/3729048
  26. 26. How can you help? ■ Report on success on failure ■ Is the stuff youre working on available on Oak? ■ Does it work as expected? ■ Any differences to Jackrabbit 2? ■ Describe benchmarks ■ performance, scalability ■ Tell us about useful new extension pointsadaptTo() 2012
  27. 27. Further information ■ Website: http://jackrabbit.apache.org/oak ■ Source code: https://github.com/apache/jackrabbit-oak ■ Mailing lists: {oak-dev, oak-issues, oak-commits} @jackrabbit.apache.org ■ Wiki: http://wiki.apache.org/jackrabbit/Jackrabbit 3adaptTo() 2012

×