Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

OnParentVersion with many descendants

 

All tests involved creating a single object node container resource with one or more descendant nodesresources.  Versioning had three modes: enabled on all test objects containers (TRUE), disabled on all test objects containers (FALSE), or enabled on the root object container and on half of the children (HALF).  onParentVersion was set to either VERSION or COPY (for non-versioned tests this has no effect).  Scaling was tested by increasing the number of descendants (100, 1000) and by increasing the size of the jcr:content property on the descendant (roughly 10kb vs 1mb).  Three types of descendant nodes resources were tested: auto-named children nodes resources with auto-generated intermediate folders (child), named children nodes resources (named), and datastreams binaries (DS).

 

After all the descendants were created and assigned the versionable mixin where , when appropriate, a single new version of the root node resource was created (New Version Time).   Total time spent creating descendants and enabling versioning on them is recorded as Total Child Creation Time.

Time to create a new version of the root

...

resource

The creation of a new version of the root node resource was only a small portion of the overall time spent in setting up each test (~1.6% mean, 7.6% max), although there was a significant increase in the amount of time required when auto-named children were used as the descendants.  Generally, using COPY mode resulted in a slower new version creation times than VERSION.

 

76.683
Descendant Type# of DescendantsBinary sizeCOPY (ms)VERSION (ms)
child
100
10,000572616
  1,000,0001,119956
 
1000
10,0007,2277,463
  1,000,0007,6007,009
DS
100
10,00017275
  1,000,000222117
 
1000
10,0001,369262
  1,000,0001,925288
named
100
10,00043254
  1,000,00043899
 
1000
10,0005,471247
  1,000,0004,986290
 Versioning Mode Descendant TypeCOPYVERSIONGrand Total
HALF
child30.50836.85467.362
 DS9.1036.32215.425
 named24.179.79933.969
TRUE
child135.928191.543327.471
 DS39.01715.3154.327
 named64.46612.217

 

Disk Usage

Results for disk usage were inconsistentnot always consistent, particularly for small batches where in some cases the size of the binary store actually decreased after a test, possibly due to background cleanup processes occurring in Modeshape.  Usage was measured by using the du command on the data directory before and after running the test.  Binary content was never duplicated in any of the descendant types or onParentVersion modes tested.  Tests For descendants with small larger binary content streams but large numbers of descendants demonstrated a much larger final disk usage to the increase in disk usage for using any type of versioning over not versioning was small.

 

7808136629.677143.213702602658.8104563.231444.813244004472133525.647862.66667
Descendant TypeNumber of descendantsBinary sizeNot VersionedCOPY (ms)VERSION (ms)
child
100
100002880.5714297259.210,0002,8807,2597,808
  1000000132636136706.41,000,000132,636136,706136,629
 
1000
1000037094.477579.210,00037,09477,57977,143
  1000000132544013687641,000,0001,325,4401,368,7641,370,260
DS
100
100001678.3529413506.810,0001,6783,5062,658
  1000000102832105066.41,000,000102,832105,066104,563
 
1000
1000016443.233852.810,00016,44333,85231,444
  1000000131598813313701,000,0001,315,9881,331,3701,324,400
named
100
100003088636010,0003,0886,3604,472
  1000000132012135294.41,000,000132,012135,294133,525
 
1000
10000337926390410,00033,79263,90447,862
  1000000132354013530801336844

 

 

1,000,0001,323,5401,353,0801,336,844

Full data results:

https://docs.google.com/spreadsheets/d/1SnFE-mUMEJnFUr3hXvg8UVBhnl4pq05lDTGlGR_VwYw 

 

Multiple versions of the same

...

container

Created a single object resource with one datastreambinary and then created new versions of the resource:

 

Performance drop-off was considerably faster when numerous datastreams binaries (1000) were added to the root node resource prior to creating many new versions of the noderesource.

Image Added

Data

https://docs.google.com/spreadsheets/d/1QRieqQTq4LtR5r5AU0LpUPO7_C_ieBNGKU1ezqSrG5M

https://docs.google.com/spreadsheets/d/10B0ZaIrNeb0GYqQsEZszVZinXAVD1qB7xz30xuI_yws