Re: [HACKERS] Lazy hash table for XidInMVCCSnapshot (helps Zipfian a bit)
От | Amit Kapila |
---|---|
Тема | Re: [HACKERS] Lazy hash table for XidInMVCCSnapshot (helps Zipfian a bit) |
Дата | |
Msg-id | CAA4eK1JxXVcXo7djDqx4+qhguv9h3fZuqBF36CBXUmJNMtjaWQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Lazy hash table for XidInMVCCSnapshot (helps Zipfian abit) (Yura Sokolov <funny.falcon@gmail.com>) |
Ответы |
Re: [HACKERS] Lazy hash table for XidInMVCCSnapshot (helps Zipfian abit)
|
Список | pgsql-hackers |
On Sat, Mar 10, 2018 at 7:41 AM, Yura Sokolov <funny.falcon@gmail.com> wrote: > 08.03.2018 03:42, Tomas Vondra пишет: >> One reason against building the hash table in GetSnapshotData is that >> we'd build it even when the snapshot is never queried. Or when it is >> queried, but we only need to check xmin/xmax. > > Thank you for analyze, Tomas. > > Stephen is right about bug in snapmgr.c > Attached version fixes bug, and also simplifies XidInXip a bit. > @@ -2167,8 +2175,7 @@ RestoreSnapshot(char *start_address) /* Copy SubXIDs, if present. */ if (serialized_snapshot.subxcnt > 0) { - snapshot->subxip = ((TransactionId *) (snapshot + 1)) + - serialized_snapshot.xcnt; + snapshot->subxip = ((TransactionId *) (snapshot + 1)) + xcnt; memcpy(snapshot->subxip, serialized_xids + serialized_snapshot.xcnt, serialized_snapshot.subxcnt * sizeof(TransactionId)); } It is not clear why you want to change this in RestoreSnapshot when nothing related is changed in SerializeSnapshot? Can you please add some comments to clarify it? -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: