Differences between revisions 1 and 2
Revision 1 as of 2012-02-16 11:22:11
Size: 1813
Revision 2 as of 2012-02-17 09:15:31
Size: 1858
Comment: Correction wrt. multi valued properties
Deletions are marked like this. Additions are marked like this.
Line 39: Line 39:
 * Multi valued properties  * Scalability:
  * Large number of values for m
ulti valued properties

Design principle

Best effort: everything might be corrupt at any time:

  • node types
  • child node existence
  • clients may not make any consistency assumptions


  • Pass TCK. But TCK might be adapted for invalid or edge cases.
  • Node type consistency on save and set type (including mixin). Inconsistencies occurring do to write skew or degradation effects are acceptable though.
  • Scalability:
    • Read throughput: no degradation from current Jackrabbit 2, repeated read not slow, take advantage of locality for random reads. TODO: Needs further clarification

    • High write throughput across cluster nodes.
    • Big lists of direct child nodes (10M)
    • Concurrent writes within single cluster node. TODO: Needs further clarification

    • Big transactions (> 100000k nodes at 1kB each, cq5 content package)

    • Start up time < 1s

    • Number of nodes in repository (tar pm): 100M
    • Number of nodes in shared cloud: 10T
    • 1G binaries with 2MB per binary => 2PB Repository size

  • Simple/Fast queries (i.e. through specialized indexes) (3ms)
  • Partitioning of observation. TODO: Needs further clarification

    • Handling of recursive deletes: large number of NODE_REMOVED events vs. delete event for specific properties in subtree.
  • Number of users: 200M / 20M per group
  • Full versioning model
  • Flexible durability (depending on durability guarantees of back end)

Non goals

  • Node type consistency when node type definition changes
  • Consistency guarantees
  • Scalability:
    • Big property list
    • Same name siblings
    • Namespace remapping
  • Query index complete
  • Fast move
  • JCR lock == sync


  • Scalability:
    • Large number of values for multi valued properties
  • Sharable nodes
  • Fast delete

Goals and non goals for Jackrabbit 3 (last edited 2012-04-11 11:27:47 by MichaelDürig)