Re: Multimaster - Mailing list pgsql-general
From | Moreno Andreo |
---|---|
Subject | Re: Multimaster |
Date | |
Msg-id | 570F5EDF.3080604@evolu-s.it Whole thread Raw |
In response to | Re: Multimaster (Craig Ringer <craig@2ndquadrant.com>) |
Responses |
Re: Multimaster
|
List | pgsql-general |
<div class="moz-cite-prefix">Il 14/04/2016 07:45, Craig Ringer ha scritto:<br /></div><blockquote cite="mid:CAMsr+YHA-ijT0Cq1UTy=YNXyEf7WcfzHAXQXxdOCqwu4M=uD+g@mail.gmail.com"type="cite"><div dir="ltr"><div class="gmail_extra"><divclass="gmail_quote">On 2 April 2016 at 02:15, Moreno Andreo <span dir="ltr"><<a href="mailto:moreno.andreo@evolu-s.it"moz-do-not-send="true" target="_blank">moreno.andreo@evolu-s.it</a>></span> wrote:<br/><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Actually we have to improve what our replicator is doing: it's only replicating the single user'sdatabase. The improvement should that we can put it on the "server" (in some cases there are groups of users sharinga dedicated server) and, given a configuration of what and how to replicate, it should replicate more than one DBa time.<br /></blockquote><div><br /></div><div>That's a layer on top as far as pglogical is concerned. It's only interestedin a single database at a time.</div><div><br /></div><div>The same is true of BDR.</div></div></div></div></blockquote>I'll try to explain.<br /> We have a "cloud server" which contains all users DBsand to which all users connect to get replication and.<br /> Some users have more than one work site, i.e. in one they'realone (and the PostgreSQL server is on their own work PC) and in another they're teamed up and they have a dedicatedserver (and everyone can write on teammates' databases).<br /> In the first case it's easy: the only database isreplicated with the corresponding one on the cloud server. Straightforward.<br /> At the current state, in the team case,replication occurs only when the user connects to application, so if there's a user going to a particular site say,only once a week, in the remaining days all data input by team mates won't be replicated, and the user won't be awareon what's been done until he replicates again...<br /> So we are trying to have a process, running on the server, thatchecks for any database to be replicated and performs the action on all of these.<br /><br /> Case 1<br /> Local Remote<br /> [User1:DB1] --> [DB1]<br /><br /> Case 2<br /> [User1:DB1] --> [DB1]<br/> [User2:DB2] --> [DB2]<br /> ...<br /> [UserN:DBn] --> [DBn]<br /><br /><blockquote cite="mid:CAMsr+YHA-ijT0Cq1UTy=YNXyEf7WcfzHAXQXxdOCqwu4M=uD+g@mail.gmail.com"type="cite"><div dir="ltr"><div class="gmail_extra"><divclass="gmail_quote"><div><br /></div><div>A tool that automatically configures newly found databasesto be replicated should be pretty trivial to write, though.</div></div></div></div></blockquote> All databases thathave to be replicated have a flag in the app configuration, and the replication config is set up, for each database andeach site, when the first synchronization is made, so we could spawn a process per database and replicate.<br /> Not tomention we should be able, if necessary, to exclude one or more tables from the replication.<br /><blockquote cite="mid:CAMsr+YHA-ijT0Cq1UTy=YNXyEf7WcfzHAXQXxdOCqwu4M=uD+g@mail.gmail.com"type="cite"><div dir="ltr"><div class="gmail_extra"><divclass="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px#ccc solid;padding-left:1ex"> We were beginning to "translate" (and then improve) this program in c#,when I bumped into articles pointing to BDR, and I started taking a look. But it seems that is good to replicahe wholeservers, and still hasn't the granularity we need.</blockquote><div><br /></div><div>Huh?</div><div><br /></div><div>BDRis configured database-by-database. The only exception is with bdr_init_copy, for initial setup using binarybase backups; in that case all databases are copied.</div></div></div></div></blockquote> Hmmm... it seems I misunderstoodsomething......<br /><blockquote cite="mid:CAMsr+YHA-ijT0Cq1UTy=YNXyEf7WcfzHAXQXxdOCqwu4M=uD+g@mail.gmail.com"type="cite"><div dir="ltr"><div class="gmail_extra"><divclass="gmail_quote"><div><br /></div><div>It sounds like you actually *want* to replicate all databasesat once. Presumably the reason you're not just using physical streaming replication for that is that differenthosts have a different set of writeable databases? E.g.</div><div><br /></div><div>[Node A] [Node B]</div><div>[DB-1] -> [DB-1]</div><div>[DB-2] -> [DB-2]</div><div>[DB-3] <- [DB-3]</div><div>[DB-4] <- [DB-4]</div><div><br /></div><div>so each DB is written from only one node at a time, but both nodes have writeableDBs. Right?</div></div></div></div></blockquote> Yes, I tried to explain this in the first part of the message.<br/><br /> Thanks<br /> Moreno<br /><blockquote cite="mid:CAMsr+YHA-ijT0Cq1UTy=YNXyEf7WcfzHAXQXxdOCqwu4M=uD+g@mail.gmail.com"type="cite"><div dir="ltr"><div class="gmail_extra"><brclear="all" /><div><br /></div> -- <br /><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"> CraigRinger <a href="http://www.2ndQuadrant.com/" moz-do-not-send="true" target="_blank"><aclass="moz-txt-link-freetext" href="http://www.2ndQuadrant.com/">http://www.2ndQuadrant.com/</a></a><br/> PostgreSQL Development, 24x7 Support, Training& Services<br /></div></div></div></div></div></div></blockquote><br />
pgsql-general by date: