Work Package #48525

[WIP] TYPO3CR Scalability and consistence

Added by Sebastian Kurfuerst over 8 years ago. Updated over 8 years ago.

Status:
New
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2013-05-25
Due date:
% Done:

0%

Estimated time:
(Total: 0.00 h)

Description

[WIP] TYPO3CR Scalability and consistence

  • Target Audience: everybody who wants to store huge amounts of data in the CR.
  • Responsible: TODO
  • Implemented by: XY, YZ
  • Amount: XY work days
  • Version: TODO
  • Planned Implementation Timeframe: X - Y

Motivation

The TYPO3CR currently works well for small-to-medium websites, but some operations like moving of nodes are not implemented cleanly currently; and we are not sure yet whether
the current TYPO3CR architecture scales well.

Goal

  • Figure out how to adjust the TYPO3CR architecture to have a robust, scaleable solution
  • possible directions: performance benchmark of TYPO3CR, prototype for PHPCR connector,
    using a graph database as backend

Deliverables

[TODO: write bullet points for measurable deliverables; flag them as must have and can have]


Subtasks

Task #48526: evaluate use of graph databases as high-performance storeAcceptedSebastian Kurfuerst2013-05-25

Actions
#1

Updated by Sebastian Kurfuerst over 8 years ago

  • Tracker changed from Task to Work Package
  • Subject changed from WIP TYPO3CR Scalability and consistence to [WIP] TYPO3CR Scalability and consistence
#2

Updated by Christian Knuth over 8 years ago

Maybe changing the Node Tree Model to Nested Interval could be a solution.
Nested Intervals via Matrix encoding works silimar to Nested Sets, but does not have all the huge drawbacks of it, and needs less re-indexing of subtrees.

This is how it works: http://arxiv.org/PS_cache/arxiv/pdf/0806/0806.3115v1.pdf

Here is a little comparion of different Node Models:

http://vadimtropashko.wordpress.com/2008/08/09/one-more-nested-intervals-vs-adjacency-list-comparison/

And here is a basic implementation of Nested Intevals as a plugin for the Yii Framework:

http://www.yiiframework.com/extension/nested-interval/

so it is possible to achieve...
I'm really looking forward to T3 Neos,.. so i hope this helps.

good luck

#3

Updated by Alexander Berl over 8 years ago

Very interesting paper, thanks for the link :)

You should consider the draw-back of Nested Intervals though:
The hierarchy depth is limited by the integer size (assumingly to ~50 with BIG UINT), as nominator/denominator values rapidly grow with each level.
see http://www.yiiframework.com/extension/nested-interval/#c6771

#4

Updated by Christian Knuth over 8 years ago

yeah, that is definitely a point to be aware of.

I investigated a little more in this topic and found, that Farey Matrix encoding could solve this problem.

http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fractions/fareySB.html

http://vadimtropashko.wordpress.com/2008/07/12/matrix-encoding-growth/

Nested Intervals is a complex theory, and adding this method of factions to determine the node position values makes it even harder to implement.

And finally i'm not quite sure about any drawbacks in this constellation. But at least it looks promising.

Also available in: Atom PDF