Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Распределенные базы и MySQL (Vita) 30/06/2004 - 18:53:17
      Re: Распределенные базы и MySQL (Dinky) 30/06/2004 - 23:45:10
      Re: поправочка (Dinky) 04/07/2004 - 07:40:25
      Re: re: поправочка (Vita) 04/07/2004 - 15:05:09
      Re: re: поправочка (Dinky) 05/07/2004 - 02:39:43

> Original message text:
> From: Vita - 30/06/2004 - 18:53:17
> Subject:Распределенные базы и MySQL
> -----------------
> Так вот задача: (или такая вот незадача...:)
> Есть некая определенная структура данных (таблицы, поля, перв.ключи, форматы). Есть отдельные самостоятельные хранилища самих данных, полностью удовлетворяющих общей структуре (разумеется, с уникальным префиксом для перв.ключей или выделенным диапазоном для создания новых перв.ключей), но содержащие только определенную часть этих данных. Причем любые конкретные данные (целые таблицы, отдельные строки, даже отдельные столбцы, с перв.ключом, конечно) могут где-то быть, где-то и не быть, где-то дублироваться, где-то нет. Новые и/или измененные данные из любого хранилища должны по определенным условиям получить зону своего распространения и распростаниться при появлении связи или ручной выгрузке. Центральной базы быть не должно, хотя, возможно, понадобится центральное хранилище, где будут абсолютно все данные, для восстановления данных и/или упрощения схемы взаимосвязи отдельных хранилищ. Удаление неких данных из одного хранилища в зависимости от определенных условий и прав должно повлечь или удаление этих данных из всех остальных хранилищ, или же только исключить себя из зоны распространия этих данных и уведомить об этом остальные хранилища. Возможные конфликты одновременного изменения одних и тех же данных в разных хранилищах вполне решаемы грамотной продумкой прав или же применением временной метки или установкой приоритета.
> Транзакции могут быть только локальные в каждом отдельном хранилище. Никаких распределенных транзакций и прочих там блокировок удаленных баз использоваться не должно в связи с возможной нестабильностью прямой (инет) связи или вообще при остсутствии оной (ручная выгрузка).
> Вобщем, синхронизация соответствующих данных должна происходить не способом ведения лога запросов с последующим выполнением этих запросов в другом хранилище, а на уровне самих данных. Т.е. что-то изменилось или появилось, значит именно это изменение и надо выгружать. Объясню, почему: в каждом хранилище может происходить большое количество запросов с изменением одних и тех же данных, а синхронизировать данные с другими хранилищами надо только по последнему состоянию этих данных, а не выполнять повторно все эти же запросы, чтобы получить в результате конечные данные. А самое интересное, что эти запросы, похоже, и не удасться повторить на других хранилищах, где в структуре используется иная часть общей структуры данных.
>
> Уффф...вот.... :)
>


From: Dinky - 05/07/2004 - 02:39:43
Subject:re: поправочка
-----------------
> но, имхо, не с того конца за задачу взялись...
>Да уж, грамотная постановка задачи - пол-дела, а с какого
> конца тогда следовало бы взяться (ухватиться)?... :)
с унификации структур данных, имхо :)
а то получается, что создаем сами себе трудности, а потом мужественно их преодолеваем ;)

>Ну, лог удалений можно и организовать, хотя, думаю, правильнее
>было бы (в моей задаче) организовать отдельную таблицу
>удаленных (удаляемых) записей и чистить ее по мере получения
>необходимых подтверждений из соответствующих баз
Угу, можно отдельную базу даже завести и там все таблицы-логи вести, а потом дампы сбрасывать и обмениваться ими, после чего запускать скрипты, которые внесут изменения локально... столько дополнительной нагрузки на сервера, а вы сами сказали, что работать им предстоит напряженно...
но мы легких путей не ищем? :)

> разумеется, с уникальным префиксом для перв.ключей или
> выделенным диапазоном для создания новых перв.ключей
а вы, кстати, в курсе, что автоинкремент может работать в паре с другим полем? смотреть второй пример:
http://dev.mysql.com/doc/mysql/ru/example-AUTO_INCREMENT.html
первым полем может быть например server_id ;)

--
Dmitry



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
15857



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |