А не научить ли SQLObject работе с Master/Slave?

6 views
Skip to first unread message

Denis Daniluk

unread,
Jun 22, 2011, 10:42:34 AM6/22/11
to wp-pa...@googlegroups.com
Макс, помнишь мы затрагивали тему по поводу сабжа. Что насчет реализации? Вопрос бы не задавал, если бы мне не горело подобное.

Как представляю это я:
  1. Указывается хост Master DB;
  2. Указывается хост Slave DB (с учетом того, что слейвов может быть от 1 до N);
  3. Когда получаем объект - пытаемся забрать его со слейва (имеется возможность указать конкретный слейв), если фейл - забираем с мастера.

Maxim Miroshnichenko

unread,
Jun 22, 2011, 11:23:25 AM6/22/11
to wp-pa...@googlegroups.com
Вообще-то, система несколько более сложная, и я считаю, что определять master-slave это не задача SQLObject'a.
Хотя от него можно унаследоваться, и сделать SQLObjectMS (Master Slave :)).

Нюанс в том, что SQLObject работает не с базой, а соединением (ConnectionManager::Get()->getConnectionMySQL()).
Но самому SQLObject'у разработчик даже в процессе работы может поменять соединение (ConnectionManager позволяет держать хоть 100500 соединений с разными базами). Поменять соединение можно через SQLObjectConfig::Get()->setConnection()...

Теоретически можно хоть сейчас сделать SQLObjectMasterSlave, но лучше чуть чуть повременить, когда SQLObject2 пройдет фазу рефакоринга и на выходе будет просто стабильный версионный SQLObject, для которого уже можно будет писать хуки/плагины/eventы и т.п. Новый SQLObject будет ориентировочно 15 июля, но не факт что успею.
--
With best regards,
Maxim Miroshnichenko,
WebProduction, co-founder & technical director

http://webproduction.com.ua/
m...@webproduction.com.ua

Office:
off...@webproduction.com.ua
+38 (050) 447-95-30
+38 (0462) 61-42-61

Reply all
Reply to author
Forward
0 new messages