Обсуждение: Terms and Definitions for Database Replication
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
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
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
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
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