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

Apache.RU - Webboard



Вернуться
Распределенные базы и MySQL (Vita) 27/06 - 22:14:07
      Re: Распределенные базы и MySQL (Dinky) 28/06 - 21:06:12
      Re: Распределенные базы и MySQL (Vita) 28/06 - 22:25:03
      Re: Распределенные базы и MySQL (Dinky) 28/06 - 22:38:54
      Re: Распределенные базы и MySQL (Vita) 30/06 - 18:47:52

> Original message text:
> From: > Vita - 27/06 - 22:14:07
> Subject:Распределенные базы и MySQL
> -----------------
> Вопрос к знатокам:.... :)
> Есть ли в MySQL встроенная поддержка распределеных баз данных или все-таки нет?
> Встал вопрос о выборе СУБД для структуры из многих отдельных и достаточно удаленных :) баз с постоянной (VPN) и без постоянной связи, но требующих где частичной, а где полной синхронизации.
> Или, если остановимся в выборе на MySQL, придется синхронизацию делать ручками, что не есть good...
>


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

Уффф...вот...

p.s. Если кто что поймет, что я тут написал, то я буду несказанно рад...



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

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

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




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