On Thu, May 30, 2013 at 7:42 AM, Andres Freund <and...@2ndquadrant.com> wrote:
> In
> http://archives.postgresql.org/message-id/20130216164231.GA15069%40awork2.anarazel.de
> I presented the need for 'indirect' toast tuples which point into memory
> instead of a toast table. In the comments to that proposal, off-list and
> in-person talks the wish to make that a more general concept has
> been voiced.
>
> The previous patch used varattrib_1b_e.va_len_1be to discern between
> different types of external tuples. That obviously only works if the
> data sizes of all possibly stored datum types are distinct which isn't
> nice. So what the newer patch now does is to rename that field into
> 'va_tag' and decide based on that what kind of Datum we have. To get the
> actual length of that datum there now is a VARTAG_SIZE() macro which
> maps the tags back to size.
> To keep on-disk compatibility the size of an external toast tuple
> containing a varatt_external is used as its tag value.
>
> This should allow for fairly easy development of a new compression
> scheme for out-of-line toast tuples. It will *not* work for compressed
> inline tuples (i.e. VARATT_4B_C). I am not convinced that that is a
> problem or that if it is, that it cannot be solved separately.
>
> FWIW, in some quick microbenchmarks I couldn't find any performance
> difference due to the slightly more complex size computation which I do
> *not* find surprising.
>
> Opinions?

Seems pretty sensible to me.  The patch is obviously WIP but the
direction seems fine to me.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to