
lou at 0xffff
Mar 30, 2003, 12:15 PM
Post #1 of 1
(385 views)
Permalink
|
Aaron Stone writes: > An interesting front end is SQL Relay, http://firstworks.com/ > > My thinking on the database redundancy issue is a compromise with the > full-failover and the write-master+read-slaves ideas; There's a main > server with read/write (the master) and a slave with read only. Geesh why everyone want to stop one of the servers from operating in normal mode to a read-only mode. I personally cant accept the fact however, i`m working further on this issue, for now i have a simple algorithm which solves the issue with the unique ids, negotiates the backend grouping and makes it more generic in its structure, since obviously this can't be done on the db layer thanks to the primitive[1] replication in mysql which doesnt do any merging(not any of i`m aware of) and is quite scared when it meets few ids with the same values that it makes it stop the whole replication process, which IMHO is absolutely unacceptable. The problems in PgSQL are a bit different since it doesnt have native replication ready for productional use, but it`s in development, and it`s doing quite well according to my research. Now we have an issue which is obviously called 'data sharing' since there is _a_ difference between clustering db servers and having a backup in any way or redundancy (that was the idea from the begining). If we`re doing clustering the issue is not only one but it will create more sub-issues on its layer. The term redundacy is quite different, the simplest one is 'if server1 is down server2 will take over and continue the operations without a downtime', and personally that`s quite enuf for me, since there wont be any downtime. But if we add more servers we need more sofisticated and complex approach than the first one, we need consistency, the consistency itself is so vast in terms of communication and data share[2], since we`re aware of what might and might not happen, but assuming that something is, is not the right way of creating something generic and therefor portable, because simply the false postivives on the network are growing, more members, more participants..etc. What i want to say, is something that`ve already said - It`s a dbmail's problem, because we cannot force the db devels to get to the place where we want, and since that wont be in the nearest months or whatever bit of time, i prefer solving the problem on dbmail layer. > The primary and secondary MX idea is a very good one, and when the > primary > goes down, the secondary will receive the mail but not be allowed to > insert it. > Incoming messages will queue up between postfix and dbmail > (must be tuned not to attempt immediate retries, though) and once the > master is alive, will be delivered. In the mean time, everyone can still > read their mail from the slave (but no flagging, deleting or moving). That was my idea in the begining but i want both of my databases to be able to share and therefor modify the data whenever they want in way that wont cause any collisions. However we are in power to minimize the possibility of any collisions and i suppose that`s the first thing we should do before everything failes. Somehow I personally dont accept downtime vs wrongly inserted message[2]. I`m happy with Jose`s example about the whole stuff, but he`s taking it too far in the future, because that is the first step we take on this road, and that`s not the last, since it will evolve in something more sofisticated in aspect of consistency, redundancy and in general distributed systems, grids, blahblah. [1] primitive in terms of no grouping. no failover. no decent multimaster replication nor any advanced data merging abilities. [2] client1 gets client2 message, obviously there is a workaround since we can control how the message is inserted and where is inserted.. that`s not an issue in my design though, nor the random subscribers we might get in Jose`s example. I`ll continue to work on it, if anyone in any way is interested, ask. cheers, -lou > > > On Thu, 27 Mar 2003, Roel Rozendaal - IC&S wrote: > >> Hi lou, >> >> The problem here is that the database consistency is not guaranteed - >> the databases are not synchronized so behaviour seems pretty undefined >> when for example the imap daemon connects to another database in the >> mid of a session. The unique-id's and message_idnr's are no longer >> unique nor will the message_idnr guarantee the correct order of >> delivery; some messages/folders will suddenly be no longer available >> when a system fails and some others again will no longer be available >> as the first system is up again. >> >> We are still looking for some good replication funcionality but it >> seems that the logics for such failover system should be a database >> issue and not a dbmail one - the ultimate system would allow dbmail to >> connect to some front-end (preferrably local so network failure is >> shielded from dbmail) SQL interface which would implement all the >> failover functionality we desire: different groups of replicating >> clusters spread out over the world :) >> >> regards roel >> >> >> lou heeft op woensdag, 26 maa 2003 om 20:57 (Europe/Amsterdam) het >> volgende geschreven: >> >> > Ello group{s}, >> > >> > some time ago i mentioned something about having a fallback database in >> > case the first one doesnt respond. I found it really usefull in the >> > following scenario. >> > I have domain.com and two MX records for it mx1.domain.com(5) and >> > mx2.domain.com(10), >> > and i`m using dbmail, let say the db on mx1 is gone, what happens, mx2 >> > wont help me, but >> > with this patch if dbmail service on mx1 cant connect to it`s primary >> > db it`ll to the >> > secondary at mx2, where db1 and db2 are quite aware with it`s data in >> > sense of >> > replication. >> > >> > kinda >> > if(conn1 == fails){ tellus; conn2; if(conn2 == fails) { tellus; return >> > _err; } } >> > of course with each connect N it`ll try to connect to db1 before >> > falling back to db2; >> > >> > ligthly tested with pgsql/mysql agains dbmail-1.1(from >> > http://www.dbmai.org), it`s quite >> > simple, though i cant say how it`ll work on your mailservers. >> > >> > >> > let me know if i did something wrong. sometime (when i find it) i`ll >> > try to change the >> > stuff to use more than 2 dbs and not to be so static. Hope Eelco, Roel >> > would be keen on >> > impl something like this permanently? >> > (patch attached) >> > >> > >> > cheers >> > -lou >> > >> > -- >> > >> > Lou Kamenov AEYE R&D lou.kamenov [at] aeye >> > FreeBSD BGUG http://www.freebsd-bg.org lou [at] FreeBSD-bg >> > Secureroot UK http://secureroot.org.uk phayze [at] secureroot >> > Key Fingerprint - 936F F64A AD50 2D27 07E7 6629 F493 95AE A297 084A >> > One advantage of talking to yourself is that you know at least >> > somebody's listening. - Franklin P. Jones >> > <dbmail-fallback.patch.gz> >> >> _________________________ >> R.A. Rozendaal >> ICT Manager >> IC&S >> T: +31 30 2322878 >> F: +31 30 2322305 >> www.ic-s.nl >> >> _______________________________________________ >> Dbmail-dev mailing list >> Dbmail-dev [at] dbmail >> http://twister.fastxs.net/mailman/listinfo/dbmail-dev >> > > _______________________________________________ > Dbmail-dev mailing list > Dbmail-dev [at] dbmail > http://twister.fastxs.net/mailman/listinfo/dbmail-dev
|