Login | Register
My pages Projects Community openCollabNet

Discussions > dev > Re: [propel-dev] r/w splitting in master-slave db replication environment

propel
Discussion topic

Back to topic list

Re: [propel-dev] r/w splitting in master-slave db replication environment

Reply

Author hlellelid
Full name Hans Lellelid
Date 2007-12-02 17:22:35 PST
Message Hi Christian,

Yes :)

Am I right in assuming that this will work fine without a master/slave
setup? (i.e. in traditional, single-db model?)

I didn't drop these in to do a diff, but the PropelPDO looked fairly
similar; Propel class too?

I'd like to get this added in, though. I think it would be a great benefit.

Would you be willing to contribute some documentation on getting this
setup? -- e.g. in 1.3 user guide?

Thanks,
Hans


Christian Abegg wrote:
> hi there
>
> here's a refinend implementation of r/w splitting:
> http://www.nabble.co​m/file/p14116000/rwS​plitting.zip rwSplitting.zip
>
> anyone interested?
>
> regards
> christian
>
>
>
> Christian Abegg wrote:
>> hi cameron, dear devs
>>
>> thank you for your reply. i made a first try to implement it the way you
>> proposed:
>> - the propel class initializes a PropelPDO object which acts as db
>> connection to the master server
>> - the PropelPDO object also holds an array of other PDO connections used
>> for read only queries
>>
>> pro: realtively simple to implement, building up on the existing code
>> contra: PropelPDO extending PDO is no more used as a singe db connection
>>
>> have a look at the two patches attached. they are a very first draft
>> showing the way I would choose.
>> http://www.nabble.co​m/file/p13820966/Pro​pel.diff Propel.diff
>> http://www.nabble.co​m/file/p13820966/Pro​pelPDO.diff PropelPDO.diff
>>
>> please let me know if you'd appreciate any further work on that matter and
>> if there are architectural changes/constraints to be considered.
>>
>> cheers
>> christian
>>
>>
>> Cameron Brunner wrote:
>>> There is no reason this cant be done purely by slotting in a new
>>> PropelPDO layer with intelligence on what to send the query to IMO. I
>>> have thought this out before and it shouldn't be too painful depending
>>> upon just how smart you want it.
>>>
>>> On 11/3/07, Christian Abegg <abegg dot ch at gmail dot com> wrote:
>>>> hi
>>>>
>>>> i'd like to use my propel app in an environment where the db-master is
>>>> replicated to one or more slave databases. the master gets the writing
>>>> statements, the slave gets the reading statements.
>>>>
>>>> in my opinion, the propel layer would be appropriate implement that
>>>> function.
>>>>
>>>> as far as i see, there is no such feature in propel.
>>>>
>>>> after a short look into the generated base-classes, it seems like a
>>>> quite an easy task to implement a read-write splitting. assuming that
>>>> all reading queries call the "doSelectStmt" function, i'd introduce the
>>>> DATABASE_NAME_READ-constant which points to the configuration of the
>>>> slave-db.
>>>>
>>>> for load balancing between multiple slave-db's i'd use the mysql-proxy.
>>>> but a simple round robin mechanism could be implemented in propel as
>>>> well.
>>>>
>>>> i'm not sure wheter this approach could solve my problem. a big question
>>>> is: are the connection objects cached by propel? or is the $con-variable
>>>> always null if the user doesn't give a connection on the application
>>>> layer?
>>>>
>>>> if that enhancement is considered usefull and could be implemented
>>>> within reasonable time, i'd be glad to help.
>>>>
>>>> christian abegg
>>>>
>>>>
>>>> ps: my attempts to add an enhancement ticket failed beacaus they were
>>>> rejected as spam by trac.
>>>>
>>>> --------------------​--------------------​--------------------​---------
>>>> To unsubscribe, e-mail: dev-unsubscribe@prop​el.tigris.org
>>>> For additional commands, e-mail: dev-help at propel dot tigris dot org
>>>>
>>>>
>>>
>>> --
>>> Cameron Brunner
>>>
>>> Want a better web browser?
>>> http://www.spreadfir​efox.com/?q=affiliat​es&id=182780​&t=1
>>>
>>> --------------------​--------------------​--------------------​---------
>>> To unsubscribe, e-mail: dev-unsubscribe@prop​el.tigris.org
>>> For additional commands, e-mail: dev-help at propel dot tigris dot org
>>>
>>>
>>>
>>
>

« Previous message in topic | 5 of 25 | Next message in topic »

Messages

Show all messages in topic

r/w splitting in master-slave db replication environment Christian Abegg <abegg dot ch at gmail dot com> Christian Abegg <abegg dot ch at gmail dot com> 2007-11-02 13:09:28 PDT
     Re: [propel-dev] r/w splitting in master-slave db replication environment Cameron Brunner <cameron dot brunner at gmail dot com> Cameron Brunner <cameron dot brunner at gmail dot com> 2007-11-02 17:23:10 PDT
         Re: [propel-dev] r/w splitting in master-slave db replication environment Christian Abegg <abegg dot ch at gmail dot com> Christian Abegg <abegg dot ch at gmail dot com> 2007-11-18 08:59:06 PST
             Re: [propel-dev] r/w splitting in master-slave db replication environment Christian Abegg <abegg dot ch at gmail dot com> Christian Abegg <abegg dot ch at gmail dot com> 2007-12-02 06:26:12 PST
                 Re: [propel-dev] r/w splitting in master-slave db replication environment hlellelid Hans Lellelid 2007-12-02 17:22:35 PST
                     Re: [propel-dev] r/w splitting in master-slave db replication environment Christian Abegg <abegg dot ch at gmail dot com> Christian Abegg <abegg dot ch at gmail dot com> 2007-12-02 23:29:59 PST
                         Re: [propel-dev] r/w splitting in master-slave db replication environment hlellelid Hans Lellelid 2007-12-03 03:54:52 PST
                         Re: Re: [propel-dev] r/w splitting in master-slave db replication environment Moritz Mertinkat <moritz at mertinkat dot net> Moritz Mertinkat <moritz at mertinkat dot net> 2007-12-04 06:48:31 PST
                             Re: Re: [propel-dev] r/w splitting in master-slave db replication environment Pedram Nimreezi <zenstyle at gmail dot com> Pedram Nimreezi <zenstyle at gmail dot com> 2007-12-04 07:40:31 PST
                             Re: [propel-dev] r/w splitting in master-slave db replication environment Shane Langley <shane dot langley at gmail dot com> Shane Langley <shane dot langley at gmail dot com> 2007-12-04 11:40:14 PST
                                 Re: [propel-dev] r/w splitting in master-slave db replication environment Moritz Mertinkat <moritz at mertinkat dot net> Moritz Mertinkat <moritz at mertinkat dot net> 2007-12-04 12:11:38 PST
                                     Re: [propel-dev] r/w splitting in master-slave db replication environment Shane Langley <shane dot langley at gmail dot com> Shane Langley <shane dot langley at gmail dot com> 2007-12-04 12:48:15 PST
                                         Re: [propel-dev] r/w splitting in master-slave db replication environment hlellelid Hans Lellelid 2007-12-04 13:22:07 PST
                                             Re: [propel-dev] r/w splitting in master-slave db replication environment Christian Abegg <abegg dot ch at gmail dot com> Christian Abegg <abegg dot ch at gmail dot com> 2007-12-10 13:50:26 PST
                                         Re: [propel-dev] r/w splitting in master-slave db replication environment Moritz Mertinkat <moritz at mertinkat dot net> Moritz Mertinkat <moritz at mertinkat dot net> 2007-12-04 13:24:16 PST
                                             Re: [propel-dev] r/w splitting in master-slave db replication environment hlellelid Hans Lellelid 2008-01-04 05:57:21 PST
                                                 Re: [propel-dev] r/w splitting in master-slave db replication environment Christian Abegg <abegg dot ch at gmail dot com> Christian Abegg <abegg dot ch at gmail dot com> 2008-01-06 00:45:46 PST
                                                     Re: [propel-dev] r/w splitting in master-slave db replication environment hlellelid Hans Lellelid 2008-01-06 06:31:58 PST
                                                 Re: [propel-dev] r/w splitting in master-slave db replication environment =?ISO-8859-1?Q?David_Z=FClke?= <dz at bitxtender dot com> =?ISO-8859-1?Q?David_Z=FClke?= <dz at bitxtender dot com> 2008-01-07 06:46:19 PST
                                                     Re: [propel-dev] r/w splitting in master-slave db replication environment hlellelid Hans Lellelid 2008-01-07 06:47:37 PST
                                                         Re: [propel-dev] r/w splitting in master-slave db replication environment =?ISO-8859-1?Q?David_Z=FClke?= <dz at bitxtender dot com> =?ISO-8859-1?Q?David_Z=FClke?= <dz at bitxtender dot com> 2008-01-07 07:56:22 PST
                                                             Re: [propel-dev] r/w splitting in master-slave db replication environment hlellelid Hans Lellelid 2008-01-07 07:56:27 PST
                                                                 Re: [propel-dev] r/w splitting in master-slave db replication environment =?ISO-8859-1?Q?David_Z=FClke?= <dz at bitxtender dot com> =?ISO-8859-1?Q?David_Z=FClke?= <dz at bitxtender dot com> 2008-01-07 08:02:14 PST
                                                                     Re: [propel-dev] r/w splitting in master-slave db replication environment hlellelid Hans Lellelid 2008-01-07 08:06:02 PST
                                                                         Re: [propel-dev] r/w splitting in master-slave db replication environment =?ISO-8859-1?Q?David_Z=FClke?= <dz at bitxtender dot com> =?ISO-8859-1?Q?David_Z=FClke?= <dz at bitxtender dot com> 2008-01-07 08:32:56 PST
Messages per page: