You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 30 Next »

ModeShape

ModeShape is a JCR implementation with a slew of additional services and functionality, including a REST/HTTP API, additional query languages (including full-text search), clustering and federation, and automatic disassembly of ingested content into repository nodes.

From the ModeShape website:

ModeShape is a distributed, hierarchical, transactional, and consistent data store with support for queries, full-text search, events, versioning, references, and flexible and dynamic schemas. It is very fast, highly available, extremely scalable, and it is 100% open source and written in Java. Clients use the (JSR-283) standard Java API for content repositories (aka, JCR) or ModeShape's REST API, and can query content through JDBC and SQL.

Features

Notes from Experience

  1. While we try to maintain some independence from the JCR implementation, some code (in particular concerning low-level binary storage) is tightly bound to Modeshape, but where possible depends on the  public API extensions to org.modeshape.jcr.api.
  2. Long-lived sessions with lots of changes is bad. 
  3. JCR loves hierarchy.
  4. Creating sessions is cheap. Saving sessions takes time.
  5. Nothing is persisted until the session is saved (almost.)
  6. Binary content is stored using the SHA-1 value as its key, meaning: 
    • only one copy of content is persisted to the storage layer (although the storage layer may keep multiple copies around)
    • content can be stored immediately, and lazily garbage collected
  7. Namespace prefixes must be pre-registered before they can be used

Pro/Con Overview

Pro:Con:
Supports JCR semantics (including optional functionality)Commits us to JCR semantics or a superset
Offered by JBoss as a product with several years of historyNot clear how far community extends beyond JBoss
Due to JCR semantics, could persist content as well as relationships 
Has many beyond-JCR functionalities that could be useful to F4Additional functionalities are unique to ModeShape
Open source, Apache2 (code hosted on GitHub) 
Fully streaming persistenceBut not asynchronous access to that persistence
Offers prebuilt HTTP/REST APIWhich doesn't take account of the Fedora object model
Relies largely on JBoss Infinispan for persistence, which is well-supported technology

But would limit F4 to Infinispan-supported persistence options, or implementing ModeShape-specific interfaces

 Installation Package of ModeShape has a size of 179MB
JNDI enabledSparse documentation about Apache Tomcat deployment
  • No labels