Re: Zedstore - compressed in-core columnar storage

From: Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com>
To: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Cc: Alexandra Wang <lewang(at)pivotal(dot)io>, Ashwin Agrawal <aagrawal(at)pivotal(dot)io>, DEV_OPS <devops(at)ww-it(dot)cn>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>, Taylor Vesely <tvesely(at)pivotal(dot)io>
Subject: Re: Zedstore - compressed in-core columnar storage
Date: 2019-10-24 09:20:12
Message-ID: CAE9k0PmgJm9HfXAo0yEf2+3igcxpwxHTg+GKmtKEC6oaR1kVrA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Oct 17, 2019 at 2:11 PM Heikki Linnakangas <hlinnaka(at)iki(dot)fi> wrote:
>
> On 15/10/2019 13:49, Ashutosh Sharma wrote:
> > Hi,
> >
> > I got chance to spend some time looking into the recent changes done
> > in the zedstore code, basically the functions for packing datums into
> > the attribute streams and handling attribute leaf pages. I didn't find
> > any issues but there are some minor comments that I found when
> > reviewing. I have worked on those and attached is the patch with the
> > changes. See if the changes looks meaningful to you.
>
> Thanks for looking! Applied to the development repository

Thank you. Here is one more observation:

When a zedstore table is queried using *invalid* ctid, the server
crashes due to assertion failure. See below,

postgres=# select * from t1 where ctid = '(0, 0)';
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.

I believe above should have either returned 0 rows or failed with some
user friendly error.

Further, when the same table is queried using some non-existing ctid,
the query returns 0 rows. See below,

postgres=# select count(*) from t1;
count
-------
2
(1 row)

postgres=# select * from t1 where ctid = '(0, 2)';
a | b
---+------
2 | str2
(1 row)

postgres=# select * from t1 where ctid = '(0, 3)';
a | b
---+---
(0 rows)

postgres=# select * from t1 where ctid = '(0, 4)';
a | b
---+---
(0 rows)

--
With Regards,
Ashutosh Sharma
EnterpriseDB:http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Thunder 2019-10-24 09:37:52 Re:Re: [BUG] standby node can not provide service even it replays all log files
Previous Message Amit Kapila 2019-10-24 09:13:48 Re: Ordering of header file inclusion