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

From Tsunakawa, Takayuki
Subject RE: Zedstore - compressed in-core columnar storage
Date
Msg-id 0A3221C70F24FB45833433255569204D1FC6B348@G01JPEXMBYT05
Whole thread Raw
In response to Zedstore - compressed in-core columnar storage  (Ashwin Agrawal <aagrawal@pivotal.io>)
Responses Re: Zedstore - compressed in-core columnar storage
List pgsql-hackers
From: Ashwin Agrawal [mailto:aagrawal@pivotal.io]
> The objective is to gather feedback on design and approach to the same.
> The implementation has core basic pieces working but not close to complete.

Thank you for proposing a very interesting topic.  Are you thinking of including this in PostgreSQL 13 if possible?


> * All Indexes supported
...
> work. Btree indexes can be created. Btree and bitmap index scans work.

Does Zedstore allow to create indexes of existing types on the table (btree, GIN, BRIN, etc.) and perform index scans
(pointquery, range query, etc.)?
 


> * Hybrid row-column store, where some columns are stored together, and
>   others separately. Provide flexibility of granularity on how to
>   divide the columns. Columns accessed together can be stored
>   together.
...
> This way of laying out the data also easily allows for hybrid row-column
> store, where some columns are stored together, and others have a dedicated
> B-tree. Need to have user facing syntax to allow specifying how to group
> the columns.
...
> Zedstore Table can be
> created using command:
> 
> CREATE TABLE <name> (column listing) USING zedstore;

Are you aiming to enable Zedstore to be used for HTAP, i.e. the same table can be accessed simultaneously for both OLTP
andanalytics with the minimal performance impact on OLTP?  (I got that impression from the word "hybrid".)
 
If yes, is the assumption that only a limited number of  columns are to be stored in columnar format (for efficient
scanning),and many other columns are to be stored in row format for efficient tuple access?
 
Are those row-formatted columns stored in the same file as the column-formatted columns, or in a separate file?

Regarding the column grouping, can I imagine HBase and Cassandra?
How could the current CREATE TABLE syntax support column grouping?  (I guess CREATE TABLE needs a syntax for columnar
store,and Zedstore need to be incorporated in core, not as an extension...)
 


> A column store uses the same structure but we have *multiple* B-trees, one
> for each column, all indexed by TID. The B-trees for all columns are stored
> in the same physical file.

Did you think that it's not a good idea to have a different file for each group of columns?  Is that because we can't
expectphysical adjacency of data blocks on disk even if we separate a column in a separate file?
 

I thought a separate file for each group of columns would be easier and less error-prone to implement and debug.
Addingand dropping the column group would also be very easy and fast.
 


Regards
Takayuki Tsunakawa



pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Fix typos and inconsistencies for HEAD
Next
From: Amit Khandekar
Date:
Subject: Re: Minimal logical decoding on standbys