On Wed, Apr 30, 2014 at 11:02 AM, Peter Geoghegan <p...@heroku.com> wrote:
> On Wed, Apr 30, 2014 at 10:11 AM, Robert Haas <robertmh...@gmail.com> > wrote: > > I thought the theoretical advantage of hash indexes wasn't that they > > were smaller but that you avoided a central contention point (the > > btree root). > > The B-Tree root isn't really a central contention point at all. The > locking/latching protocol that nbtree uses is remarkably > concurrency-friendly. In the real world, there is pretty much no > exclusive locking of the root page's buffer. > I've seen the simple pinning and unpinning of the root page (or the fast root, whatever the first page we bother to pin on a regular basis is called) be a point of contention. When one index dominates the entire system workload, that one page also drives contention on the spin lock that protects the lwlock that share-protects whichever buffer mapping partition happens to contain it. Cheers, Jeff