Re: PostgreSQL advocacy - Mailing list pgsql-general

From Jernigan, Kevin
Subject Re: PostgreSQL advocacy
Date
Msg-id 490F7725-AD7A-44CB-BB05-5BFB7D043AD5@amazon.com
Whole thread Raw
In response to Re: PostgreSQL advocacy  (Bruce Momjian <bruce@momjian.us>)
Responses Re: PostgreSQL advocacy
List pgsql-general
On 3/22/16, 8:07 AM, "Bruce Momjian" <bruce@momjian.us> wrote:



>On Mon, Mar 21, 2016 at 04:46:51PM +0000, Jernigan, Kevin wrote:
>> Disk is only a single point of failure in RAC if you configure
>> non-redundant storage. In general, Oracle recommends triple mirroring
>> to protect against disk failures, as they have had many experiences
>> over the years where customers with mirrored disks would see
>> consecutive disk failures within short periods of time.
>>
>> And RAC is widely used by Oracle’s larger customers, not only
>> for HA, but also in some cases for scale-out. Having said that,
>> it’s very true that any application running on Oracle RAC must be
>> configured to avoid hot block contention across RAC nodes, so it’s
>> not a completely transparent solution for scale out.
>
>I get asked about Oracle RAC often.  My usual answer is that Oracle RAC
>gives you 50% of high reliability (storage is shared, mirroring helps)
>and 50% of scaling (CPU/memory is scaled, storage is not).  The
>requirement to partition applications to specific nodes to avoid cache
>consistency overhead is another downside.  (Slide 24 of my scaling
>presentation shows Oracle RAC,
>http://momjian.us/main/writings/pgsql/scaling.pdf .)
>
>I said the community is unlikely to go the Oracle RAC direction because
>it doesn't fully solve a single problem, and it is overly complex.  The
>community prefers fully-solved problems and simpler solutions.
>
>For me, streaming replication fully solves the high reliability problem
>and sharding fully solves the scaling problem.  Of course, if you need
>both, you have to deploy both, which gives you 100% of two solutions,
>rather than Oracle RAC which gives you 50% of each.  
>
>However, I do think database upgrades are easier with Oracle RAC, and I
>think it is much easier to add/remove nodes than with sharding.  For me,
>this chart summarizes it:
>
>                         HA   Scaling  Upgrade Add/Remove
>        Oracle RAC       50%     50%    easy    easy
>        Streaming Rep.  100%     25%*   hard    easy
>        Sharding          0%    100%    hard    hard
>        
>        * Allows read scaling
>
>-- 
>  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
>  EnterpriseDB                             http://enterprisedb.com
>
>+ As you are, so once was I. As I am, so you will be. +
>+ Roman grave inscription                             +

Implementing RAC-equivalent functionality is extremely hard, as evidenced by the lack of any directly comparable
capabilityfrom any other relational db engine, until the release of IBM DB2 Shareplex a few years ago. And given the
improvementof PostgreSQL and other open source solutions over the past 20 years, it’s not clear that it makes sense to
gothrough the initial design and implementation work and then the ongoing maintenance overhead - most of what RAC
providescan be achieved through other existing capabilities. 
 

While I’m not sure that the percentage breakdowns in your chart are totally accurate, I agree with the general
assessment,except for the highest-end applications which have zero-downtime requirements which can’t be met with
streamingreplication: the overhead of synchronous replication limits scalability, and the failover time for moving from
primaryto a failover target is significantly slower than RAC - which can be literally zero if configured correctly.
 

The higher-level point that I think is important is that while I may be able to win technical arguments that RAC is
betterfor certain high-end extreme workloads - and maybe I can’t even win those arguments ;-) - the real issue is that
therearen’t very many of those workloads, and the PostgreSQL community shouldn’t care: the vast majority of Oracle (and
SQLServer etc) workloads don’t need all the fancy high-end RAC capabilities, or many of the other high-end commercial
databasecapabilities. And those workloads can relatively easily be migrated to PostgreSQL, with minor disruption /
changeto schemas, data, triggers, constraints, procedural SQL…
 

-KJ

pgsql-general by date:

Previous
From: "Jernigan, Kevin"
Date:
Subject: Re: PostgreSQL advocacy
Next
From: Melvin Davidson
Date:
Subject: Re: Way to get at parsed trigger 'WHEN' clause expression?