On Sun, Apr 17, 2016 at 2:26 AM, Andres Freund <and...@anarazel.de> wrote: > > On 2016-04-16 16:44:52 -0400, Noah Misch wrote: > > That is more controversial than the potential ~2% regression for > > old_snapshot_threshold=-1. Alvaro[2] and Robert[3] are okay releasing > > that way, and Andres[4] is not. > > FWIW, I could be kinda convinced that it's temporarily ok, if there'd be > a clear proposal on the table how to solve the scalability issue around > MaintainOldSnapshotTimeMapping(). >
It seems that for read-only workloads, MaintainOldSnapshotTimeMapping() takes EXCLUSIVE LWLock which seems to be a probable reason for a performance regression. Now, here the question is do we need to acquire that lock if xmin is not changed since the last time value of oldSnapshotControl->latest_xmin is updated or xmin is lesser than equal to oldSnapshotControl->latest_xmin? If we don't need it for above cases, I think it can address the performance regression to a good degree for read-only workloads when the feature is enabled. With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com