XTM & parallel search

Поиск
Список
Период
Сортировка
От Konstantin Knizhnik
Тема XTM & parallel search
Дата
Msg-id 57509139.2090605@postgrespro.ru
обсуждение исходный текст
Ответы Re: XTM & parallel search  (Amit Kapila <amit.kapila16@gmail.com>)
Список pgsql-hackers
We have to add three more functions to eXtensible Transaction Manager API (XTM):
    /*     * Calculate transaction state size. This method is invoked by EstimateTransactionStateSpace to copy
transaction    * state to parallel workers     */    size_t      (*GetTransactionStateSize)(void);
 
    /*     * Serialize transaction state     */    void        (*SerializeTransactionState)(void* ctx);
    /*     * Deserialize transaction state     */    void        (*DeserializeTransactionState)(void* ctx);

The reason is that we find out that our multimaster is not correctly working when max_parallel_workers > 0
because multimaster transaction context is not properly shared between workers.
Unfortunately right now serialization/deserialization of transaction state is hardcoded in xact.c. and IMHO is done in
quiteugly way:
 
    XactIsoLevel = (int) tstate[0];    XactDeferrable = (bool) tstate[1];    XactTopTransactionId = tstate[2];
CurrentTransactionState->transactionId= tstate[3];    currentCommandId = tstate[4];    nParallelCurrentXids = (int)
tstate[5];   ParallelCurrentXids = &tstate[6];
 

- there is even no declared structure with fixed part of saved context.
I wonder if not only DTM will be interested in sharing some common state between workers and should we  provide some
wayof replicating user defined context between workers? From my point of view XTM seems to be good place for it...
 



-- 
Konstantin Knizhnik
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company




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

Предыдущее
От: Josh berkus
Дата:
Сообщение: Re: Rename max_parallel_degree?
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: Rename max_parallel_degree?