Re: Pluggable Storage - Andres's take

From: Andres Freund <andres(at)anarazel(dot)de>
To: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Cc: Haribabu Kommi <kommi(dot)haribabu(at)gmail(dot)com>, Asim R P <apraveen(at)pivotal(dot)io>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, aagrawal(at)pivotal(dot)io, Dmitry Dolgov <9erthalion6(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru>
Subject: Re: Pluggable Storage - Andres's take
Date: 2019-03-06 07:07:21
Message-ID: 20190306070721.dd34u7g7ogtlvf7n@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2019-02-27 09:29:31 -0800, Andres Freund wrote:
> Once the EPQ patch (and two other simple preliminary ones) is pushed, I
> plan to post a new rebased version to this thread. That's then really
> only the core table AM work.

That's now done. Here's my current submission of remaining
patches. I've polished the first patch, adding DDL support, quite a bit,
I'm planning to push that soon.

Changes:

- I've removed the ability to specify a table AM to partitioned tables,
as discussed at [1]
- That happily shook out a number of bugs, where the partitioned table's
AM was used, when the leaf partitioned AM should have been used (via
the slot). In particular this necessicated refactoring the way slots
are used for ON CONFLICT of partitioned tables. That's the new WIP
patch in the series. But I think the result is actually clearer.
- I've integrated the pg_dump and psql patches, although I'd made
HIDE_TABLEAM independent of whether \d+ table is on a table with the
default AM or not.
- There's a good number of new tests in both the DDL and the pg_dump
patch
- Lots of smaller cleanups

My next steps are:
- final polish & push the basic DDL and pg_dump patches
- cleanup & polish the ON CONFLICT refactoring
- cleanup & polish the patch adding the tableam based scan
interface. That's by far the largest patch in the series. I might try
to split it up further, but it's probably not worth it.
- improve documentation for the individual callbacks (integrating
work done by others on this thread), in the header
- integrate docs patch
- integrate the revised version of the xid horizon patch by Amit
Khandekar (reviewed by Robert Haas)
- fix naive implementation of slot based COPY, to not constantly
drop/recreate slots upon partition change. I've hackplemented a better
approach, which makes it faster than the current code in my testing.

Notes:
- I'm currently not targeting v13 with "tableam: Fetch tuples for
triggers & EPQ using a proper snapshot.". While we need something like
that for some AMs like zheap, I think it's a crap approach and needs
more thought.

Greetings,

Andres Freund

[1] https://postgr.es/m/20190304234700.w5tmhducs5wxgzls@alap3.anarazel.de

Attachment Content-Type Size
v15-0001-tableam-introduce-table-AM-infrastructure.patch.gz application/x-patch-gzip 18.5 KB
v15-0002-tableam-Add-pg_dump-support.patch.gz application/x-patch-gzip 4.5 KB
v15-0003-WIP-Use-per-partition-slots-for-ON-CONFLICT.patch.gz application/x-patch-gzip 3.3 KB
v15-0004-tableam-Introduce-and-use-begin-endscan-and-do-i.patch.gz application/x-patch-gzip 44.6 KB
v15-0005-tableam-Inquire-slot-type-from-AM-rather-than-ha.patch.gz application/x-patch-gzip 6.3 KB
v15-0006-tableam-introduce-slot-based-table-getnext-and-u.patch.gz application/x-patch-gzip 6.7 KB
v15-0007-tableam-Add-insert-delete-update-lock_tuple.patch.gz application/x-patch-gzip 20.6 KB
v15-0008-tableam-Add-fetch_row_version.patch.gz application/x-patch-gzip 3.7 KB
v15-0009-tableam-Add-use-tableam_fetch_follow_check.patch.gz application/x-patch-gzip 1.4 KB
v15-0010-tableam-Add-table_get_latest_tid.patch.gz application/x-patch-gzip 1.7 KB
v15-0011-tableam-multi_insert-and-slotify-COPY.patch.gz application/x-patch-gzip 6.6 KB
v15-0012-tableam-finish_bulk_insert.patch.gz application/x-patch-gzip 1.9 KB
v15-0013-tableam-slotify-CREATE-TABLE-AS-and-CREATE-MATER.patch.gz application/x-patch-gzip 1.5 KB
v15-0014-tableam-index-builds.patch.gz application/x-patch-gzip 16.0 KB
v15-0015-tableam-relation-creation-VACUUM-FULL-CLUSTER-SE.patch.gz application/x-patch-gzip 15.4 KB
v15-0016-tableam-VACUUM-and-ANALYZE.patch.gz application/x-patch-gzip 5.4 KB
v15-0017-tableam-planner-size-estimation.patch.gz application/x-patch-gzip 3.9 KB
v15-0018-tableam-Sample-Scan-Support.patch.gz application/x-patch-gzip 7.2 KB
v15-0019-tableam-bitmap-heap-scan.patch.gz application/x-patch-gzip 5.0 KB
v15-0020-tableam-remaining-stuff.patch.gz application/x-patch-gzip 3.9 KB
v15-0021-WIP-Move-xid-horizon-computation-for-page-level-.patch.gz application/x-patch-gzip 6.2 KB
v15-0022-tableam-Add-function-to-determine-newest-xid-amo.patch.gz application/x-patch-gzip 1.2 KB
v15-0023-tableam-Fetch-tuples-for-triggers-EPQ-using-a-pr.patch.gz application/x-patch-gzip 2.3 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Rushabh Lathia 2019-03-06 07:13:17 ECPG regression with DECLARE STATEMENT support
Previous Message Amit Langote 2019-03-06 07:00:42 Re: BUG #15668: Server crash in transformPartitionRangeBounds