we're also assuming that you've exhausted these approaches (which  
would be a lot more appropriate for this sort of thing):

http://forge.mysql.com/wiki/MySQL_Proxy
http://dev.mysql.com/doc/refman/5.0/en/replication.html




On Jun 9, 2008, at 2:22 PM, qhfgva wrote:

>
>
>
> On Jun 6, 12:34 pm, Michael Bayer <[EMAIL PROTECTED]> wrote:
>> On Jun 6, 2008, at 2:29 PM, qhfgva wrote:
>>
>>
>>
>>
>>
>>> We have (what I think of as) a moderately complicated database
>>> configuration and I'm hoping there will be a way to configure
>>> sqlalchemy to deal with it.  The basic scenario is like this:
>>
>>> There are N mysql servers in different geographical regions that are
>>> all replicating against one master.  In the interest of speed the  
>>> rule
>>> in each location is to do reads which are very frequent against the
>>> local copy of the database and if there is a write to do that  
>>> against
>>> the master.  As an added wrinkle the user has an option to write to
>>> the master with a master_pos_wait so that the current process will
>>> wait until replication has caught up with the update just executed.
>>> Hopefully that makes sense and gives enough of a flavor of what I've
>>> got in mind.
>>
>>> I'm pretty new to sqlalchemy.  Is the above feasible?  If so are  
>>> there
>>> examples to compare with and learn from doing something similar?
>>> Where (api/code) would I start looking to accomplish the above?
>>
>>> Any tips to get me going would be much appreciated.
>>
>> easiest approach is to use multiple sessions, multiple engines.    
>> Your
>> app would need to know which engine it wants to talk to, and binds a
>> session to that engine.  Binding is described here:  
>> http://www.sqlalchemy.org/docs/04/session.html#unitofwork_getting_bin 
>> ...
>
> Thanks I'll take a look.  I left out what I think is an important part
> of this scenario (or maybe it's trivial - I don't have a good
> perspective on this yet).  In any case,  I would like to use the ORM
> component of sqlalchemy and completely hide the fact that the read/
> write connections are possibly different.   (They might become the
> same connection if the local database becomes unaccessible and/or is
> too far behind the master).
>
> In other words I'd like to have a handle to, say, a user object, and
> do reads/updates to it with the programmer using this object not
> caring about how the work gets done.   So for instance I select a
> number of user objects that come from the local database.  Later I
> update a field on one of these and the update takes place on the
> master directly.
>
> Is that weird?  Doable?  Unfortunately this is the environment I need
> to get this working with.
>
> As a side note, we manage this difference by hand now, it's really
> annoying which is why I'd love to abstract it away.
>
> thanks.
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to