jackrabbit-oak-dev mailing list archives

Hi,
SetPropertyTest is a simple benchmark that measures how long it takes
to execute the following snippet of code:
for (int i = 0; i < 1000; i++) {
node.setProperty("count", i);
session.save();
}
The idea behind this benchmark is to get an estimate of the minimum
amount of time it takes to write even the simplest changes to the
repository.
Last month I started looking at this benchmark as it highlights many
of our current bottlenecks, like slow access to node type information
and repetitive commit hooks, that affect also many other operations.
I'm glad to report that our combined efforts on these fronts are
paying off. Here's how we did a month ago:
# SetPropertyTest min 10% 50% 90% max N
Oak-Default 599 608 638 764 975 91
Oak-Segment 4124 4141 4206 4608 4699 14
And here's the latest status now:
# SetPropertyTest min 10% 50% 90% max N
Oak-Default 318 325 350 420 791 162
Oak-Segment 1030 1057 1070 1123 1264 56
In other words, the performance boosts for this benchmark are roughly
2x and 4x for the H2 and segment MKs, respectively.
For comparison, here's how Jackrabbit is doing:
# SetPropertyTest min 10% 50% 90% max N
Jackrabbit 260 276 299 351 650 192
It's still faster than Oak, but we're getting pretty close and there's
still a whole bunch of further optimizations we can do.
PS. This benchmark is unfortunately particularly ill-suited for use
with the MongoMK, as it ends up blowing up the revision history of a
single node:
# SetPropertyTest min 10% 50% 90% max N
Oak-Mongo 31442 32098 58855 92934 93871 10
BR,
Jukka Zitting