Re: advancing snapshot's xmin
От | Gregory Stark |
---|---|
Тема | Re: advancing snapshot's xmin |
Дата | |
Msg-id | 871w5xla93.fsf@oxford.xeocode.com обсуждение исходный текст |
Ответ на | Re: advancing snapshot's xmin (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
"Tom Lane" <tgl@sss.pgh.pa.us> writes: > Gregory Stark <stark@enterprisedb.com> writes: >> Uhm, yeah, I somehow didn't write was I was thinking. I didn't mean to say we >> would be taking a new snapshot for each INSERT but that we would be resetting >> xmin for each INSERT. Whereas currently we only set xmin once when we set the >> serializable snapshot. > > Right, but setting xmin within GetSnapshotData is essentially free. > What I'm envisioning is that we lose the notion of "this is a > serializable snapshot" that that function currently has, and just > give it the rule "if MyProc->xmin is currently zero, then set it". > Then the only additional mechanism needed is for the snapshot > manager to detect when all snapshots are gone and zero out > MyProc->xmin --- that would happen sometime during command shutdown, > and per current discussion it shouldn't need a lock. It would be nice if there was some way to notice that no other transactions have committed since last we calculated a snapshot and just reuse that snapshot. I would say ideally before we throw out our xmin but I suspect the point of synchronization needed to notice this condition would be tantamount to that same lock anyways. -- Gregory Stark EnterpriseDB http://www.enterprisedb.com Ask me about EnterpriseDB's RemoteDBA services!
В списке pgsql-hackers по дате отправления: