Новости | Документация | Download | Webboard | FAQ | Поиск | Контакты

Apache.RU - Webboard



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



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

Уффф...вот.... :)


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

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

 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
15857




  Copyright Apache.ru © 1999-2017, All Rights Reserved Разработка сайта: Inside.ru  
  РЕКЛАМА НА САЙТЕ: |