This is the first part of some optimization I'd like to propose in memberof
plugin.
035 - mbof_dn_array optimization
This change can bring better performance in certain cases of deep and/or
circular membership structure. It reduces the complexity of some places in
code from N^3 to N^2. It has similar use case in later patches (even in those
I've not completed yet) as well.
036 - duplicate checking
This can improve performance when adding a group with many direct members,
reducing the complexity of adding a member from N^2 to N.
037 - unnecessary reallocation
I just don't like those cases when we realloc many times, each time growing
the array by 1 element. This patch removes one such case where it was
completely unnecessary.
038 - redundant duplicate checking
This one is little tricky to figure out and to be honest I'm still only 99%
sure about it. When analyzed how addop appending works, this check is totally
useless, since it will never find anything - all duplicates should be already
found by addop appending. Of course I was only considering one process modyfing
the database at a time thanks to transactions. If anyone needs a deeper
analysis, let me know, I'll explain you my train of thoughts.
Right now I'm working on the membership counter patch. It seemed to be quite
easy at first, but right now it seems that it'll take some time to make
everything work.
I'll be happy to answer any questions regarding these patches, feel free to
ping me.
Jan
Show replies by date