Re: I'd like to discuss scaleout at PGCon

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: MauMau <maumau307(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: I'd like to discuss scaleout at PGCon
Date: 2018-05-31 13:44:14
Message-ID: CA+TgmobU9ZeJePb2gTgCvhfstc6FwXH57Y_Z75jqJO3WW0qzJA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, May 31, 2018 at 8:12 AM, MauMau <maumau307(at)gmail(dot)com> wrote:
> I anticipated a decision process at the unconference like this:
> "Do we want to build on shared everything architecture?"
> "No, because it limits scalability, requires expensive shared storage,
> and it won't run on many clouds."
> "Then do we want to employ a new architecture like AWS Aurora?"
> "That may be interesting. But AWS could do it because they have an
> infinitely scalable storage layer which is built and used for a long
> time. This architecture may not be our option. But let's keep our
> eye on leveraging services of major cloud vendors just like Vertica
> does recently. Cloud services are now like traditional
> vendor-specific hardware. Maybe PostgreSQL should utilize them just
> like we use CPU-specific instructions now and GPU/persistent memory in
> the near future."
> "Then, it seems that we should go on the shared nothing architecture.
> Is it OK?"
> "Yes."

I think all of that except for the last two sentences accords with my
view, at least. As for the last two sentences, I'm happy to see
someone develop some kind of cloud-native storage if they want, but I
have no immediate plans in that area myself.

>> The FDW approach, of which I have been a supporter for some years now,
>> is really aiming at a different target, which is to allow efficient
>> analytics queries across a multi-node cluster.
>
> Oh, I didn't know you support FDW approach mainly for analytics. I
> guessed the first target was OLTP read-write scalability.

That seems like a harder target to me, because you will have an extra
hop involved -- SQL from the client to the first server, then via SQL
to a second server. The work of parsing and planning also has to be
done twice, once for the foreign table and again for the table. For
longer-running queries this overhead doesn't matter as much, but for
short-running queries it is significant.

> Agreed. I think we should not write much code from scratch, too. On
> the other hand, if we have to support sharding natively without FDW, I
> wonder if we can reuse the FDW artifact. I mean, extracting necessary
> logics from FDW into common functions, and native sharding code also
> calls them.

I wouldn't do it that way. I want to use postgres_fdw as a whole, not
break it up into pieces and reuse the individual bits of code. We
should think also about whether other FDWs could be part of it,
although maybe that's not realistic.

>> In fact, even if we said that we want a fully distributed database,
>> we'd probably still need some kind of distributed table concept.
>> Unless every node has a full copy of everything in the database, you
>> still need to reason about which data is present on which nodes and
>> optimize queries accordingly.
>
> Then, how about building the cluster membership management first,
> including node management and failure detection/failover? I think
> that node management is necessary anyway, and other developers can
> experiment other things on that cluster infrastructure. Do you think
> it would be helpful or wasteful? I'm finding what we can do for early
> scaleout release.

I don't know what "node management" and "failure dectection/failover"
mean specifically. I'd like to hear proposals, though.

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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2018-05-31 14:06:22 Re: Problem while updating a foreign table pointing to a partitioned table on foreign server
Previous Message Tom Lane 2018-05-31 13:35:22 Re: PostgreSQL 11 beta1 on AIX 7.2 : 2 failures in 32bit mode