8th sakai conference4-7 december 2007 newport beach sakai jcr content hosting steve githens &...
TRANSCRIPT
8th Sakai Conference
4-7 December 2007Newport Beach
Sakai JCR Content HostingSakai JCR Content Hosting
Steve Githens & Aaron Zeckoski
sgithens/[email protected]
2
JCR Content HostingJCR Content Hosting
• An implementation of the ContentHostingService API which uses JCR as the storage mechanism underneath– Multiple JCR implementations available
• Fully compatible with the Resources tool and Webdav
• Migration tools are included
3
Key advantagesKey advantages
• Uses an industry standard API (JCR)
• Many implementations available– Jackrabbit, Xythos, Alfresco, etc.
• Highly customizable and configurable– DB/FileSystem, Caching, Tuning
• Uses code which is maintained and tested at thousands of sites outside Sakai– Less maintenance, reliable, supported
URL: http://confluence.sakaiproject.org/confluence/display/SAKDEV/JCR+Integration
4
InstallationInstallation• Installing JCR content is well documented on the
Sakai Wiki– http://confluence.sakaiproject.org/confluence/display/RES/JSR-170
• For trunk the process is very simple– Checkout/build jackrabbit and branch (use -PJCR)
• For 2.4.x it is a little more involved– Upgrade 4 projects, checkout JCR, checkout/build
jackrabbit and branch (with maven 2)
• JCR will be off by default, you can switch back and forth beween legacy and JCR using a tool or by adjusting the configuration
URL: http://confluence.sakaiproject.org/confluence/display/RES/JSR-170
5
JCR Inspector toolJCR Inspector tool• Switch Content from Legacy to JCR
• View the full JCR data tree
• Start/stop/monitor content migration
URL: http://confluence.sakaiproject.org/confluence/display/SAKDEV/JCRInspector
6
Content Hosting usageContent Hosting usage
0.000
0.200
0.400
0.600
0.800
1.000
Updates Deletes Inserts Reads
• Usage stats collected from various high load institutions
• Reads outweigh everything else by around 20 to 1
• Content is rarely removed or updated
• These numbers were used to construct the simulation load tests
7
Load TestingLoad Testing
0
50000
100000
150000
200000
250000
300000
350000
DOM SAX Bin JCR
Time to complete load tests
Mass Insert
Simulation
Multi ThreadSimulation
Mass Remove
• A series of Test-Runner load tests have been created to test content hosting and simulate usage– Contact Aaron if you want
to run these tests
• Read performance is comparable between JCR and current binary legacy trunk
Mass Insert - Create 7 Collections and add 556 ResourcesSimulation - Simulate 10000 user accesses with around 200,000 reads, 500 inserts, 125 deletes (random), this is meant to closely match real usageMulti Thread - execute simulation on 10 threads simultaneouslyMass Remove - Remove inserted collections(7)/resources(556)
DOM - Legacy Content Hosting using DOM XML (2.4.0)SAX - Legacy Content Hosting using Saxalizer (2.4.x)Bin - Legacy Content Hosting using Binary Serialization (2.5.x/trunk)JCR - JCR Content Hosting with JackRabbitService underneath
8
Content MigrationContent Migration
• Migration of content from legacy to JCR is managed by an automated process that runs in the background– Copies data from legacy to JCR– Monitors content events to syncronize the JCR data with
the existing legacy data– Delay between series of copies is configurable to keep
from overloading the server– Non-destructive migration (no live data is changed)– Controllable via the JCR Inspector tool
9
Questions?Questions?
• Contact Ian Boston, Steve Githens, or Aaron Zeckoski if you are interested in trying this out or have questions
– http://confluence.sakaiproject.org/confluence/display/SAKDEV/JCR+Integration
– http://confluence.sakaiproject.org/confluence/display/RES/JSR-170