| From: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
|---|---|
| To: | Amit Kapila <amit(dot)kapila(at)huawei(dot)com> |
| Cc: | 'Alvaro Herrera' <alvherre(at)2ndquadrant(dot)com>, 'PostgreSQL-development' <pgsql-hackers(at)postgreSQL(dot)org> |
| Subject: | Re: Optimizing pglz compressor |
| Date: | 2013-07-01 08:05:37 |
| Message-ID: | 51D13851.9000100@vmware.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 26.06.2013 16:37, Amit Kapila wrote:
> On Wednesday, June 26, 2013 2:15 AM Heikki Linnakangas wrote:
>> Can you also try the attached patch, please? It's the same as before,
>> but in this version, I didn't replace the prev and next pointers in
>> PGLZ_HistEntry struct with int16s. That avoids some table lookups, at
>> the expense of using more memory. It's closer to what we have without
>> the patch, so maybe that helps on your system.
>
> Yes it helped a lot on my system.
Ok, good. Strange, I did not expect such a big difference.
> There was minor problem in you patch, in one of experiments it crashed.
> Fix is not to access 0th history entry in function pglz_find_match(),
> modified patch is attached.
Thanks, good catch! I thought that a pointer to the 0th entry would
never make it into the prev/next fields, but it does. In fact, we never
store a NULL there anymore, a pointer to the 0th entry is now always
used to mean 'invalid'. I adjusted the patch to remove the NULL check,
and only check for the 0th entry.
Committed.
- Heikki
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Maciej Gajewski | 2013-07-01 08:23:13 | Re: Review: query result history in psql |
| Previous Message | Heikki Linnakangas | 2013-07-01 08:01:26 | pgsql: Optimize pglz compressor for small inputs. |