On Fri, Mar 30, 2012 at 10:55 AM, Daniel Farina <dan...@heroku.com> wrote:

> On Thu, Mar 29, 2012 at 6:37 PM, Dobes Vandermeer <dob...@gmail.com>
> wrote:
> > On Fri, Mar 30, 2012 at 3:59 AM, Daniel Farina <dan...@heroku.com>
> wrote:
> >>
> >> On Thu, Mar 29, 2012 at 12:57 PM, Daniel Farina <dan...@heroku.com>
> >> wrote:
> >>
> >> More technical concerns:
> >> > * Protocol compression -- but a bit of sand in the gears is *which*
> >> > compression -- for database workloads, the performance of zlib can be
> >> > a meaningful bottleneck.
> >
> > I think if performance is the issue, people should use the native
> protocol.
>
> No. I do not think so. I think a reasonable solution (part of what MS
> is actually proposing to the IETF) is to make compression optional, or
> have clients support an LZ77 family format like Snappy.  I get the
> impression that SPDY is waffling a little on this fact, it mandates
> compression, and definitely zlib, but is less heavy handed about
> pushing, say Snappy.  Although I can understand why a
> Google-originated technology probably doesn't want to push another
> Google-originated implementation so hard, it would have been
> convenient for me for Snappy to have become a more common format.
>
> > Isn't the URL good enough (/databases/<dbname>) or are you talking about
> > having some some of "virtual host" setup where you have multiple sets of
> > databases available on the same port?
>
> Virtual hosts. Same port.
>

In that case, the frontend would not be tied to a specific PostgreSQL
server, then?  I think initially this might complicate things a bit, and
you could solve it by putting an HTTP proxy in front to do the virtual
hosts for you.


> >> > * A standard frame extension format.  For example, last I checked
> >> > Postgres-XC, it required snapshot information to be passed, and it'd
> >> > be nice that instead of having to hack the protocol that they could
> >> > attach an X-Snapshot-Info header, or whatever. This could also be a
> >> > nice way to pass out-of-band hint information of all sorts.
> >
> >
> > I am sorry to admit I don't understand the terms "frame extension
> format" or
> > "Postgres-XC" in this paragraph ... help?
>
> It'd be nice if it wasn't
> necessary to do that and they had a much easier path to multiplex
> additional information into the connection.
>

Ah, I get it - you want a way to add some extra information to the protocol
in a backwards compatible way.  HTTP (and SPDY) provides a "standard" way
to do that.  Makes sense.


>
> For my own purposes, I'm intensely interest in lacing the connection with:
>
> * EXPLAIN ANALYZE
> * Partition IDs
> * Read-only vs. Write workload


I'll make a note of these and hash out the details a bit more once there's
something working to add them to.


> > As for SPDY I can see how it may be helpful but as it is basically a

> different way to send HTTP requests
>
> I think SPDY or like-protocols [...] give a crisp treatment to
> interactive, stateful workloads involving
> back-and-forth between client and server with multiplexing, fixing
> some problems with the hacks in HTTP-land from before.
>

It sounds like at some level you're really talking about replacing the
built-in protocol with SPDY because SPDY is possibly a better baseline than
updating the existing protocol.  That's an interesting idea, I think this
project could evolve in that direction if there's demand for it.

Reply via email to