From: | Craig Ringer <craig(at)2ndquadrant(dot)com> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Damir Simunic <damir(dot)simunic(at)wa-research(dot)ch>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Vladimir Sitnikov <sitnikov(dot)vladimir(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Proposal: http2 wire format |
Date: | 2018-03-28 08:29:37 |
Message-ID: | CAMsr+YHp+TA0U2GPorns1rsx5Ffry3yOmEHwF0qHx3RN6nbNog@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 28 March 2018 at 16:02, Andres Freund <andres(at)anarazel(dot)de> wrote:
> On 2018-03-26 22:44:09 +0200, Damir Simunic wrote:
> > > *NONE* of the interesting problems are solved by HTTP2. You *still*
> > > need a full blown protocol ontop of it. So no, this doesn't change
> that.
> >
> > If you had to nominate only one of those problems, which one would you
> consider the most interesting?
>
> A few random, very tired, points:
>
> - consolidated message for common tasks:
> - (bind, [describe?,] execute) to reduce overhead of prepared
> statement execution (both in messages, as well as branches)
> - (anonymous parse, bind, describe, execute) to make it cheaper to
> send statements with out-of-line parameters
> - get rid of length limits of individual fields, probably w/ some variable
> length encoding (simple 7 bit?)
>
In preparation for the eventually-inevitable 64-bit field sizes, yes.
This should be on the protocol todo wiki.
> - allow *streaming* of large datums
Yes, very much +1 there. That's already on the wiki. Yeah:
* Permit lazy fetches of large values, at least out-of-line TOASTED values
http://www.postgresql.org/message-id/53FF0EF8.100@2ndquadrant.com
- type-level decisions about binary type transport, right now it's a lot
> of effort (including potentially additional roundtrips), to get the
> few important types to be transported in binary fashion. E.g. floating
> points are really expensive to stringify, bytea as text gets a lot
> bigger etc, but a lot of other types don't benefit a lot
>
Yeah, as distinct from now, where the client has specify param-by-param,
and where libpq doesn't support mixing text and binary formats in result
sets at all.
Again, needs wiki. I'll add.
- annotate COMMIT, PREPARE TRANSACTION, COMMIT PREPARED with LSN of
> associated WAL record
>
Already on the wiki, as is the related job of sending the xid of a txn to
the client when one is assigned.
> - have a less insane cancellation handling
>
+100
- nested table support
>
>
Can you elaborate on that one?
A few other points that come to mind for me are:
* labeled result sets (useful for stored procs, etc, as came up recently
with trying to figure out how to let stored procs have OUT params and
multiple result sets)
* room for other resultset formats later. Like Damir, I really want to add
protobuf or json serializations of result sets at some point, mainly so we
can return "entity graphs" in graph representation rather than left-join
projection.
* Robert Haas was talking about some issues relating to sync and the COPY
BOTH protocol a while ago, which we'd want to address.
--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Teodor Sigaev | 2018-03-28 08:35:06 | Re: Cast jsonb to numeric, int, float, bool |
Previous Message | Fabien COELHO | 2018-03-28 08:24:07 | Re: Re: csv format for psql |