SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
APACHE SLING & FRIENDS TECH MEETUP
         BERLIN, 26-28 SEPTEMBER 2012




            Jackrabbit Oak
the next generation content repository
About us


                   Jukka Zitting, Michael Dürig
                 {jzitting, mduerig}@adobe.com




adaptTo() 2012
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            2012



adaptTo() 2012
Design trajectory




adaptTo() 2012               http://www.flickr.com/photos/belsymington/4102783610/
Time for a redesign




adaptTo() 2012                 http://www.flickr.com/photos/ejcallow/6150622583/
Time for a redesign




adaptTo() 2012                 http://www.flickr.com/photos/spiderdog/3960915963/
Time for a redesign




adaptTo() 2012                 http://www.flickr.com/photos/daveseven/6006652787/
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 Spring




adaptTo() 2012
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 coverage

adaptTo() 2012
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-oak




adaptTo() 2012
Technical overview




                       http://www.flickr.com/photos/hugo90/4260716444/
adaptTo() 2012
Technical overview




adaptTo() 2012
Technical overview




adaptTo() 2012
Technical overview




adaptTo() 2012
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 prototype


adaptTo() 2012
Key concepts


         ■ Microkernel [1]
            ■    Think hierarchy aware persistence manager
            ■    Stateless
            ■    Scalable
            ■    JSON based API
            ■    Remotable
            ■    Interchangeable
            ■    Portable



          [1] http://wiki.apache.org/jackrabbit/RepositoryMicroKernel


adaptTo() 2012
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.md

adaptTo() 2012
Key concepts


         ■ Plugins
            ■ Commit hooks
                 ■ Validators
                 ■ Editors
            ■    Indexing
            ■    Access control, permissions, privileges
            ■    User management
            ■    Namespaces
            ■    Conflict resolution
            ■    Uniqueness constraints
            ■    Node type validation

adaptTo() 2012
Trade offs




                      http://www.flickr.com/photos/twicepix/1985527617/


adaptTo() 2012
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 prototype


adaptTo() 2012
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 information




adaptTo() 2012
Where we are now




adaptTo() 2012              http://www.flickr.com/photos/exfordy/344603717/
Current status


         ■ What works already?
            ■    Sling core components
            ■    Granite/CRX quickstart
            ■    CRXDE Lite
            ■    CRX package manager




adaptTo() 2012
Current status


         ■ What are we working on?
            ■ CQ5 quickstart
            ■ Geometrixx

         ■ What's next?
          ■ More features: security, versioning, etc...
          ■ Performance/scalability
          ■ Testing and optimization
          ■ Cloud deployment and clustering



adaptTo() 2012
Getting involved




                            http://www.flickr.
adaptTo() 2012              com/photos/dwmoran/3729048
How can you help?


         ■ Report on success on failure
            ■ Is the stuff you're 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 points




adaptTo() 2012
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 3

adaptTo() 2012
Adapt to2012  oak - the new repository

Contenu connexe

Similaire à Adapt to2012 oak - the new repository

Enterprise Deployments: The Real World of Best Practices
Enterprise Deployments: The Real World of Best PracticesEnterprise Deployments: The Real World of Best Practices
Enterprise Deployments: The Real World of Best PracticesSimon Haslam
 
Transforming your Business with Scale-Out Flash: How MongoDB & Flash Accelera...
Transforming your Business with Scale-Out Flash: How MongoDB & Flash Accelera...Transforming your Business with Scale-Out Flash: How MongoDB & Flash Accelera...
Transforming your Business with Scale-Out Flash: How MongoDB & Flash Accelera...MongoDB
 
MySQL Cluster performance best practices
MySQL Cluster performance best practicesMySQL Cluster performance best practices
MySQL Cluster performance best practicesMat Keep
 
JBoss Architect Forum London - October 2013 - Platform as a What?
JBoss Architect Forum London - October 2013 - Platform as a What?JBoss Architect Forum London - October 2013 - Platform as a What?
JBoss Architect Forum London - October 2013 - Platform as a What?JBossArchitectForum
 
M|18 How Facebook Migrated to MyRocks
M|18 How Facebook Migrated to MyRocksM|18 How Facebook Migrated to MyRocks
M|18 How Facebook Migrated to MyRocksMariaDB plc
 
Ukoug 2011 mysql_arch_for_orcl_dba
Ukoug 2011 mysql_arch_for_orcl_dbaUkoug 2011 mysql_arch_for_orcl_dba
Ukoug 2011 mysql_arch_for_orcl_dbaorablue11
 
Talk on PHP Day Uruguay about Docker
Talk on PHP Day Uruguay about DockerTalk on PHP Day Uruguay about Docker
Talk on PHP Day Uruguay about DockerWellington Silva
 
Can we run the Whole Web on Apache Sling?
Can we run the Whole Web on Apache Sling?Can we run the Whole Web on Apache Sling?
Can we run the Whole Web on Apache Sling?Bertrand Delacretaz
 
Challenges with MongoDB
Challenges with MongoDBChallenges with MongoDB
Challenges with MongoDBStone Gao
 
My sql susecon_crashcourse_2012
My sql susecon_crashcourse_2012My sql susecon_crashcourse_2012
My sql susecon_crashcourse_2012sqlhjalp
 
WillMicroserviceDie.pdf
WillMicroserviceDie.pdfWillMicroserviceDie.pdf
WillMicroserviceDie.pdfEmilyJiang23
 
StorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UK
StorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UKStorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UK
StorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UKStorageOS
 
UKOUG 2011: MySQL Architectures for Oracle DBA's
UKOUG 2011: MySQL Architectures for Oracle DBA'sUKOUG 2011: MySQL Architectures for Oracle DBA's
UKOUG 2011: MySQL Architectures for Oracle DBA'sFromDual GmbH
 
Encompassing Information Integration
Encompassing Information IntegrationEncompassing Information Integration
Encompassing Information Integrationnguyenfilip
 
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been ToldDCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been ToldDocker, Inc.
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repositorynobby
 

Similaire à Adapt to2012 oak - the new repository (20)

Enterprise Deployments: The Real World of Best Practices
Enterprise Deployments: The Real World of Best PracticesEnterprise Deployments: The Real World of Best Practices
Enterprise Deployments: The Real World of Best Practices
 
Transforming your Business with Scale-Out Flash: How MongoDB & Flash Accelera...
Transforming your Business with Scale-Out Flash: How MongoDB & Flash Accelera...Transforming your Business with Scale-Out Flash: How MongoDB & Flash Accelera...
Transforming your Business with Scale-Out Flash: How MongoDB & Flash Accelera...
 
MySQL Cluster performance best practices
MySQL Cluster performance best practicesMySQL Cluster performance best practices
MySQL Cluster performance best practices
 
JBoss Architect Forum London - October 2013 - Platform as a What?
JBoss Architect Forum London - October 2013 - Platform as a What?JBoss Architect Forum London - October 2013 - Platform as a What?
JBoss Architect Forum London - October 2013 - Platform as a What?
 
M|18 How Facebook Migrated to MyRocks
M|18 How Facebook Migrated to MyRocksM|18 How Facebook Migrated to MyRocks
M|18 How Facebook Migrated to MyRocks
 
Ukoug 2011 mysql_arch_for_orcl_dba
Ukoug 2011 mysql_arch_for_orcl_dbaUkoug 2011 mysql_arch_for_orcl_dba
Ukoug 2011 mysql_arch_for_orcl_dba
 
Talk on PHP Day Uruguay about Docker
Talk on PHP Day Uruguay about DockerTalk on PHP Day Uruguay about Docker
Talk on PHP Day Uruguay about Docker
 
Can we run the Whole Web on Apache Sling?
Can we run the Whole Web on Apache Sling?Can we run the Whole Web on Apache Sling?
Can we run the Whole Web on Apache Sling?
 
Challenges with MongoDB
Challenges with MongoDBChallenges with MongoDB
Challenges with MongoDB
 
My sql susecon_crashcourse_2012
My sql susecon_crashcourse_2012My sql susecon_crashcourse_2012
My sql susecon_crashcourse_2012
 
NoSQL and MySQL
NoSQL and MySQLNoSQL and MySQL
NoSQL and MySQL
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
 
WillMicroserviceDie.pdf
WillMicroserviceDie.pdfWillMicroserviceDie.pdf
WillMicroserviceDie.pdf
 
StorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UK
StorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UKStorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UK
StorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UK
 
UKOUG 2011: MySQL Architectures for Oracle DBA's
UKOUG 2011: MySQL Architectures for Oracle DBA'sUKOUG 2011: MySQL Architectures for Oracle DBA's
UKOUG 2011: MySQL Architectures for Oracle DBA's
 
Encompassing Information Integration
Encompassing Information IntegrationEncompassing Information Integration
Encompassing Information Integration
 
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been ToldDCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
 
NoSQL with MySQL
NoSQL with MySQLNoSQL with MySQL
NoSQL with MySQL
 
Karaf ee-apachecon eu-2012
Karaf ee-apachecon eu-2012Karaf ee-apachecon eu-2012
Karaf ee-apachecon eu-2012
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
 

Dernier

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Dernier (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Adapt to2012 oak - the new repository

  • 1. APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2012 Jackrabbit Oak the next generation content repository
  • 2. About us Jukka Zitting, Michael Dürig {jzitting, mduerig}@adobe.com adaptTo() 2012
  • 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 2012 adaptTo() 2012
  • 4. Design trajectory adaptTo() 2012 http://www.flickr.com/photos/belsymington/4102783610/
  • 5. Time for a redesign adaptTo() 2012 http://www.flickr.com/photos/ejcallow/6150622583/
  • 6. Time for a redesign adaptTo() 2012 http://www.flickr.com/photos/spiderdog/3960915963/
  • 7. Time for a redesign adaptTo() 2012 http://www.flickr.com/photos/daveseven/6006652787/
  • 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 Spring adaptTo() 2012
  • 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 coverage adaptTo() 2012
  • 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-oak adaptTo() 2012
  • 11. Technical overview http://www.flickr.com/photos/hugo90/4260716444/ adaptTo() 2012
  • 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 prototype adaptTo() 2012
  • 16. Key concepts ■ Microkernel [1] ■ Think hierarchy aware persistence manager ■ Stateless ■ Scalable ■ JSON based API ■ Remotable ■ Interchangeable ■ Portable [1] http://wiki.apache.org/jackrabbit/RepositoryMicroKernel adaptTo() 2012
  • 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.md adaptTo() 2012
  • 18. Key concepts ■ Plugins ■ Commit hooks ■ Validators ■ Editors ■ Indexing ■ Access control, permissions, privileges ■ User management ■ Namespaces ■ Conflict resolution ■ Uniqueness constraints ■ Node type validation adaptTo() 2012
  • 19. Trade offs http://www.flickr.com/photos/twicepix/1985527617/ adaptTo() 2012
  • 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 prototype adaptTo() 2012
  • 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 information adaptTo() 2012
  • 22. Where we are now adaptTo() 2012 http://www.flickr.com/photos/exfordy/344603717/
  • 23. Current status ■ What works already? ■ Sling core components ■ Granite/CRX quickstart ■ CRXDE Lite ■ CRX package manager adaptTo() 2012
  • 24. Current status ■ What are we working on? ■ CQ5 quickstart ■ Geometrixx ■ What's next? ■ More features: security, versioning, etc... ■ Performance/scalability ■ Testing and optimization ■ Cloud deployment and clustering adaptTo() 2012
  • 25. Getting involved http://www.flickr. adaptTo() 2012 com/photos/dwmoran/3729048
  • 26. How can you help? ■ Report on success on failure ■ Is the stuff you're 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 points adaptTo() 2012
  • 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 3 adaptTo() 2012