Re: Bitmap Indexes patch (was Re: Bitmap Indexes: request for feedback)
Simon Riggs <simon@2ndquadrant.com>
From: Simon Riggs <simon@2ndQuadrant.com>
To: Greg Stark <stark@enterprisedb.com>
Cc: Gianni Ciolli <gianni.ciolli@2ndquadrant.it>, PostgreSQL-development <pgsql-hackers@postgresql.org>, Gabriele Bartolini <gabriele.bartolini@2ndquadrant.it>
Date: 2008-11-03T23:28:35Z
Lists: pgsql-hackers
On Mon, 2008-11-03 at 17:37 -0500, Greg Stark wrote: > Secondly the locking seems to be a bit overoptimistic. I'm pretty sure > you have to take an exclusive lock on an index page any time you make > any data modifications in index pages -- even if you're just setting a > bit and not moving any data around. If two processes set two bits in > the same word one can get lost in the race condition. I looked at that aspect of the patch specifically a few weeks back while checking for possible issues with Hot Standby. IIRC the patch is fairly careful with locking and uses Exclusive locks extensively throughout. I looked at both the theory and the implementation. Unless Gianni changed something in that regard recently, I don't understand that comment at all. Probably need to provide specific examples of your concerns. > There are a lot of comments in the code which imply that vacuuming is > not implemented but in fact from what I can see it is -- sort of. It > does rewrite the bitmap in bmbulkdelete but it doesn't have to rebuild > the index from scratch. Are the comments out of date or am i > misunderstanding them or the code? How complete is the vacuum > implementation? As I understood it, complete. I think the objective was minimal change away from Gavin's original. But it sounds like you found some out of date comments. Extensive docs have been added as a README, mainly because it was pretty hard to understand without them. -- Simon Riggs www.2ndQuadrant.com PostgreSQL Training, Services and Support