Обсуждение: Terms and Definitions for Database Replication

Поиск
Список
Период
Сортировка

Terms and Definitions for Database Replication

От
Markus Schiltknecht
Дата:
Hi,

as our documentation does not explain all of the terms used in 
replication, I've compiled a list of such terms and definitions at [1]. 
Can somebody please link that page from the "Technical documentation > 
Community Generated Articles, Guides, and Documentation" in the 
Replication section?

I'd also appreciate comments, corrections and criticism about the 
document itself.

Regards

Markus

[1]: Terms and Definitions for Database Replication
http://www.postgres-r.org/documentation/terms



Re: Terms and Definitions for Database Replication

От
Robert Treat
Дата:
On Tuesday 04 September 2007 15:06, Markus Schiltknecht wrote:
> Hi,
>
> as our documentation does not explain all of the terms used in
> replication, I've compiled a list of such terms and definitions at [1].
> Can somebody please link that page from the "Technical documentation >
> Community Generated Articles, Guides, and Documentation" in the
> Replication section?
>

Link added.

> I'd also appreciate comments, corrections and criticism about the
> document itself.
>

1st paragraph -> "everything less hurts ACID principles and thus isn't 
transparent to the application";   ACIDity doesn't control transparancy to 
application, so I would remove the "thus"

Single Master vs. MM ->  I think you should mention that single master is 
commonly reffered to as "master-slave".  Also you should add an explicit 
example of what MM is. 

Eager vs. Lazy -> these terms are pretty nebulous in the literature, and your 
definitions didnt resonate with me. But I don't disagree with it either :-)

Also, I think you need to add a section on shared nothing vs. shared 
everything.  And maybe also explain vertical partitioning vs. horizontal 
partitioning (aka sharding).  While the first has pretty much nothing to do 
with replication, the second generally requires it to be done right.

HTH. 

-- 
Robert Treat
Build A Brighter LAMP :: Linux Apache {middleware} PostgreSQL


Re: Terms and Definitions for Database Replication

От
Markus Schiltknecht
Дата:
Hi,

Robert Treat wrote:
> Link added.

Thank you.

> 1st paragraph -> "everything less hurts ACID principles and thus isn't 
> transparent to the application";   ACIDity doesn't control transparancy to 
> application, so I would remove the "thus"

Hm.. a database which isn't ACID compliant isn't "transparent" to an 
application which expects an ACID compliant database. But you are right, 
not all applications require full ACIDity.

> Single Master vs. MM ->  I think you should mention that single master is 
> commonly reffered to as "master-slave".

Good tip, thanks.

> Also you should add an explicit 
> example of what MM is.

Hm.. not sure, my primary goal is giving good definitions. Examples are 
good for understanding, but normally aren't general enough. I'll give it 
a try.

> Eager vs. Lazy -> these terms are pretty nebulous in the literature, and your 
> definitions didnt resonate with me. But I don't disagree with it either :-)

Yeah, they are nebulous. The main reason for this nifty distinction is, 
that the Postgres-R algorithm isn't synchronous in the common sense. But 
it replicates data *before* committing to avoid convergence (and 
conflicts). So it's eager, but asynchronous.

> Also, I think you need to add a section on shared nothing vs. shared 
> everything.

Ah... at a certain point during writing that doc, that came to my mind, 
but then it immediately disappeared. I only remembered that there was 
yet another pair of terms. Thank you very much for reminding me.

> And maybe also explain vertical partitioning vs. horizontal 
> partitioning (aka sharding).

Okay, I'll add that as well, makes sense.

> While the first has pretty much nothing to do 
> with replication,

Well, you could spread the vertically partitioned tables across multiple 
nodes, thus requiring distributed querying. There's almost nothing which 
doesn't touch replication. And most things only add complexity ;-)

Thank you for your review.

Regards

Markus


Re: Terms and Definitions for Database Replication

От
Robert Treat
Дата:
On Thursday 06 September 2007 09:54, Markus Schiltknecht wrote:
> > Single Master vs. MM ->  I think you should mention that single master is
> > commonly reffered to as "master-slave".
>
> Good tip, thanks.
>
> > Also you should add an explicit
> > example of what MM is.
>
> Hm.. not sure, my primary goal is giving good definitions. Examples are
> good for understanding, but normally aren't general enough. I'll give it
> a try.
>

Example may have been the wrong word. That paragraph explains what single 
master is explicitly, but never explains what multiple master is explicitly 
(ie. more than one node accepting writes, and then using 2PC or conflict 
resultion to push changes around).  So maybe just provide a more explicit 
definition of MM.

-- 
Robert Treat
Build A Brighter LAMP :: Linux Apache {middleware} PostgreSQL


Re: Terms and Definitions for Database Replication

От
Markus Schiltknecht
Дата:
Hi,

Robert Treat wrote:
> Example may have been the wrong word. That paragraph explains what single 
> master is explicitly, but never explains what multiple master is explicitly 
> (ie. more than one node accepting writes, and then using 2PC or conflict 
> resultion to push changes around).  So maybe just provide a more explicit 
> definition of MM.

I've changed that and added paragraph about multi-master replication 
explicitly. Additionally, I'm now mentioning the alternative terms 
master-slave as well as primary and secondary.

A paragraph about failover and standby has been added. And the eager vs 
lazy text has been made clearer (hopefully).

Other additions: shared-disk vs shared-nothing, vertical and horizontal 
partitioning and a rant about 'grids'.

Thank you for your inputs.

Regards

Markus