Re: [PROPOSAL] Use SnapshotAny in get_actual_variable_range
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Dmitriy Sarafannikov <dsarafannikov@yandex.ru>
Cc: Robert Haas <robertmhaas@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Borodin Vladimir <root@simply.name>, Хомик Кирилл <khomikki@yandex-team.ru>
Date: 2017-04-29T14:34:51Z
Lists: pgsql-hackers
Dmitriy Sarafannikov <dsarafannikov@yandex.ru> writes: >> Maybe we need another type of snapshot that would accept any >> non-vacuumable tuple. I really don't want SnapshotAny semantics here, > If I understood correctly, this new type of snapshot would help if > there are long running transactions which can see this tuples. > But if there are not long running transactions, it will be the same. > Am i right? Right. You haven't shown us much about the use-case you're concerned with, so it's not clear what's actually needed. > And what about don’t fetch actual min and max values from indexes > whose columns doesn’t involved in join? We don't fetch that info unless we need it. I'm not entirely certain, but there could be cases where a single planning cycle ends up fetching that data more than once. (There's caching at the RestrictInfo level, but that might not be enough.) So a line of thought that might be worth looking into is adding a lower layer of caching to make sure it's not done more than once per plan. Again, whether this saves anything would depend a lot on specific use-cases. regards, tom lane
Commits
-
Improve performance of get_actual_variable_range with recently-dead tuples.
- 3ca930fc39cc 11.0 landed
-
Use SnapshotDirty rather than an active snapshot to probe index endpoints.
- fccebe421d0c 9.4.0 cited