Login | Register
My pages Projects Community openCollabNet

propel
Reply to message

* = Required fields
* Subject
* Body
Attachments
Send reply to
Topic
Author (directly in email)
Please type the letters in the image above.

Original message

Author Christian Abegg <abegg.ch@gmail.com>
Full name Christian Abegg <abegg.ch@gmail.com>
Date 2007-11-02 13:09:28 PDT
Message 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.