Shawn Green wrote:
I understand now.
You have 3 slave server processes replicating independently from their
own separate master servers. You have a fourth MySQL server process
that shares the same data files as your 3 slaves but it does not know
when replication occurs and when it hasn't (for MANY reasons) so it
doesn't see the updated information.
First rule: Do NOT share data files between server processes. Nothing
should directly interact with a datafile other than the server to which
it belongs. This includes other server processes as well as direct user
actions or actions from a third-party program.
There are structures and procedures that each MySQL process maintains
that assumes that each process has exclusive control over every data
file it is managing. Sharing files between two processes is highly
discouraged.
However, if you are using 5.0 or newer, you can FEDERATE the files from
Servers 2-4 to Server 1. That way #1 never needs to directly read from
those files and you will avoid the myriad of problems that your setup
can create. Your data will always be up-to-date and you won't have to
worry about file caching, table caching, index caching, file locking,
read/write contentions or any of those other problems.
Please try shifting your table definitions on Server1 from direct-read
to FEDERATED.
Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine
I know it was out of standard, just trying to find other methods than
scheduling ...
but your idea about FEDERATED tables sound interesting .. i've only read
a little about it, but i think it should do the tricks...
one problem though, i can not switch to 5 easily
since there are many joins in the client side that would broke (mix of
LEFT JOIN and ',' operator)
and it would take much effort to replace the codes (although it was on
the road map of the application)
thanks for your help Shawn :)
best regards
-
Leo
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]