Re: [HACKERS] Error: dsa_area could not attach to a segment that hasbeen freed

Поиск
Список
Период
Сортировка
От Craig Ringer
Тема Re: [HACKERS] Error: dsa_area could not attach to a segment that hasbeen freed
Дата
Msg-id CAMsr+YH4GnTSWkEOt7Eb-GYJ9hwsEa4gFWdUzh6YARFRxwFD7A@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [HACKERS] Error: dsa_area could not attach to a segment that hasbeen freed  (Thomas Munro <thomas.munro@enterprisedb.com>)
Список pgsql-hackers
On 21 September 2017 at 05:50, Thomas Munro <thomas.munro@enterprisedb.com> wrote:
On Thu, Sep 21, 2017 at 12:59 AM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Wed, Sep 20, 2017 at 5:54 AM, Craig Ringer <craig@2ndquadrant.com> wrote:
>> By the way, dsa.c really needs a cross-reference to shm_toc.c and vice
>> versa. With a hint as to when each is appropriate.
>
> /me blinks.
>
> Aren't those almost-entirely-unrelated facilities?

I think I see what Craig means.

1.  A DSM segment works if you know how much space you'll need up
front so that you can size it. shm_toc provides a way to exchange
pointers into it with other backends in the form of shm_toc keys
(perhaps implicitly, in the form of well known keys or a convention
like executor node ID -> shm_toc key).  Examples: Fixed sized state
for parallel-aware executor nodes, and fixed size parallel executor
infrastructure.

2.  A DSA area is good if you don't know how much space you'll need
yet.  dsa_pointer provides a way to exchange pointers into it with
other backends.  Examples: A shared cache, an in-memory database
object like Gaddam Sai Ram's graph index extension, variable sized
state for parallel-aware executor nodes, the shared record typmod
registry stuff.

Perhaps confusingly we also support DSA areas inside DSM segments,
there are DSM segments inside DSA areas.  We also use DSM segments as
a kind of shared resource cleanup mechanism, and don't yet provide an
equivalent for DSA.  I haven't proposed anything like that because I
feel like there may be a better abstraction of reliable scoped cleanup
waiting to be discovered (as I think Craig was also getting at).

Well said, and what I would've wanted to say if I could've figured it out well enough to express it.

Hence needing some kind of README or cross reference to help people know which facility/facilities are suitable for their needs... and actually discover them.

(A hint on RequestAddinShmemSpace etc pointing to DSM + DSA would be good too)

--
 Craig Ringer                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Mithun Cy
Дата:
Сообщение: Re: [HACKERS] POC: Cache data in GetSnapshotData()
Следующее
От: Robert Haas
Дата:
Сообщение: Re: [HACKERS] POC: Cache data in GetSnapshotData()