Thread: "Hot standby"?

"Hot standby"?

From
Peter Eisentraut
Date:
What is "hot" and "standby" about the proposed "hot standby" feature?

The way I understand these terms in a replication/cluster scenario are:

cold - If the first node dies, you need to start the replacement node from a 
standing start.

warm - If the first node dies, the replacement node needs to do some work to 
get ready, but it's a lot quicker than "cold".

hot - If the first node dies, the replacement node can take over immediately.

standby - While the master node is running, the standby node instance cannot 
be used for anything (useful).

slave - While the master node is running, the slave node can be used in 
limited capacity (typically read-only).

master - Both/all nodes have equivalent capabilities all the time while the 
cluster is up.


For example, I'd say that a DRBD-based solution would be a cold standby.  
Among WAL-based solutions, what we have now with pg_standby (nomen est omen), 
is a warmish standby.  From what I understand, Simon's patch set does not 
change the "warm" property of this arrangement at all.  It only changes the 
"standby" to a "slave".

Am I off?  What other definition of terms justifies the description of "hot 
standby"?


Re: "Hot standby"?

From
Robert Haas
Date:
On Tue, Aug 11, 2009 at 5:30 AM, Peter Eisentraut<peter_e@gmx.net> wrote:
> What is "hot" and "standby" about the proposed "hot standby" feature?

Absolutely nothing.  It's horribly misnamed.

I have also long argued that "Synchronous Replication" should really
be called "Streaming Replication".  Perhaps it may eventually support
a synchronous mode of operation, but that will probably never be the
only one.

...Robert


Re: "Hot standby"?

From
Matheus Ricardo Espanhol
Date:
<div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt
0pt0pt 0.8ex; padding-left: 1ex;"> Am I off?  What other definition of terms justifies the description of "hot<br />
standby"?<br/></blockquote></div><br />I think that "Hot Standby" is associated with the high WAL recovery capacity.
<br/>In my opinion, is a good term to symbolizes the superiority compared with "Warm Standby".<br /><br clear="all"
/><br/>-- <br />Matheus Ricardo Espanhol<br />---------------------------------------<br />Dextra Sistemas<br /><a
href="http://www.dextra.com.br/postgres/">http://www.dextra.com.br/postgres/</a><br/><br /> 

Re: "Hot standby"?

From
Bruce Momjian
Date:
Robert Haas wrote:
> On Tue, Aug 11, 2009 at 5:30 AM, Peter Eisentraut<peter_e@gmx.net> wrote:
> > What is "hot" and "standby" about the proposed "hot standby" feature?

OK, so it is "warm slave".

> Absolutely nothing.  It's horribly misnamed.
> 
> I have also long argued that "Synchronous Replication" should really
> be called "Streaming Replication".  Perhaps it may eventually support
> a synchronous mode of operation, but that will probably never be the
> only one.

Yes, I like "streaming replication" because no matter how we implement
this feature, there are going to be synchronous and asynchronous modes
eventually.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


Re: "Hot standby"?

From
"Kevin Grittner"
Date:
Bruce Momjian <bruce@momjian.us> wrote: 
> OK, so it is "warm slave".
That is technically accurate, given the preceding definitions, but it
has disturbing connotations.  Enough so, in my view, to merit getting
a little more creative in the naming.  How about "warm replica"?
Other ideas?
I agree that the present moniker misleads.
-Kevin


Re: "Hot standby"?

From
"David E. Wheeler"
Date:
On Aug 11, 2009, at 5:32 AM, Bruce Momjian wrote:

> OK, so it is "warm slave".

I suggest steaming servant. Or tepid assistant.

David


Re: "Hot standby"?

From
Gianni Ciolli
Date:
On Tue, Aug 11, 2009 at 12:30:58PM +0300, Peter Eisentraut wrote:

> warm - If the first node dies, the replacement node needs to do some work to 
> get ready, but it's a lot quicker than "cold".
> 
> hot - If the first node dies, the replacement node can take over immediately.

> For example, I'd say that a DRBD-based solution would be a cold standby.  
> Among WAL-based solutions, what we have now with pg_standby (nomen est omen), 
> is a warmish standby.  From what I understand, Simon's patch set does not 
> change the "warm" property of this arrangement at all.  It only changes the 
> "standby" to a "slave".

> Am I off?  What other definition of terms justifies the description of "hot 
> standby"?

As for "warm/hot", it depends on what you exactly mean with "get
ready":

(A) If you mean "it is possible to connect to the second node", then   Simon's patch is "hot". 
   IIRC this meaning agrees with the terminology used by other   databases, such as Oracle, Sybase, etc.

(B) If you mean "the contents of the second node are equal to the   contents of the first node", then Simon's patch is
"warm".     But then we have by definition "hot" == "synchronous" and "either   warm or cold" == "asynchronous". IMHO
theother case is   preferrable, as the word sets "synchronous/asynchronous" and   "cold/warm/hot" are more expressive
becausethey measure two   independent properties.
 

Best regards,
Dr. Gianni Ciolli - 2ndQuadrant Italia
PostgreSQL Training, Services and Support
gianni.ciolli@2ndquadrant.it | www.2ndquadrant.it


Re: "Hot standby"?

From
"Joshua D. Drake"
Date:
On Tue, 2009-08-11 at 08:12 -0700, David E. Wheeler wrote:
> On Aug 11, 2009, at 5:32 AM, Bruce Momjian wrote:
>
> > OK, so it is "warm slave".
>
> I suggest steaming servant. Or tepid assistant.

We can't use those, I think they are on the list for Ubuntu.

Joshua D. Drake

>
> David
>
--
PostgreSQL - XMPP: jdrake@jabber.postgresql.org
   Consulting, Development, Support, Training
   503-667-4564 - http://www.commandprompt.com/
   The PostgreSQL Company, serving since 1997

Re: "Hot standby"?

From
David Fetter
Date:
On Tue, Aug 11, 2009 at 08:56:38AM -0500, Kevin Grittner wrote:
> Bruce Momjian <bruce@momjian.us> wrote: 
>  
> > OK, so it is "warm slave".
>  
> That is technically accurate, given the preceding definitions, but
> it has disturbing connotations.  Enough so, in my view, to merit
> getting a little more creative in the naming.  How about "warm
> replica"?  Other ideas?

Warm Read
Streamed Copy

Cheers,
David.
-- 
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778  AIM: dfetter666  Yahoo!: dfetter
Skype: davidfetter      XMPP: david.fetter@gmail.com

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate


Re: "Hot standby"?

From
Josh Berkus
Date:
Peter,

I believe we're just copying Oracle's terminology.  While that
terminology is not consistent, it is understood by the industry.  Oracle
defined their Hot Standby to have both asynchronous and synchronous modes:
http://www.oracle.com/technology/products/rdb/htdocs/dbms/hotstandby.html

The other industry term which would be understood would be "log-based
replication".   Terms we invent would be less likely to be understood,
and users would not get excited about them.

Otherwise, I say we go with "simmering follower".  ;-)

-- 
Josh Berkus
PostgreSQL Experts Inc.
www.pgexperts.com


Re: "Hot standby"?

From
Robert Haas
Date:
On Tue, Aug 11, 2009 at 1:08 PM, Josh Berkus<josh@agliodbs.com> wrote:
> I believe we're just copying Oracle's terminology.  While that
> terminology is not consistent, it is understood by the industry.  Oracle
> defined their Hot Standby to have both asynchronous and synchronous modes:
> http://www.oracle.com/technology/products/rdb/htdocs/dbms/hotstandby.html

I think that you are wrong.  Hot Standby is described in that document
as a way of replication the database and providing failover in the
event that the master dies.  This feature has to do with allowing
queries to be executed on the slave, which is not discussed in that
document.

...Robert


Re: "Hot standby"?

From
Ron Mayer
Date:
David Fetter wrote:
> On Tue, Aug 11, 2009 at 08:56:38AM -0500, Kevin Grittner wrote:
>> Bruce Momjian <bruce@momjian.us> wrote: 
>>  
>>> OK, so it is "warm slave".

Why isn't it just a "read only slave".  Do some systems
have read-only slave databases that can't serve as a warm
standby system as well as this one could?

>> That is technically accurate, given the preceding definitions, but
>> it has disturbing connotations.  Enough so, in my view, to merit
>> getting a little more creative in the naming.  How about "warm
>> replica"?  Other ideas?
> 
> Warm Read
> Streamed Copy

Master/Slave Replication and Warm Standby systems are common
enough terms that I can google them or look them up in many
computer science books.

While coming up with creative politically correct euphemisms
might be fun, I hope we stick near terms that other DBAs could
already be familiar with.

ISTM the best way to refer to it formally would be a  "Read Only Slave / Warm Standby"
system, even if informally we might have informal
discussions of "just how hot our slaves are" when hot-standby
features get added down the road.



Re: "Hot standby"?

From
Mark Mielke
Date:
On 08/11/2009 09:56 AM, Kevin Grittner wrote: <blockquote cite="mid:4A813246020000250002985D@gw.wicourts.gov"
type="cite"><prewrap="">Bruce Momjian <a class="moz-txt-link-rfc2396E"
href="mailto:bruce@momjian.us"><bruce@momjian.us></a>wrote:  </pre><blockquote type="cite"><pre wrap="">OK, so it
is"warm slave".   </pre></blockquote><pre wrap=""> 
 
That is technically accurate, given the preceding definitions, but it
has disturbing connotations.  Enough so, in my view, to merit getting
a little more creative in the naming.  How about "warm replica"?
Other ideas?
I agree that the present moniker misleads.</pre></blockquote><br /> I remember this debate from 6 months ago. :-)<br
/><br/> I prefer not to try and fit square pegs into round holes. Streaming replication sounds like the best
description.It may not be the keywords that newbies are looking for, but too bad for them. Calling it something
differentthan what it is, just so that people who don't understand why it is wrong will have something that
approximatesthe right understanding, is not a just cause. :-)<br /><br /> Cheers,<br /> mark<br /><br /><pre
class="moz-signature"cols="72">-- 
 
Mark Mielke <a class="moz-txt-link-rfc2396E" href="mailto:mark@mielke.cc"><mark@mielke.cc></a>
</pre>

Re: "Hot standby"?

From
Robert Haas
Date:
On Tue, Aug 11, 2009 at 2:48 PM, Mark Mielke<mark@mark.mielke.cc> wrote:
> On 08/11/2009 09:56 AM, Kevin Grittner wrote:
>
> Bruce Momjian <bruce@momjian.us> wrote:
>
>
>
> OK, so it is "warm slave".
>
>
>
> That is technically accurate, given the preceding definitions, but it
> has disturbing connotations.  Enough so, in my view, to merit getting
> a little more creative in the naming.  How about "warm replica"?
> Other ideas?
>
> I agree that the present moniker misleads.
>
> I remember this debate from 6 months ago. :-)
>
> I prefer not to try and fit square pegs into round holes. Streaming
> replication sounds like the best description. It may not be the keywords
> that newbies are looking for, but too bad for them. Calling it something
> different than what it is, just so that people who don't understand why it
> is wrong will have something that approximates the right understanding, is
> not a just cause. :-)

Uhm, I think you are confused.

Hot Standby = Allow read-only queries on a PostgreSQL server during
archive recovery
Synchronous (or Streaming) Replication = Allow WAL to be streamed on a
byte level rather than copied file-by-file

Hot Standby is not any sort of replication.

...Robert


Re: "Hot standby"?

From
Robert Haas
Date:
On Tue, Aug 11, 2009 at 2:10 PM, Ron Mayer<rm_pg@cheapcomplexdevices.com> wrote:
> David Fetter wrote:
>> On Tue, Aug 11, 2009 at 08:56:38AM -0500, Kevin Grittner wrote:
>>> Bruce Momjian <bruce@momjian.us> wrote:
>>>
>>>> OK, so it is "warm slave".
>
> Why isn't it just a "read only slave".  Do some systems
> have read-only slave databases that can't serve as a warm
> standby system as well as this one could?

I think that's about right.  What we have now via pg_standby or
similar tools is a warm standby.  What this tool does is makes the
warm-standby also serve as a read-only slave.  It doesn't make
failover any simpler so it's not making the standby any hotter - it
instead makes the standby be able to do more useful work when no
failover has occurred.

The technical description for the commit message is probably something
like this:

"Allow read-only queries to be processed during archive recovery."

The P/R version is probably something like this:

"Warm standby servers now function as read-only slaves."

...Robert


Re: "Hot standby"?

From
Mark Mielke
Date:
On 08/11/2009 02:52 PM, Robert Haas wrote: <blockquote
cite="mid:603c8f070908111152v452bb1bcj9787f3996a80fe9@mail.gmail.com"type="cite"><pre wrap="">On Tue, Aug 11, 2009 at
2:48PM, Mark Mielke<a class="moz-txt-link-rfc2396E" href="mailto:mark@mark.mielke.cc"><mark@mark.mielke.cc></a>
wrote:</pre><blockquote type="cite"><pre wrap="">I remember this debate from 6 months ago. :-)
 

I prefer not to try and fit square pegs into round holes. Streaming
replication sounds like the best description. It may not be the keywords
that newbies are looking for, but too bad for them. Calling it something
different than what it is, just so that people who don't understand why it
is wrong will have something that approximates the right understanding, is
not a just cause. :-)   </pre></blockquote><pre wrap="">
Uhm, I think you are confused.

Hot Standby = Allow read-only queries on a PostgreSQL server during
archive recovery
Synchronous (or Streaming) Replication = Allow WAL to be streamed on a
byte level rather than copied file-by-file

Hot Standby is not any sort of replication.</pre></blockquote><br /> I don't think I was confused before - but I am
confusednow. :-)<br /><br /> This patch does not provide streaming replication?<br /><br /> Having the standby allow
forread-only queries is a "would be nice" for me, but it's not very useful. I've been monitoring these threads (and
wishingthey were at a level I could participate and contribute on), because I want the ability to have near real time
updatessuch that the standby can become live. "Hot standby" to me means "the slave is as close to up-to-date as
possibleand can potentially take over at any time in a near instance." This *implies* some sort of streaming
replication(byte level rather than file-by-file) rather than waiting for WAL logs to become full and shipped.<br /><br
/>If this patch doesn't give me near real time replication, then I am confused about why I would want it at all.
pg_standbyalready gives the ability to do replication on a per completed WAL log file basis.<br /><br /> Cheers,<br />
mark<br/><br /><pre class="moz-signature" cols="72">-- 
 
Mark Mielke <a class="moz-txt-link-rfc2396E" href="mailto:mark@mielke.cc"><mark@mielke.cc></a>
</pre>

Re: "Hot standby"?

From
Alvaro Herrera
Date:
Mark Mielke escribió:

> I don't think I was confused before - but I am confused now. :-)
> 
> This patch does not provide streaming replication?

No.  What it does is allow you to query the slave while it's still
replaying transactions.  There's another patch allowing you to do
"stream replication".  Hopefully both things could be used
simultaneously.

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


Re: "Hot standby"?

From
"Kevin Grittner"
Date:
Mark Mielke <mark@mark.mielke.cc> wrote:
> This patch does not provide streaming replication?
There's a separate effort to provide asynchronous and synchronous
streaming replication.  Different patch.
> "Hot standby" to me means "the slave is as close to up-to-date as
> possible and can potentially take over at any time in a near
> instance." This *implies* some sort of streaming replication (byte
> level rather than file-by-file) rather than waiting for WAL logs to
> become full and shipped.
Most of use would expect that from something called "hot standby".
That's why so many of us have been saying that the name is misleading.
This patch, as I understand it, would allow you to use the warm
standby to run read-only queries -- for reports and such, to take some
load off the primary database.  No more; no less.
So it's still warm, not hot, and it's still usable as a warm standby.
It just lets you squeeze a little extra benefit from the copy while it
sits there periodically updating itself.
-Kevin


Re: "Hot standby"?

From
Josh Berkus
Date:
All,

So really, the "streaming replication" patch should be called "hot
standby", and the "hot standby" patch should be called "read only slaves"?

And *why* can't we call it log-based replication?

-- 
Josh Berkus
PostgreSQL Experts Inc.
www.pgexperts.com


Re: "Hot standby"?

From
Merlin Moncure
Date:
On Tue, Aug 11, 2009 at 4:07 PM, Josh Berkus<josh@agliodbs.com> wrote:
> All,
>
> So really, the "streaming replication" patch should be called "hot
> standby", and the "hot standby" patch should be called "read only slaves"?
>
> And *why* can't we call it log-based replication?

+1

*) it _is_ used to replicate a database (replicate means make a copy!)
*) our target market will perceive it that way
*) sounds cool

'synchronous log-based replication'
'asynchronous log-based replication'
or,
'log-based replication', in both synchronous and asynchronous modes

merlin


Re: "Hot standby"?

From
Gianni Ciolli
Date:
On Tue, Aug 11, 2009 at 01:14:56PM -0400, Robert Haas wrote:
> On Tue, Aug 11, 2009 at 1:08 PM, Josh Berkus<josh@agliodbs.com> wrote:
> > I believe we're just copying Oracle's terminology.  While that
> > terminology is not consistent, it is understood by the industry.  Oracle
> > defined their Hot Standby to have both asynchronous and synchronous modes:
> > http://www.oracle.com/technology/products/rdb/htdocs/dbms/hotstandby.html
> 
> I think that you are wrong.  Hot Standby is described in that document
> as a way of replication the database and providing failover in the
> event that the master dies.  This feature has to do with allowing
> queries to be executed on the slave, which is not discussed in that
> document.

That web page contains only a brief summary of Oracle's Hot Standby;
by looking at the attached PDF guide you can see that the capability
of allowing read-only queries on the standby node is actually part of
their architecture.

Since we are comparing the features with Oracle's Hot Standby, it is
perhaps useful to mention two of the major differences:

* Oracle's Hot Standby allows only one Standby node, while on PostgreSQL we can have as many as we want, since the
Primaryis totally unaware of them.
 
 Allowing N clones instead of only one may be a crucial advantage in these use cases where read-only queries represent
thevast majority of the load.
 

* Oracle's Hot Standby allows cloning hash indexes, which on PostgreSQL are not WAL safe (anyway, they are currently
discouragedby the documentation).
 

Best regards,
Dr. Gianni Ciolli - 2ndQuadrant Italia
PostgreSQL Training, Services and Support
gianni.ciolli@2ndquadrant.it | www.2ndquadrant.it



Re: "Hot standby"?

From
Peter Eisentraut
Date:
On Tuesday 11 August 2009 18:16:04 Gianni Ciolli wrote:
> As for "warm/hot", it depends on what you exactly mean with "get
> ready":
>
> (A) If you mean "it is possible to connect to the second node", then
>     Simon's patch is "hot".

Yeah, but by that definiton doing a pg_dump/pg_restore every hour is also 
"hot". ;-)

Incidentally, we billed pg_dump as hot backup at some point.



Re: "Hot standby"?

From
Robert Haas
Date:
On Tue, Aug 11, 2009 at 4:07 PM, Josh Berkus<josh@agliodbs.com> wrote:
> So really, the "streaming replication" patch should be called "hot
> standby",

No.  AIUI, hot standby means that when your primary falls over, the
secondary automatically promotes itself and takes over.  It requires
things like heartbeat monitoring and STONITH and is unrelated to
anything we currently have under consideration.

> and the "hot standby" patch should be called "read only slaves"?

Yes.

> And *why* can't we call it log-based replication?

Well, we can call it anything we want.  For example, up until now
we've been calling it "hot standby", even though that's clearly wrong.
:-)

But on the merits: log-based replication is, I think, what we already
have.  Both of these patches do things that make it better.  Streaming
replication (fka synch rep) makes it more nearly real-time, and
read-only slaves (fka hot standby) makes the standby server more
useful.  But neither is ADDING log-based replication, they're both
IMPROVING it, in different ways.

...Robert


Re: "Hot standby"?

From
Pierre Frédéric Caillaud
Date:
> Incidentally, we billed pg_dump as hot backup at some point.

mysql calls "mysqlhotcopy" a script that locks and flushes all tables,  
then makes a copy of the database directory (all queries being locked out  
while this is in progress, of course).


Re: "Hot standby"?

From
Andrew Dunstan
Date:

Pierre Frédéric Caillaud wrote:
>
>> Incidentally, we billed pg_dump as hot backup at some point.
>
> mysql calls "mysqlhotcopy" a script that locks and flushes all tables, 
> then makes a copy of the database directory (all queries being locked 
> out while this is in progress, of course).
>
>

Doesn't sound very "hot" to me. Tepid at best.

cheers

andrew


Re: "Hot standby"?

From
Josh Berkus
Date:
>> Incidentally, we billed pg_dump as hot backup at some point.

It *is* "hot backup" as in taken while the database is running and fully
accessible.

> mysql calls "mysqlhotcopy" a script that locks and flushes all tables,
> then makes a copy of the database directory (all queries being locked
> out while this is in progress, of course).

Which is actually 'cold backup'; it's only "hot" compared to earlier
MySQLs where you had to shut the db down.  So it's sort of a "lukewarm
backup".


-- 
Josh Berkus
PostgreSQL Experts Inc.
www.pgexperts.com


Re: "Hot standby"?

From
"Joshua D. Drake"
Date:
On Tue, 2009-08-11 at 08:12 -0700, David E. Wheeler wrote:
> On Aug 11, 2009, at 5:32 AM, Bruce Momjian wrote:
> 
> > OK, so it is "warm slave".
> 
> I suggest steaming servant. Or tepid assistant.

We can't use those, I think they are on the list for Ubuntu.

Joshua D. Drake

> 
> David
> 
-- 
PostgreSQL - XMPP: jdrake@jabber.postgresql.org  Consulting, Development, Support, Training  503-667-4564 -
http://www.commandprompt.com/ The PostgreSQL Company, serving since 1997
 



Re: "Hot standby"?

From
Gianni Ciolli
Date:
On Wed, Aug 12, 2009 at 12:11:28AM +0300, Peter Eisentraut wrote:
> On Tuesday 11 August 2009 18:16:04 Gianni Ciolli wrote:
> > As for "warm/hot", it depends on what you exactly mean with "get
> > ready":
> >
> > (A) If you mean "it is possible to connect to the second node", then
> >     Simon's patch is "hot".
> 
> Yeah, but by that definiton doing a pg_dump/pg_restore every hour is also 
> "hot". ;-)

OK, but only if (a) the data is so small that the restore takes less
than one hour, and if (b) the workload is far from 100% ;-)

Since there seem to be multiple views about terminology, it may be
useful to recall the proposed wording from
http://wiki.postgresql.org/wiki/Hot_Standby :

* the first node is called either "Primary" or "Master" 

* the second node is called "Standby" 

* the Standby is referred to as a "Clone" instead of a "Slave", to mean that it is an exact copy, which, instead of
beingbuilt by repeating the actions of the master, is constructed just by implementing their effects.
 

Best regards,
Dr. Gianni Ciolli - 2ndQuadrant Italia
PostgreSQL Training, Services and Support
gianni.ciolli@2ndquadrant.it | www.2ndquadrant.it



Re: "Hot standby"?

From
Bruce Momjian
Date:
Robert Haas wrote:
> On Tue, Aug 11, 2009 at 4:07 PM, Josh Berkus<josh@agliodbs.com> wrote:
> > So really, the "streaming replication" patch should be called "hot
> > standby",
> 
> No.  AIUI, hot standby means that when your primary falls over, the
> secondary automatically promotes itself and takes over.  It requires
> things like heartbeat monitoring and STONITH and is unrelated to
> anything we currently have under consideration.
> 
> > and the "hot standby" patch should be called "read only slaves"?
> 
> Yes.
> 
> > And *why* can't we call it log-based replication?
> 
> Well, we can call it anything we want.  For example, up until now
> we've been calling it "hot standby", even though that's clearly wrong.
> :-)

How about "streaming archive logging" for synchronous replication, and
"continuous archive slave" for read-only queries on a warm standby.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


Re: "Hot standby"?

From
Greg Stark
Date:
On Tue, Aug 11, 2009 at 10:13 PM, Robert Haas<robertmhaas@gmail.com> wrote:
> On Tue, Aug 11, 2009 at 4:07 PM, Josh Berkus<josh@agliodbs.com> wrote:
>> So really, the "streaming replication" patch should be called "hot
>> standby",
>
> No.  AIUI, hot standby means that when your primary falls over, the
> secondary automatically promotes itself and takes over.

No! This is *not* what "hot standby" means, at least not in the Oracle world.

The "hot" in "hot standby" is not a reference to the hot backups or
replication behaviour. It means to the fact that the server is able to
take queries. Ie, It's a living breathing server, not one in some kind
of half-alive state like a warm standby server.

Essentially "hot" vs "warm" versus uh, "plain old standby server"
refer to how alive the server is. A traditional standby server was a
machine which was available to take over after a restore. A warm
standby was one that was constantly replaying logs and could be given
life quickly. A hot standby was actually alive.

I think the term "warm standby" and "hot standby" were actually by
analogy to the older term "hot spare" which referred to a machine
which was on and hooked up and ready to go as opposed to one which was
in the cupboard and could be deployed after manual intervention.

>> and the "hot standby" patch should be called "read only slaves"?
>
> Yes.
>
>> And *why* can't we call it log-based replication?
>
> Well, we can call it anything we want.  For example, up until now
> we've been calling it "hot standby", even though that's clearly wrong.
> :-)

"log based replication", "read-only slaves", and "hot standby" are all
100% accurate descriptions of what the hot standby patch enables. I do
like "read only slaves" because it's the most precise and meaningful.

By comparison, it's not clear whether "log based replication" is what
we've had since 8.0 or  whether it's multi-master read-write
replication. And "hot standby" is buzzwordy and depends on Oracle
experience to acquire any meaning.

When we have sync replication you'll also have to distinguish whether
the slave/standby/replica are sync slaves or async slaves and if
they're async what asynchronous mode they're in, streaming or
file-based. Using "hot" to describe those aspects would be horribly
confusing to Oracle users.

--
greg
http://mit.edu/~gsstark/resume.pdf


Re: "Hot standby"?

From
Greg Stark
Date:
As I see it we potentially have the following modes to deal with:

Archive file mode     asynchronous  archive
Archive file mode     asynchronous  standby slave
Streaming mode      asynchronous  standby slave
Streaming mode      synchronous    standby slave
Archive file mode     asynchronous  read-only slave
Streaming mode      asynchronous  read-only slave
Streaming mode      synchronous    read-only slave

By "standby slave" I mean a server which is constantly in recovery
mode but isn't open for connections. This is what we (and Oracle) have
been calling a warm standby. By "read-only slave" I mean a server
which is open for connections and can handle read-only queries, which
as I mentioned Oracle calls a hot standby. Note that *all* of these
are "log-based replication".

I'm not actually certain we can handle streaming synchronous mode to a
standby slave. Does the slave need to have connections enabled to
handle feeding wal sync status to the master?

I don't see any particular reason to come up with names for each of
these combination of modes. I'm pretty happy just saying there are
three different configuration options and certain options depend on
other options so only certain combinations are legal.

-- 
greg


Re: "Hot standby"?

From
Robert Haas
Date:
On Tue, Aug 11, 2009 at 9:44 PM, Greg Stark<gsstark@mit.edu> wrote:
> On Tue, Aug 11, 2009 at 10:13 PM, Robert Haas<robertmhaas@gmail.com> wrote:
>> On Tue, Aug 11, 2009 at 4:07 PM, Josh Berkus<josh@agliodbs.com> wrote:
>>> So really, the "streaming replication" patch should be called "hot
>>> standby",
>>
>> No.  AIUI, hot standby means that when your primary falls over, the
>> secondary automatically promotes itself and takes over.
>
> No! This is *not* what "hot standby" means, at least not in the Oracle world.

I'm perplexed by this.  For example: http://en.wikipedia.org/wiki/Hot_standby

Admittedly, wikipedia is not an authoritative source, but I've always
understood cold/warm/hot just as Peter described them upthread.  Cold
means it's on the shelf.  Warm means it's plugged in, but you have to
have to do something to get it going.  Hot means it just takes over
when needed.

But of course I guess Oracle can call their features what they want to...

> "log based replication", "read-only slaves", and "hot standby" are all
> 100% accurate descriptions of what the hot standby patch enables. I do
> like "read only slaves" because it's the most precise and meaningful.

Me too.

...Robert


Re: "Hot standby"?

From
Mark Mielke
Date:
On 08/11/2009 11:19 PM, Robert Haas wrote: <blockquote
cite="mid:603c8f070908112019t7f62f170m6ed48bc651baae9d@mail.gmail.com"type="cite"><pre wrap="">On Tue, Aug 11, 2009 at
9:44PM, Greg Stark<a class="moz-txt-link-rfc2396E" href="mailto:gsstark@mit.edu"><gsstark@mit.edu></a> wrote:
</pre><blockquotetype="cite"><pre wrap="">No! This is *not* what "hot standby" means, at least not in the Oracle world.
 </pre></blockquote><pre wrap="">
 
I'm perplexed by this.  For example: <a class="moz-txt-link-freetext"
href="http://en.wikipedia.org/wiki/Hot_standby">http://en.wikipedia.org/wiki/Hot_standby</a>

Admittedly, wikipedia is not an authoritative source, but I've always
understood cold/warm/hot just as Peter described them upthread.  Cold
means it's on the shelf.  Warm means it's plugged in, but you have to
have to do something to get it going.  Hot means it just takes over
when needed.

But of course I guess Oracle can call their features what they want to... </pre></blockquote><br /> To further confuse
things,the "temperature" might apply to only a particular aspect of the solution. For example, "hot swappable disk
drives"are drives that probably do sit on a shelf until they are needed, and the "hot" aspect only implies that the
serverdoes not need to be shut down to install the drives, and initialize them for service. :-)<br /><br /> For
databases,people seem to be associating "hot" with the ability to issue read only queries. As somebody else said -
undera definition of hot that includes read-only clones, pg_dump/pg_restore could be considered a "hot standby"
strategy.<br/><br /> I don't agree with that definition. For the clone to be able to perform read-only queries does not
imply"hot" nor does it imply "standby". It implies "slave". The original poster correctly raised this concern.<br /><br
/>For myself, I associate "hot" to mean "ready to replace the master", which implies that the data is up-to-date or
nearlyup-to-date, and implies that the server is within a bit toggle of accepting mastership of the data and serving
ALLqueries that the master would serve. Key to this is "nearly up-to-date" (requires some sort of streaming) AND "ALL
queries"(not just read queries!).<br /><br /> If the server happens to be able to do read queries while it is waiting
instandby more - that's convenient and could be useful to somebody, but that's not the value of a "hot standby" -
that'sthe value of a "read-only slave". The feature being provided is not "hot standby".<br /><br /> In the case of
Oracle,I believe their "hot standby" provides the nearly up-to-date, and the capability to switch over, which satisfies
myrequirements. It might *also* allow read-only slave for the standby, but that's just convenience - it's not really
partof the definition or expectation of "hot standby".<br /><br /><br /><blockquote
cite="mid:603c8f070908112019t7f62f170m6ed48bc651baae9d@mail.gmail.com"type="cite"><blockquote type="cite"><pre
wrap="">"logbased replication", "read-only slaves", and "hot standby" are all
 
100% accurate descriptions of what the hot standby patch enables. I do
like "read only slaves" because it's the most precise and meaningful.   </pre></blockquote><pre wrap="">
Me too. </pre></blockquote><br /> Read only slave works for me.<br /><br /> Cheers,<br /> mark<br /><br /><pre
class="moz-signature"cols="72">-- 
 
Mark Mielke <a class="moz-txt-link-rfc2396E" href="mailto:mark@mielke.cc"><mark@mielke.cc></a>
</pre>

Re: "Hot standby"?

From
Greg Stark
Date:
On Wed, Aug 12, 2009 at 4:19 AM, Robert Haas<robertmhaas@gmail.com> wrote:
> On Tue, Aug 11, 2009 at 9:44 PM, Greg Stark<gsstark@mit.edu> wrote:
>> No! This is *not* what "hot standby" means, at least not in the Oracle world.
>
> I'm perplexed by this.  For example: http://en.wikipedia.org/wiki/Hot_standby

Well that just links to "Hot Spare" which is a term which existed long
before Oracle implemented hot standby or even warm standby for that
matter.

--
greg
http://mit.edu/~gsstark/resume.pdf


Re: "Hot standby"?

From
Joshua Tolley
Date:
On Tue, Aug 11, 2009 at 11:19:18PM -0400, Robert Haas wrote:
> On Tue, Aug 11, 2009 at 9:44 PM, Greg Stark<gsstark@mit.edu> wrote:
> > On Tue, Aug 11, 2009 at 10:13 PM, Robert Haas<robertmhaas@gmail.com> wrote:
> >> On Tue, Aug 11, 2009 at 4:07 PM, Josh Berkus<josh@agliodbs.com> wrote:
> >>> So really, the "streaming replication" patch should be called "hot
> >>> standby",
> >>
> >> No.  AIUI, hot standby means that when your primary falls over, the
> >> secondary automatically promotes itself and takes over.
> >
> > No! This is *not* what "hot standby" means, at least not in the Oracle world.
>
> I'm perplexed by this.  For example: http://en.wikipedia.org/wiki/Hot_standby
>
> Admittedly, wikipedia is not an authoritative source, but I've always
> understood cold/warm/hot just as Peter described them upthread.  Cold
> means it's on the shelf.  Warm means it's plugged in, but you have to
> have to do something to get it going.  Hot means it just takes over
> when needed.

After all this, perhaps we can at least conclude that calling it "cold",
"warm", or "hot" anything is confusing, because no one can agree on what that
means. I propose we leave off finding a naming that includes temperature.

--
Joshua Tolley / eggyknap
End Point Corporation
http://www.endpoint.com

Re: "Hot standby"?

From
"Kevin Grittner"
Date:
Greg Stark <gsstark@mit.edu> wrote: 
> I'm not actually certain we can handle streaming synchronous mode to
> a standby slave. Does the slave need to have connections enabled to
> handle feeding wal sync status to the master?
I thought there were major concerns about the interaction of those
read-only queries with the replicated database transactions in 
synchronous mode, too.  Following threads on the topic has left me a
little dubious that it can be truly synchronous, in the sense that it
must commit to the clone before the master returns an indication of
success to the client.  Are we still shooting for that or has
"synchronous" become shorthand for "we'll try really hard to keep the
lag minimal when we can"?
> I don't see any particular reason to come up with names for each of
> these combination of modes. I'm pretty happy just saying there are
> three different configuration options and certain options depend on
> other options so only certain combinations are legal.
Sounds reasonable to me.
-Kevin


Re: "Hot standby"?

From
Bruce Momjian
Date:
Mark Mielke wrote:
> To further confuse things, the "temperature" might apply to only a 
> particular aspect of the solution. For example, "hot swappable disk 
> drives" are drives that probably do sit on a shelf until they are 
> needed, and the "hot" aspect only implies that the server does not need 
> to be shut down to install the drives, and initialize them for service. :-)
> 
> For databases, people seem to be associating "hot" with the ability to 
> issue read only queries. As somebody else said - under a definition of 
> hot that includes read-only clones, pg_dump/pg_restore could be 
> considered a "hot standby" strategy.
> 
> I don't agree with that definition. For the clone to be able to perform 
> read-only queries does not imply "hot" nor does it imply "standby". It 
> implies "slave". The original poster correctly raised this concern.

Agreed.  I think by definition, "standby" is "standing by", meaning it
isn't doing anything, so I don't see how a read-only system could be a
standby.  I agree "slave" is a better name.

I understand that Oracle uses the terms differently but I assume their
terms were chosen for historical/marketing reasons, and I am not sure
following Oracle is a good idea if their terms are confusing for
non-Oracle folks.

This reminds me of the terminology change we made when we added
point-in-time recovery.  At some point we started documenting the
process of "continuous archiving" separately from the process of
"point-in-time recovery".  I think that served us well because once
pg_standby was available, we had the possibility of continuous-archiving
happening without the possibility for point-in-time recovery because the
standby was always current.

"Continuous archive slave" might be the most accurate terminology;  that
seems the clearest, and people won't have to ask "what is that, exactly".

The streaming WAL log feature should probably be called "streaming
continuous archiving".  That does allow the possibility of having a
"streaming continuous archving slave".

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


Re: "Hot standby"?

From
Markus Wanner
Date:
Robert Haas wrote:
> I have also long argued that "Synchronous Replication" should really
> be called "Streaming Replication".

+1

Regards

Markus Wanner