Tobias Herrmann and Alexander Kandzior, Alkacon Software Day two starting session Next generation repository architecture for OpenCms 29.09.2015
Tobias Herrmann and Alexander Kandzior,
Alkacon Software
Day two starting session
Next generation repository
architecture for OpenCms
29.09.2015
OpenCms User Interface
3
What about the file repository?
4
In my opinion…
Separation of Apps and Content 5
Distributed Configuration 6
Scaling in the cloud
Efficient Permission settings
8
Use search engine for file collection
Available in 10 with the
<cms:search> tag
Reconsider Database requirement
10
Goals
● Performance
● Reliabillity
● Future-proof
● Lean
● Maintainable
● Cloud
● Scalabillity
● Distributed Configuration
● High performance queries
● Alternative persistence layer
12
Goals
● Hazelcast
● EHCache
● Apache Commons JCS
● Infinispan
13
Distributed Caches
● Clustering
● Replication
● Query-Language
● Adaptable Persistence Layer
● Permissive License
14
Requirements
● Apache 2.0 License
● Key-Value store
● Java Map Api
● Transactions
15
Infinispan
● Integrated Lucene Indexing
● Lucene directory
● Persistence backends: Filesystem, DB, JPA,
custom
● Cluster and replication support
16
Infinispan
● Online – offline – history tables
● Resources
● Structure
● Properties
● Relations
● Other tables
● Projects
● Users
● Contents
● …
17
Current data layout
● File access
● ID vs. Path
● Read performance vs. Write complexity
● Move operations
18
Challenges
● Online – offline VFS
● Query interface
● Performance tests
● Cluster event bus
● Distributed configuration properties
19
Prototype
● Easy cluster setup
● Managed indexes
● Performant filestore persistence
● Easy transactions
20
Infinispan – the good parts
● One index per map / cache
● Filestore upgrade path
21
Infinispan – the tricky parts
● Filestore
● JDBC Binary Store
● JPA Store
● LevelDB Store
● Roll your own store
22
Persistence
● XML based
● Human readable
● Human editable
● DTD-Validation
● Easy backup
● Mixed default and individual properties
● Complex upgrades
● Not cloud friendly
23
Configuration
● Separation of default and individual
● Easier upgrades
● Central configuration management
● Human editable
● Easy backup
● Validation??
24
Configuration
● Clustering is fun
● Index mappings are a hassle do also work
● Performance is great
● A lot of work to do
25
Resumé
Open Source / Enterprise Version
Backward compatibility 27
● Question:
What is more important to you…
a. Improved repository?
OR
b. Backward compatibility of existing code?
● Please choose only one answer!
Backward compatibility
● What will come after 10 is finished?
● Several workplace apps need to be modernized
● Rewrite VFS file / DB repository
● The new repository will be part of OpenCms 11
● To be expected in the 2nd half of 2017
● The modernized workplace apps may be
available earlier
● Potentially: OpenCms 10.5 in Q4 2016
OpenCms Roadmap
● Any Questions?
Any Questions?
Fragen?
Questiones? 質問
Tobias Herrmann
Alexander Kandzior
Alkacon Software GmbH
http://www.alkacon.com
http://www.opencms.org
Thank you very much for your attention!