Hi Sergei, On Fri, Nov 28, 2014 at 10:35:09AM +0100, Sergei Golubchik wrote:
Hi, Sergey!
On Nov 28, Sergey Vojtovich wrote:
Eh, that's what I was afraid of. Not seeing elements that were added at about the same time should always be acceptable. Can't it miss elements that were in the list before iteration started (because it has moved to a different location)? The latter is unacceptable in many cases.
No, in this hash implementation elements are never moved in the list. It's prety difficult to move elements lock-free, that's why it wasn't easy to create a good performing lock-free hash. And this one works around this problem by not moving elements at all. That's good.
But let's see: - print_cached_tables() - old debug stuff, remove it? - I_S.OPEN_TABLES - seeing elements twice is not good, use PFS?
Duplicates can be removed on the upper layer. Like, I_S data are inserted into a temp table anyway, so a UNIQUE key would solve the issue of duplicates. Or a Unique object.
Ok, it is acceptable. This all makes your hash iterator good for MDL and table cache. Thanks, Sergey