Issue Details (XML | Word | Printable)

Key: MAGNOLIA-2086
Type: Improvement Improvement
Status: Resolved Resolved
Resolution: Fixed
Priority: Critical Critical
Assignee: Philipp Bärfuss
Reporter: Philipp Bärfuss
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Magnolia

extensive usage of mix:versionable slows down the system

Created: 12/Mar/08 09:28 AM   Updated: 17/Mar/09 07:49 PM
Component/s: None
Affects Version/s: 3.5.4
Fix Version/s: 3.6

Time Tracking:
Issue & Sub-Tasks
Issue Only
Not Specified

Issue Links:
relation
 

Labels:
Resolution Date: 11/Jul/08 11:38 AM
Date of First Response: 04/Apr/08 10:10 AM

Sub-Tasks  All   Open   

 Description  « Hide
Every node in magnolia gets the mix:versionable assigned no matter if the node is foreseen to be versioned or not (mgnl:contentNode, mgnl:metaData, ..). This slows down the saving process of created nodes a lot (about factor 4).

As we only version pages the mixin is needed on pages only.

The steps involved in the process would be:

  • change info.magnolia.cms.core.DefaultContent.DefaultContent(Node, String, String, AccessManager)
  • use mix:referencable (otherwise the activation mechanism is broken)
  • change default nodetype definitions
  • remove mixin from metaData
  • add mixin to content (but not contentNode)
  • update task for existing content
  • use a proper nodetype for dms documents (not mgnl:contentNode)


 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Philipp Bracher [old account - now Philipp Bärfuss] added a comment - 04/Apr/08 10:10 AM
I wrote a first test (creating 1000 nodes and saving them), which showed that the process was 10 times faster.

The first test with a patched core jar showed that the impact on things like activation, executing workflow, export/import, bootstrapping is enormous.

So 3.6 will be turbo boosted!


Philipp Bracher [old account - now Philipp Bärfuss] added a comment - 10/Apr/08 04:50 PM
I committed a first atemp to solve the problem:
  • removed mix:versional declaration for MetaData
  • added mix:referencable for all node types
  • removed auto adding code in DefaultContent
  • cleaned bootstrap files by using info.magnolia.setup.for3_6.CleanBootstrapFiles
  • mix versionable is now added in the VersionManagerImpl
  • we version only from mgnlVersion workspace so that is where I add the mixin

Please note that this commit is very much experimental (and does not include dms, ...) there are also not yet any update tasks provided


Philipp Bracher [old account - now Philipp Bärfuss] added a comment - 24/Apr/08 10:52 AM
To write an update (or manually updating) you have to update the custom_nodetypes.xml file (found in the jr repository directory)
  • mgnl:metaData
  • change mix:versionable to mix:referenceable
  • mgnl:content
  • add <supertype>mix:referenceable</supertype>
  • mgnl:contentNode
  • add <supertype>mix:referenceable</supertype>

Attention this won't update (remove mix:versionable) from the content itself this is a separate but more complex process (will be provided by the update task)


Grégory Joseph added a comment - 11/Jul/08 02:13 PM
(see sub-tasks for more details about tools/update tasks)