Hi,
we are using version 3.5.x of the Community Edition successfully as an embedded DB in a project. There we store a pretty simple category tree. But each category node has a lot of properties. We rebuild that tree pretty often and recognized a huge performance decrease from 3.5.x to 4.x (does not matter if 4.0.x, 4.1.x or 4.2.0). The "setProperty" method gets slower the more properties are set. This is something we do not see with 3.x. There it stays at the same speed.
It also does not matter how often we commit. And we also played around with the DB settings. It all does not make any difference.
What might go wrong here? I could provide sample Java code and statistics if needed.
Thanks,
Marc
Hi Marc,
sorry for the late response didn't see your message.
it would be great if you could provide that code best as a GitHub issue, so that our benchmarking team could look into that.
Thank you!
Hi Michael,
thank you for the response. I have some code here:
There are two different branches in the repo. One with 3.x and another one with 4.x.
Hope that helps and thanks for taking care.
Marc
Hi Michael,
any news on this topic?
Thanks,
Marc
Hi Marc, sorry again for the delay.
So my engineering colleagues looked at it, and it's actually something that's independent of the "number of properties attached to a node".
What you're testing in your performance test is the speed at which new tokens (like property keys) are generated. Which is usually a rare operation.
So in 4.x there was an change that improved read performance on property keys, which caused creation performance to go down, which is no big deal as it happens really rarely.
But in your test you create new tokens in a tight loop with the uuid names, so that's why you see this massive impact.
Hope that helped to explain the issue.