Re: [WIP] Effective storage of duplicates in B-tree index.
Alexander Korotkov <a.korotkov@postgrespro.ru>
On Thu, Mar 24, 2016 at 5:17 PM, Robert Haas <robertmhaas@gmail.com> wrote: > On Fri, Mar 18, 2016 at 1:19 PM, Anastasia Lubennikova > <a.lubennikova@postgrespro.ru> wrote: > > Please, find the new version of the patch attached. Now it has WAL > > functionality. > > > > Detailed description of the feature you can find in README draft > > https://goo.gl/50O8Q0 > > > > This patch is pretty complicated, so I ask everyone, who interested in > this > > feature, > > to help with reviewing and testing it. I will be grateful for any > feedback. > > But please, don't complain about code style, it is still work in > progress. > > > > Next things I'm going to do: > > 1. More debugging and testing. I'm going to attach in next message > couple of > > sql scripts for testing. > > 2. Fix NULLs processing > > 3. Add a flag into pg_index, that allows to enable/disable compression > for > > each particular index. > > 4. Recheck locking considerations. I tried to write code as less > invasive as > > possible, but we need to make sure that algorithm is still correct. > > 5. Change BTMaxItemSize > > 6. Bring back microvacuum functionality. > > I really like this idea, and the performance results seem impressive, > but I think we should push this out to 9.7. A btree patch that didn't > have WAL support until two and a half weeks into the final CommitFest > just doesn't seem to me like a good candidate. First, as a general > matter, if a patch isn't code-complete at the start of a CommitFest, > it's reasonable to say that it should be reviewed but not necessarily > committed in that CommitFest. This patch has had some review, but I'm > not sure how deep that review is, and I think it's had no code review > at all of the WAL logging changes, which were submitted only a week > ago, well after the CF deadline. Second, the btree AM is a > particularly poor place to introduce possibly destabilizing changes. > Everybody depends on it, all the time, for everything. And despite > new tools like amcheck, it's not a particularly easy thing to debug. > It's all true. But: 1) It's a great feature many users dream about. 2) Patch is not very big. 3) Patch doesn't introduce significant infrastructural changes. It just change some well-isolated placed. Let's give it a chance. I've signed as additional reviewer and I'll do my best in spotting all possible issues in this patch. ------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
Commits
-
Teach pageinspect about nbtree deduplication.
- 93ee38eade1b 13.0 landed
-
Doc: Fix deduplicate_items index term.
- e537aed61db7 13.0 landed
-
Revise BTP_HAS_GARBAGE nbtree VACUUM comments.
- 4b25f5d0ba01 13.0 cited
-
Remove unneeded "pin scan" nbtree VACUUM code.
- 9f83468b3536 13.0 landed
-
Cleanup code in reloptions.h regarding reloption handling
- 50d22de9325f 13.0 cited
-
Catch invalid typlens in a couple of places
- 8557a6f10ca6 13.0 cited
-
Compute XID horizon for page level index vacuum on primary.
- 558a9165e081 12.0 cited
-
Make heap TID a tiebreaker nbtree index column.
- dd299df8189b 12.0 cited
-
Avoid pin scan for replay of XLOG_BTREE_VACUUM in all cases
- 3e4b7d87988f 9.6.0 cited
-
Revert buggy optimization of index scans
- c7111d11b188 9.6.0 cited
-
Restructure index access method API to hide most of it at the C level.
- 65c5fcd353a8 9.6.0 cited
-
Reduce pinning and buffer content locking for btree scans.
- 2ed5b87f96d4 9.5.0 cited
-
Avoid scanning nulls at the beginning of a btree index scan.
- 1a77f8b63d15 9.2.0 cited