On Friday, 22 April 2016 at 18:51:57 UTC, David Nadlinger wrote:
On Saturday, 16 April 2016 at 13:58:28 UTC, Johan Engelen wrote:

In rare cases, symbols are removed from the members list, so the shadow data structure needs the ability to delete elements.

Bloom filters can have false positives anyway. As long as elements are not removed too frequently (what do your numbers say?), the performance impact of doing a full linear search in those cases shouldn't be too bad.

The false-positive nature of Bloom filters makes them unsuited, I think, unless we can make the chance of a false-positive very low for lists that are very big, my testcase has a list size of 140k elements. It needs something scalable, otherwise there is no size-benefit. Wikipedia leads me to this: http://gsd.di.uminho.pt/members/cbm/ps/dbloom.pdf

I don't understand exactly what you mean; do you propose to resort to linear search after a removal happened? Or only do a linear search when the shadow data structure says the item is present? I don't know how often removals happen, but for the 140k elements list removals happens _very_ often. While compiling phobos, removals happen not for all modules, but for quite a few of them.

In any case, I wrote the code such that it is easy to change the underlying data structure and test the impact.

Reply via email to