With Sophora 6, the transition to PostgreSQL and the replacement of the JCR implementation Apache Jackrabbit are further developed. In addition to the Sophora Version Store introduced in Sophora 5, all data (working and live versions of documents, CNDs, ...) are also stored in PostgreSQL.
Motivation
Until now, Apache Jackrabbit handled persistence for NodeTypes, CNDs, documents, etc., of the Sophora Server. JCR was also responsible for managing searches via a separate file system based Lucene index. In simple terms, JCR acted as the layer between Sophora documents and data persistence. With Sophora 6, this JCR layer is now largely being replaced.
The primary motivation was to establish a flexible, self-managed document storage that allows for both high-level and low-level performance adjustments. The old JCR implementation often had its limits, and fixing errors usually meant complex workarounds. We want and need a system that can scale without those limitations. With Sophora 5, we started to replace all parts of JCR with a custom solution, while maintaining API compatibility. The latest big step is the introduction of the Document Store.
Migration
Unlike the update from Sophora 4 to Sophora 5, the update from 5 to 6 automatically migrates all Sophora documents. When the Sophora Server starts, all documents are read from JCR concurrently and written into the new Working and Live workspaces in PostgreSQL. This multi-threaded process is much faster than a full sync, but large repositories may still take several hours. JCR data is not deleted during migration, though this may change in future updates, see JCR in Sophora 6.
Notable Changes
- PostgreSQL 17+ is now mandatory for all Sophora Servers, this includes Sophora Staging Servers.
- XPath Queries are no longer supported.
IQuerys now require Solr Cloud.
For a full list, refer to the Update Notes.