The question I have is whether thread safety is something you require here or think is a feature people will be surprised is absent.
Sometimes extra bells and whistles make the code harder to maintain. Once advertised as such, it may become quite hard to fix bugs or add new features. I would consider if this fits in the YAGNI category. 2c, Gary On Sun, Jul 2, 2023, 02:40 Claude Warren <cla...@xenei.com> wrote: > I have been thinking about what it would take to make SimpleBloomFilter > thread safe. I think that the answer is to use a copy on write strategy > and a lock within all the merge methods. > > However, this leaves the problem of the cardinality calculation. Currently > it is lazily performed and cached. I am thinking that there are 2 > solutions. > > 1. mark cardinality volatile and leave the calculation as it effectively > does a copy on write. > 2. update the cardinality inside the merge. This should be doable as we > can get the number of bits in each long after the merge and simply add > them > up during processing. > > > Does anyone see a problem with this solution? > > Claude > -- > LinkedIn: http://www.linkedin.com/in/claudewarren >