Re: Zedstore - compressed in-core columnar storage - Mailing list pgsql-hackers

From Soumyadeep Chakraborty
Subject Re: Zedstore - compressed in-core columnar storage
Date
Msg-id CAE-ML+-HwY4X4uTzBesLhOotHF7rUvP2Ur-rvEpqz2PUgK4K3g@mail.gmail.com
Whole thread Raw
In response to Re: Zedstore - compressed in-core columnar storage  (Alexandra Wang <lewang@pivotal.io>)
Responses Re: Zedstore - compressed in-core columnar storage  (Tomas Vondra <tomas.vondra@enterprisedb.com>)
List pgsql-hackers
Hello,

We (Jacob and me) have an update for this thread.

1. We recently made some improvements to the table AM APIs for fetching
a single row (tuple_fetch_row_version()) and locking (and fetching) a
tuple (tuple_lock()), such that they could take a set of columns. We
extracted these columns at plan time and in some cases, executor time.
The changes are in the same spirit as some column-oriented changes that
are already a part of Zedstore - namely the ability to pass a set of
columns to sequential and index scans among other operations.

We observed that the two table AM functions are called in contexts
which don't need the entire set of columns to be populated in the
output TupleTableSlots associated with these APIs. For instance, in
DELETE RETURNING, we don't need to fetch all of the columns, just the
ones in the RETURNING clause.

We saw improvements (see results attached) for a variety of tests - we
added a bunch of tests in our storageperf test suite to test these
cases. We don't see a performance improvement for UPSERT and ON CONFLICT
DO NOTHING as there is an index lookup pulling in the entire row
preceding the call to table_tuple_lock() in both these cases. We do
see significant improvements (~3x) for DELETE RETURNING and row-level
locking and around a ~25x improvement in TidScan runtime.
Please refer to src/test/storageperf for the storageperf test suite.

2. We absorbed the scanCols patch [1], replacing some of the existing
executor-level column extraction for scans with the scanCols populated
during planning as in [1].

3. We also merged Zedstore upto PG 14 commit: efc5dcfd8a
PFA the latest version of the Zedstore patch.

Regards,

Jacob and Soumyadeep


[1]
https://www.postgresql.org/message-id/flat/CAAKRu_YxyYOCCO2e83UmHb51sky1hXgeRzQw-PoqT1iHj2ZKVg%40mail.gmail.com#681a254981e915805aec2aea9ea9caf4

Attachment

pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Prefer TG_TABLE_NAME over TG_RELNAME in tests
Next
From: Michael Paquier
Date:
Subject: Re: Reduce the number of special cases to build contrib modules on windows