
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
21.02.2013, 14:32
|
|||
|---|---|---|---|
|
|||
Синхронизация блоков данных |
|||
|
#18+
Есть N процессов, запущенных на разных серверах. Необходимо соорудить что-то вроде шаред мемори между этими процессами. Все процессы могут читать/писать в общую память. Есть вариант сделать у каждого процесса свою локальную копию, но встает вопрос синхронизации этих всех блоков. Подскажите где почитать про подобные алгоритмы синхронизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.02.2013, 22:00
|
|||
|---|---|---|---|
Синхронизация блоков данных |
|||
|
#18+
PeterXa, просто сервер БД не подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.02.2013, 22:11
|
|||
|---|---|---|---|
Синхронизация блоков данных |
|||
|
#18+
PeterXa, без специального сетевого оборудования и протокола у тебя 99% времени будет занимать таймаут ожидания сетевых событий синхронизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.02.2013, 01:19
|
|||
|---|---|---|---|
Синхронизация блоков данных |
|||
|
#18+
PeterXa, Целяком и полностью согласен с mayton . Что касается самого механизма, то он ИМХО должен выглядеть приблизительно следующим образом: 1. У каждой сущьности в один момент времени должна быть одна мастер нода, производящая изменения. 2. Мастер нода должна передавать вектор изменений всем подчиненным нодам. 3. Изменяющая нода должна запрашивать у мастер ноды разделяемую брокировку ресурса. 4. Вместе с блокировкой можно отправить запрос на изменение, и как результат получить в ответ вектор изменений. 5. Менеджмент очереди разделяемых блокировок и очередности изменений должен производиться мастер нодой. 6. По некому алгоритму любая нода может забрать на себя мастер роль над сущьностю, в зависимости от состояния очереди блокировок. 7. Каждая нода может держать у себя историю всех изменений, для поддержки конситентности. 8. Для этого все ноды должны иметь один общий-глобальный счетчик-идентификатор изменения для всех сущьностей ( типа SCN). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.02.2013, 01:39
|
|||
|---|---|---|---|
Синхронизация блоков данных |
|||
|
#18+
Можно мастер ноду передавать по кругу как флажок. Мне кажется это даст некоторые преимущества при случайном отпадении мастер-ноды из сети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.02.2013, 02:37
|
|||
|---|---|---|---|
Синхронизация блоков данных |
|||
|
#18+
mayton, Мастер нодой , должна быть та , котора генерирует наибольшее количество изменений. Обработка ситуации отпадание мастер ноды, отдельный вопрос для выбора умный-красивый( быстрый-надежный) на этапе проектировки архитектуры межнодового взаимодействия. В самом простом случае либо все замернет до истечения кипэлайв таймаутов, либо очень быстро сгенерирует 100500 байт мусорных данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.02.2013, 13:27
|
|||
|---|---|---|---|
Синхронизация блоков данных |
|||
|
#18+
По сути надо реализовать аналог Oracle Cache Fusion. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.02.2013, 13:57
|
|||
|---|---|---|---|
Синхронизация блоков данных |
|||
|
#18+
Можно придумать так. Допустим серверов 4 штуки (N=4). И допустим что shared memory разбита на блоки (addressBlock). Здесь блок будет идентифицироваться не физическим адресом в памяти а неким относительным адресом или индексом чтобы маппинг между серверами был одинаков. Тогда для каждого блока мастером будет сервер Nmaster = mod(addressBlock,4); Трафик будет равномерным. Правда в этом случае при отвале одного сервера (N=3) нужно будет аварийно обнулить владельцев и сделать перерасчёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2013, 05:19
|
|||
|---|---|---|---|
Синхронизация блоков данных |
|||
|
#18+
mayton сделать перерасчёт. Критический ключевой момент архитекруры. Нафик ваще такая распределенная ситема нужна, где при появлении соплей и чихов нужно делат полный рестарт, а тем более перерасчет. ИМХО Если связываться, то нужно делать систему надежной, а производительность оптимизировать или наращивать железом, когда ее нехватает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2013, 08:53
|
|||
|---|---|---|---|
Синхронизация блоков данных |
|||
|
#18+
Уважаемые теоритики, у вас спрашивали что почитатать, а не объяснить принципы. А читать надо статьи про "распределенные вычисления" и про "distributed computing" (второе даже лучше: больше статей и книг). Distributed systems - тоже можно, но там сложнее найти что-то более серьезное чем учебные пособия и куски лекций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=16&tablet=1&tid=1341907]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
166ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 496ms |

| 0 / 0 |
