Re: SSI bug?
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Kevin Grittner <Kevin.Grittner@wicourts.gov>
Cc: Dan Ports <drkp@csail.mit.edu>, YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>, pgsql-hackers@postgresql.org
Date: 2011-04-11T08:33:06Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Update key words table for 9.1
- bf6848bc8c82 9.1.0 cited
-
Documented some ecpg command line options that were missing:
- 71ac48fd9ceb 9.1.0 cited
Attachments
- fixed-size-shmem-3.patch (text/x-diff) patch
On 31.03.2011 22:06, Kevin Grittner wrote: > Heikki Linnakangas<heikki.linnakangas@enterprisedb.com> wrote: > >> That's not enough. The hash tables can grow beyond the maximum >> size you specify in ShmemInitHash. It's just a hint to size the >> directory within the hash table. >> >> We'll need to teach dynahash not to allocate any more entries >> after the preallocation. A new HASH_NO_GROW flag to hash_create() >> seems like a suitable interface. > > OK. If we're doing that, is it worth taking a look at the "safety > margin" added to the size calculations, and try to make the > calculations more accurate? > > Would you like me to code a patch for this? I finally got around to look at this. Attached patch adds a HASH_FIXED_SIZE flag, which disables the allocation of new entries after the initial allocation. I believe we have consensus to make the predicate lock hash tables fixed-size, so that there's no competition of the slack shmem space between predicate lock structures and the regular lock maanager. I also noticed that there's a few hash_search(HASH_ENTER) calls in predicate.c followed by check for a NULL result. But with HASH_ENTER, hash_search never returns NULL, it throws an "out of shared memory" error internally. I changed those calls to use HASH_ENTER_NULL, so you now get the intended error message with the hint to raise max_pred_locks_per_transaction. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com