Design and architecture of Jackrabbit
-
Upload
jukka-zitting -
Category
Technology
-
view
3.065 -
download
2
description
Transcript of Design and architecture of Jackrabbit
![Page 1: Design and architecture of Jackrabbit](https://reader031.fdocuments.in/reader031/viewer/2022020122/554f5fafb4c905bb178b4635/html5/thumbnails/1.jpg)
Design and architecture of Apache Jackrabbit
Jukka Zitting
Jackrabbit committer
![Page 2: Design and architecture of Jackrabbit](https://reader031.fdocuments.in/reader031/viewer/2022020122/554f5fafb4c905bb178b4635/html5/thumbnails/2.jpg)
Agenda
• Components structure
• Internal extension points
• Configuration
• Item states
• Clustering
• Indexing
• Future ideas, NGP
![Page 3: Design and architecture of Jackrabbit](https://reader031.fdocuments.in/reader031/viewer/2022020122/554f5fafb4c905bb178b4635/html5/thumbnails/3.jpg)
Component structure
core
jcr-com.
rmi
api spi
spi-com.
spi2jcr
jcr2spitests
text
webdav
jca
webapp
ocm-ntmocm
![Page 4: Design and architecture of Jackrabbit](https://reader031.fdocuments.in/reader031/viewer/2022020122/554f5fafb4c905bb178b4635/html5/thumbnails/4.jpg)
Internal extension points
• PersistenceManager
• AccessManager
• SearchIndex
• DataStore
• FileSystem
![Page 5: Design and architecture of Jackrabbit](https://reader031.fdocuments.in/reader031/viewer/2022020122/554f5fafb4c905bb178b4635/html5/thumbnails/5.jpg)
Configuration
• XML files– repository.xml– workspace.xml
• Fixed structure– With <param/> entries
• Replace with IoC?
![Page 6: Design and architecture of Jackrabbit](https://reader031.fdocuments.in/reader031/viewer/2022020122/554f5fafb4c905bb178b4635/html5/thumbnails/6.jpg)
Item states
• NodeState, PropertyState
• Managed by an ItemStateManager– Shared– Local/Session– Virtual
• Replace with Bundles?
![Page 7: Design and architecture of Jackrabbit](https://reader031.fdocuments.in/reader031/viewer/2022020122/554f5fafb4c905bb178b4635/html5/thumbnails/7.jpg)
Clustering
• Shared persistence manager
• Journal to coordinate cluster nodes– Observation/indexing– Locking– Node type changes– Etc.
![Page 8: Design and architecture of Jackrabbit](https://reader031.fdocuments.in/reader031/viewer/2022020122/554f5fafb4c905bb178b4635/html5/thumbnails/8.jpg)
Indexing
• Default implementation based on Lucene
• Full text + “accurate” matches
• Single index per workspace (+ version store)
• Configurable (many new features in 1.4)
![Page 9: Design and architecture of Jackrabbit](https://reader031.fdocuments.in/reader031/viewer/2022020122/554f5fafb4c905bb178b4635/html5/thumbnails/9.jpg)
Future ideas, NGP
• Append-only storage– Inspired by MVCC, Subversion, etc.– No updates or removes– Garbage collection
• Optimized for read-only, no refresh!
• Concurrent transactions!
• Point in time recovery
![Page 10: Design and architecture of Jackrabbit](https://reader031.fdocuments.in/reader031/viewer/2022020122/554f5fafb4c905bb178b4635/html5/thumbnails/10.jpg)
Comments / Questions ?