|
|
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Господа, сугубо теоретический вопрос. Встречается ли задача определения оптимальной частоты репликации в теории баз данных? Если да, то какие существуют методы и что на эту тему стоит прочитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 02:34 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Отптимальная частота репликации отпределяется исходя из требований к конкретной системе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 11:23 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
существуют ли какие-нибудь выкладки для каких-нибудь конкретных систем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 12:09 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
авторсуществуют ли какие-нибудь выкладки для каких-нибудь конкретных систем? Для моей конкретной системы, частота репликации базы по продажам - раз в неделю, базы справочников - раз в сутки. (на данном этапе ее использования). Что вы называете конкретной системой ? она у каждого своя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 12:16 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Baschсуществуют ли какие-нибудь выкладки для каких-нибудь конкретных систем? существуют, конечно! но это слишком конкретные выкладки - Вам будет неинтересно в Вашем конкретном случае ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 12:29 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
ну допустим в моей системе данные не добавляются, а обновляются. И флагов обновления не предусмотрено. Конечно, можно всю базу каждую минуту синхронизировать, но напрашивается идея как-то спрогнозировать оптимальное следующее время синхронизации на основе прошлой статистики изменений данных... вот что-то в этом духе интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 17:45 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
и чтобы это всё в динамике работало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 17:48 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
что обновлять а что добавлять решает сервер. А частота обновления - это пользовательский параметр. Вы с какой частостью заходите на страницу новостей для репликации новостей в голове и новостей в БД WWW? ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 18:37 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Хм. Если говорить об идеальном случае, то оптимальная частота репликации определяется скоростью внесения изменений - каждое изменение должно доехать максимально быстро. Количество проблем при репликации непосредственно зависит от запаздывания репликации (количества изменений, сделанных пока некая запись "в пути"). В реале может вмешаться нелинейная стоимость одного сеанса связи. Скажем, если есть некое значительное количество фиксированной служебной информации, передающейся при каждом сеансе незначительно от количества передаваемых изменений, буферизация изменений приведет к уменьшению траффика и соответственно удешевится. Лично у меня хорошо работала схема "раз в минуту, если есть данные для репликации". Кроме того, был вопрос с большими объемами - например, если выполнен апдейт миллиона строк. На этот случай были лимиты в буферах, в результате например первые десять тысяч изменений обрабатывались, отправлялись и принимались на клиенте, не дожидаясь подготовки к отправке последних записей из этого миллиона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 00:32 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
На мой взгляд, репликации - это зло, с которым надо бороться. При современных скоростях сетевого обмена - репликации - анахронизм. При правильном написании клиента даже 4 кБит/с обеспечивают комфортную работу. Конечно, при такой скорости надо потрудиться программеру, что бы не тупо качать на клиента всю базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 11:44 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
При правильном написании клиента даже 4 кБит/с обеспечивают комфортную работу. Иначе говоря, тысяча пользователей толкаются на широком и дорогом канале ради счастья "не работать всем филиалом" благодаря провайдеру, по техническим причинам положившему канал на четыре часа. Заодно у меня есть смутное ощущение, что "правильное написание клиента" в таком контексте обычно означает "пользователю на самом деле не нужны те фичи, которых мы не можем нормально сделать". Наконец, мне весьма любопытно будет посмотреть на "потрудиться программеру нетупо" при передаче на клиента хотя бы десятимегового блоба. Скажем, прямо сейчас мои коллеги работают над проектом, где основные данные - техническая документация по зданиям (планы и прочее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 12:05 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
softwarer При фиговых каналах репликация болбов будет длится вечно. На кой ляд тянуть то, что может никогда не понадобится? А еще могут электричество отключить. Это гораздо чаще бывает Планы, прочее.. А слабо наваять прогу, в которой эта документация существовала бы не в виде вордовских документов и bmp-картинок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 12:19 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Cat2При фиговых каналах репликация болбов будет длится вечно. На кой ляд тянуть то, что может никогда не понадобится? А кто предлагает тупо тянуть то, что может никогда не понадобиться? Вариантов много, например: - Изменения в блобах редки. Соответственно, после первоначальной раскладки, изменения спокойно тянутся в фоне, никому не мешая. У меня, в частности, была специальная возможность ставить некоторые таблицы на исключительно ночную передачу. - Пересылка по запросу с многократным использованием присланного блоба. Cat2А еще могут электричество отключить. Это гораздо чаще бывает Да не сказал бы, во всяком случае по моей практике. Также в любом случае отметим, что из величин А и А+Б при положительном Б известно, какая больше :) Cat2Планы, прочее.. А слабо наваять прогу, в которой эта документация существовала бы не в виде вордовских документов и bmp-картинок? А слабо не юродствовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 12:28 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
softwarer . >>А слабо не юродствовать? Извините, пожалуйста. На самом деле я давно уже обдумываю прогу по написанию карт технологических процессов. Пока ничего путнего не родил . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 12:36 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
К сожалению, я совершенно некомпетентен в технологических процессах. Употреблять репликацию без необходимости - разумеется, глупость. Имхо - такая же глупость, как и противоположная крайность. Нужно смотреть по требованиям к системе и ее ожидаемому развитию. Скажем, еще один пример - в моем случае телефонные разговоры продавцов с клиентами записывались и складывались в БД. Далее можно было в любой момент воспроизвести его; грубо говоря, диктофон. Имхо полезная фича. Да, безусловно, для уменьшения объема можно было бы посадить машинистку, которая слушала бы линию и быстро-быстро набивала запись беседы. Это вполне позволило бы работать по плохому каналу. Но мне кажется, решение... не совсем технологичное :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 13:40 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
В моей системе без репликации нельзя никак, это аксиома. Вот, например, похожий случай - поисковая система. По сути - та же репликация. Поисковик не может работать в реальном времени из-за болших объемов данных. И для него есть параметр - свежесть индекса. Petro123Вы с какой частостью заходите на страницу новостей для репликации новостей в голове и новостей в БД WWW? Поисковик же как-то решает эту задачу, правильно? Он же использует какие-то механизмы расчета оптимальной репликации веб-страниц или, например, новостей, в свою БД. Он как-то анализирует статистику обновлений и делает предположение по оптимальному графику репликаций. Или все-таки нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 15:59 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Basch . Поисковик - не пример. Если задать в строке поиска "Голые телки", то что-то получится. Я часто сталкиваюсь с тем, что поисковик дает ссылки на несуществующие страницы. Хотелось бы услышать от АГ, как поисковики работают на самом деле. softwarer. >>Скажем, еще один пример - в моем случае телефонные разговоры продавцов с клиентами записывались >>и складывались в БД. Далее можно было в любой момент воспроизвести его; грубо говоря, диктофон. >>Имхо полезная фича. Я уже давно думаю над такой штукой. Есть головной офис. Есть удаленные подразделения. Головному офису пофиг, что болтала телефонистка или сколько бабок заработал токарь Иванов по наряду №37991-а/бис. Головному офису не нужны детали. Я смутно вижу комплекс баз для оптимального решения этих вопросов. Но это, наверное, отдельная тема для обсуждения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 18:03 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Cat2Головному офису не нужны детали. Может быть и так. Вообще говоря, есть довольно естественное желание иметь как минимум одну "полную" базу - со всеми деталями. И как эталон, и для "любой отчетности", и для айтишников-эксплуатационщиков. Если ее делать, естественно делать ее в центре. Начиная с какого-то уровня, оказывается, что такую полную БД делать становится тяжело - объемы данных слишком велики. И тут как раз и начинают думать на тему "нужны ли в центре излишние подробности". Вместо равноправных БД появляется иерархия, два-три уровня БД "разных типов", например центр-область-город. Но в обоих случаях передача данных между БД - одна из форм репликации, имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 18:29 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
softwarer Разумется, не хочется нарушать правило о том что любая информация из базы может быть получена единственным путем. Но именно использование репликаций его и нарушают. На мой взгля, это один из способов денормализации. Что может быть оправдано в реальной работе, но только тогда, когда это резко поднимает производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 19:01 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Cat2Разумется, не хочется нарушать правило о том что любая информация из базы может быть получена единственным путем. Хм. Я не слишком ретиво отношусь к этому правилу. Cat2Но именно использование репликаций его и нарушают. На мой взгля, это один из способов денормализации. Что может быть оправдано в реальной работе, но только тогда, когда это резко поднимает производительность. Я бы не стал рассматривать именно так, но в целом - не возражаю против такой постановки вопроса. Разумеется, если репликация не дает значимых преимуществ, использовать ее не следует (как и любой сложный механизм, не дающий явной выгоды). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 20:19 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Basch Конечно, можно всю базу каждую минуту синхронизировать, Смотря что за репликация. У меня каждые 10 сек распространяются отложенные транзакции с одного сервера на другой. Там все должно быть одинаково с такой периодичночтью, на случай отказа сервака. Это асинхронная репликация. Но бывают вообще синхронные - транзакция либо на всех среврах выполняется, либо нигде. А репликация из филиалов в центральный офис раз в сутки - там требуемая оперативность - три дня. Два дня на выявление и устранение отказов по репликации (админство не строгое системы). Выполнять чаще менее оптимально, ресурсы тратятся, а оно не надо. Реже можно пропустить отказ, а это не допустимо. Поэтому тут говорить о вычислениях опимальности и не приходится, вообще слово оптимальная - лишнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 20:28 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
vadiminfoНо бывают вообще синхронные - транзакция либо на всех среврах выполняется, либо нигде. Вот если честно, смысла именно этой операции я не особо понимаю. Это такое узкое место, что дальше просто некуда, отличный способ остановить работу на всех серверах разом :) Мне для решения этой задачи нравился таки асинхронный метод: посылалась команда вместе с параметрами, которая выполнялась на соответствующем сервере (частно на центральном). Скажем, добавление записи в справочник таким образом гарантировало, что не случится добавление одинаковой по сути записи одновременно на разных серверах с разными ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 22:43 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
softwarer Вот если честно, смысла именно этой операции я не особо понимаю. Это такое узкое место, что дальше просто некуда, отличный способ остановить работу на всех серверах разом :) Представьте банк с филиалами в разных городах. И ловкий парень снимает тем или иным способом деньги одновременно в двух городах. И даже не совсем одновременно - асинхронная репликация может отпасть, а операция на каждом сервере выполнится. Он получил вдвое больше. Пусть даже этот пример не реалистичен, но по аналогии моно придумать ситуации. Синхронная репликация безусловно требует супернадежные сети, поэтому редко используется, наверное. Но она должна быть для полноты возможностей. softwarer Мне для решения этой задачи нравился таки асинхронный метод: посылалась команда вместе с параметрами, которая выполнялась на соответствующем сервере (частно на центральном). Смотря какой задачи. В равноправной репликации нет центральных и перефирийных - все равноправны. Например, нуно чтобы юзера в распределенной сети работали совсем не чувствуя распределенности. А асинхронная может отпасть. Если они не сразу хватятся, то восстановление может быть и кропотливым делом. В синхронной проблемы сразу видны. Везде свои минусы и плюсы. У меня второй сервер - типа резервный, поэтому я в случай отпада репликации просто выравню по первому (точнее админ сам или с моей помощью). Был соблазн сделать чтобы юзера с обоими работали и в случае чего даже не заметили, что один отпал (у нас у заказчиков были случаи разрушения серваков, но юзера через 10 мин уже работали со вторым). Но к сожалению нужно админство продвинутое - иначе восстановление в случае отпадов самой репликации серваками напрягает. Теперь труднее сказать какие данные правильные на каждом из серваков. Вот если репликация Ведущий - Ведомый, и на Ведомом тока читают данные с Ведущего, то другое дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2006, 01:07 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
vadiminfoПредставьте банк с филиалами в разных городах. И ловкий парень снимает тем или иным способом деньги одновременно в двух городах. Не представляю себе. См. описанное ниже: в одном из этих городов или в обоих банк пошлет команду "снять деньги" тому серверу, который реально ведет счет этого парня (например, серверу его родного города). Что мы имеем: 1. "Больше чем есть" никто не снимет. 2. Вместо требований к "все сервера онлайн" появляется всего лишь "операция будет выполнена, как только сервер того города окажется онлайн". Пример как раз вполне реальный - например, в моем случае это называлось "отдача со склада в другом городе". vadiminfoСмотря какой задачи. В равноправной репликации нет центральных и перефирийных - все равноправны. Поэтому я и применил термин "соответствующий сервер". Логика выбора "более равного чем другие в конкретном случае" может быть разной, главное, чтобы она была. Два типовых случая: 1. Некоторые операции выполняются только на "условно главном" сервере. Этот условно главный выбирается достаточно произвольно. 2. Некоторые операции выполняются на сервере, соответствующем географической (обычно) привязке данных. То есть обычно обращение к данным X идет с сервера Y; в редких случаях удаленной операции удаленный сервер пересылает на Y команду модифицировать X. "Команда" - термин достаточно условный. Например, в Вашем примере с расходом банковского счета процесс можно построить так: 1. Выписывается расходный ордер (на любом сервере) 2. При необходимости ордер реплицируется на сервер, ведущий счет клиента. 3. Ордеру проставляется статус "выполнен" либо "отказано" с изменением суммы на счете 4. Изменение реплицируется обратно, клиенту выдаются либо не выдаются деньги. vadiminfoВ синхронной проблемы сразу видны. Безусловно. Вопрос в том, что синхронная репликация выдвигает такие требования к каналам связи, что в этом случае становится более естественным работать на одном сервере/кластере без всякой репликации. Да, конечно, можно построить пример, когда "почти все асинхронно, но одна-две ключевых операции могут идти синхронно". Ничего сверхстрашного в этом не будет. Но если мы работаем с "асинхронными" требованиями к каналам, этот подход грозит невозможностью выполнить операцию при проблемах на линии. С асинхронной же схемой как минимум кассир может сказать клиенту: погуляйте часик, если связь восстановится хоть на минуту, ответ будет. vadiminfoУ меня второй сервер - типа резервный, поэтому я в случай отпада репликации просто выравню по первому А почему не просто стендбай? На глаз вроде разница только в возможности выполнять на втором особо сложные отчеты, но зато накладные расходы... vadiminfoТеперь труднее сказать какие данные правильные на каждом из серваков. Я практически не знаю стандартную оракловую репликацию, но имхо из общих соображений тут проблема будет не в определении правильности данных, а в корректности блокировок, в том числе в описанной Вами ситуации - когда ни на одном из серверов данные на самом деле не правильные. Потому что если рассмотреть названный Вами пример, страшно даже не то, что человек получил лишние деньги. Страшно то, что может быть следующий сюжет: - на счете M1 денег на серверах S1 и S2 - на сервере S1 снимают X1 денег, на S2 отправляется апдейт на M1-X1 денег - на сервере S2 снимают X2 денег, на S1 отправляется апдейт на M1-X2 денег - в итоге на S1 M1-X2 денег. На S2 получается M1-X1 денег. Оба числа расходятся, и ни одно не соответствует реально требуемому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 15:16 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
softwarer . Гм. Ситуация с банками - это уже не репликация, а гетерогенный запрос. Давайте не будем путать распределенные транзакции и репликации. Репликация, это когда в какой-то период времени, по расписанию, массово закачивается информация с разных серверов. Я против нее за исключением тех немногих случаев, когда база используется только как храниилище информации. Картинки там всякие и прочие блобы. Да, я знаю, что термин "гетерогенные" применяется обычно к запросам к движкам разной "породы". Но считаю, что он может быть и применим к движкам, на которые могут быть осушествлены распределенные транзакции. Ведь даже одинаковый движок на разных серверах может быть настроен по-разному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 15:58 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Cat2softwarer . Гм. Ситуация с банками - это уже не репликация, а гетерогенный запрос. Отнюдь. Хотя нечто подобное синхронной репликации можно делать и таким образом. Cat2 Давайте не будем путать распределенные транзакции и репликации. Именно что. Давайте не будем. При репликации - неважно, синхронной или нет - Вы делаете одно изменение, один DML-оператор, и оно распространяется по нескольким серверам. При распределенной транзакции Вы делаете несколько изменений - например, update на каждом из серверов - и согласованно их commit-ите. Давайте не путать. Cat2 Репликация, это когда в какой-то период времени, по расписанию, массово закачивается информация с разных серверов. Чушь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 16:31 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Что-то пропало сообщение, которе писал пол часа. Сгличило на сайте. Тада в кратце. 2 softwarer Суть в том, что репликация сама по себе обеспечивает только копию таблов на сайтах. И потому асинхронная репликация, означает, что на первом данные изменились - деньги сняты, не зависимо от того произойдет это на втором или нет. Поэтому на втором деньги в банке остались. Все остальное это шаги в сторону синхронности. Поэтому я и сказал, что в подобных случаях возможно проще использовать синхронную. Это просто особые случаи, но подороже будут. Равноправная репликация не предполагает "условно главных". Может быть тока с точки зрения управления репликационной средой или разрешения конфликтов в некоторых случаях - када двое полезли в одну запись, то может быть правило в пользу сайта, хотя не обязательно. Может быть по тайм ауту. А по данным они равноценны - вся идея не различать сайты в распределенной среде. Вообще всегда витали идей прозрачности, хотя они и услужняют админство. Выбрал не стэндбай по след причинам: 1) Все-таки остается возможность сделать незаметным отказ сервака. Т.е. сервак падает, а юзра не чувствуют. И даже админы. Однако, именно в последних все дело, почему этого пока не сделал. 2) Стэндбай не работает на запись и полностью БД идентичны. А у нас один из серваков используется для репликации в центральный офис - нет полной идетичности и работают на запись. 3) Не знаю, так ли легко проверять идентичночть данных и их выравнивать в стэндбае как в мультимастер репликации. О проблемах правильности данных в равноправной среде при асинхронной репликации. В Оракле равнопровной соответствует мультимастер репликация (т.е. каждый серсер - мастер, нет более главных и менее главных). Она бывает асинхронной, но может быть и синхронной. В случае асинхронной - отложенные транзакции распространяются с первого на второй и выполняются там как будто их там и создали. При этом аппдэйты и удаления они выполняются только если запись идентична первой, иначе любимое "данные не найдены". Если репликация отпадала и данные не идентичны, то соответственно пойдет рост таких отложенных транзакций. Все они в очереди и в общем то возможность для восстановления есть. Но это требует квалификации от админов. Тем более что по багу может пропасть промежуточная транзакция. Если обнаружили поздно и работали с несколькими серваками, то на всех надо проводить это восстановление. Это может занять часы и не гарантирован упех, если их тысчи. А у наших нас админов у некоторых заказчиков можно сказать что нету, а и где есть, они с репликацией не на короткую ногу. Мне приходится в случае особых отказов по аське писать инструкции SQL. Это и так может занимать часы - хорошо, что это происходит редко - не чаще раза в год. Поэтому и не решаюсь сделать их юзерам полное счатье, ну и нам зачет не плохой. Тем более и часы Х происходят не часто и беспокойств минут на 10. Не так критично. Cat2 Ситуация с банками - это уже не репликация, а гетерогенный запрос. Давайте не будем путать распределенные транзакции и репликации. Репликация, это когда в какой-то период времени, по расписанию, массово закачивается информация с разных серверов. Репликация - генерация и воспроизводство копий на сайтах. Понятия массовости и переодичности и проч, не определяют это понятия. Другое дело что есть виды репликации, реализация которых допускает и массовость и раписание. Но и распределенные и тем более удаленные запросы могут и используются в реализации репликаций. И могут противопоставляться только с оговорками - в репликационной среде юзера получают, нужные им данные выполняя локальные запросы, а без нее им пришлось бы для тех же целей выполнять распределенные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 19:37 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
softwarer,vadiminfo Если конкретная настройка репликации не предусматривает массовых операций и расписания, то чем тогда она отличается от распределенной транзакции? Созданием копий записей в единой транзакции? На мой взгляд это не репликация, а способ денормализации на распределеной базе. Который безусловно имеет право на жиизнь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 20:18 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Cat2 Я пытался сказать Вам, что она в общем случае может сама при реализации использовать и использует распределенные или удаленные транзакции. Отличаются юзерские запросы - в случае репликации, юзера выполняют локальные запросы, хотя для того, чтобы они имели такую возможность распределенные запросы до этого выполняли серваки сами, для поддержки актуальности копий в распределенной среде. Т.е. у юзера на сервере B есть табла а, копия таблы а на сервкре А, и он выполняет локальный (т.е. приконнектился к серверу В) запрос к табле а, которая на В. Но чтобы там копия была актуальна, механихмы репликации выполнили распеределенные запросы. Клиентами в них, например, выступали сами серваки. Синхронная репликация, асинхронная, но очень частая (массы маленькие) или суточная - это детали задачи. К денормализации не имеет отношения - это логически одна и таже табла. Это в идеале только физически разные таблы - в идеале распределенность прозрачна. А денормализация - относится тока к логичекому проектированию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 21:38 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
vadiminfoСинхронная репликация, асинхронная, но очень частая (массы маленькие) или суточная - это детали задачи. К денормализации не имеет отношения - это логически одна и таже табла. Это в идеале только физически разные таблы - в идеале распределенность прозрачна.Такой подход хреново заканчивается, лучше исходить из того, что некая информация прислана почтой из другого офиса и закачана в данную БД в известный момент времени, а не из того, что таблица логически везде одна и та же. Ближе к реальности - надежнее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 18:48 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
vadiminfoСуть в том, что репликация сама по себе обеспечивает только копию таблов на сайтах. Да. Хотя можно уточнять формулировку :) vadiminfo И потому асинхронная репликация, означает, что на первом данные изменились - деньги сняты, Хм. Ну если специально делать именно так - будет означать. Но зачем? vadiminfo Все остальное это шаги в сторону синхронности. Хм. С очень философской точки зрения наверное можно считать и так. Но имхо это такая же синхронность, как определение Cat2 - репликация. Синхронность имхо означает вполне четкую вещь - согласованный, условно-одновременный commit. Ничего менее и ничего более. vadiminfo Поэтому я и сказал, что в подобных случаях возможно проще использовать синхронную. Если ее можно хорошо использовать - безусловно, проще. Но моя реплика - повтор - в тех условиях, в которых можно хорошо использовать синхронную репликацию, скорее всего можно использовать и удаленные соединения к центральной БД, и это будет еще проще. vadiminfo Равноправная репликация не предполагает "условно главных". Хм. Имхо не слишком-то важно, как именно называется работающая схема. Не равноправная - так не равноправная. Целью обычно является работающая БД, а не равноправная, и если при равноправной работает хуже - тем хуже для равноправной :) vadiminfo А по данным они равноценны - вся идея не различать сайты в распределенной среде. А по данным они равноценны. Именно так. Пользователь обращается к хранимой процедуре, на любом сайте. Эта хранимка в своей реализации делает нечто, в результате чего появляется нужный результат. То, что она внутри себя покумекала насчет "условно главных" - ее внутренее инкапсулированное дело :) vadiminfo Поэтому и не решаюсь сделать их юзерам полное счатье, Здесь я целиком согласен. Если нельзя сделать достаточно хорошо, лучше не делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 20:37 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
Cat2Если конкретная настройка репликации не предусматривает массовых операций и расписания, Она не обязана их предусматривать. Я не думаю, что встречу задачу с необходимостью реплицировать, например, одну запись в год в случайный момент времени, но если данные пойдут именно так - репликация не перестанет быть репликацией. "Массовость" и "расписание" - несущественные факторы. Cat2то чем тогда она отличается от распределенной транзакции? Тем, что распределенная транзакция явно обращается к нескольким серверам. Это ее ключевой признак. Для репликации этого не требуется (хотя репликацию в принципе можно сделать и через распределенные транзакции). Cat2Созданием копий записей в единой транзакции? Автоматическим созданием копий в соответствии с указанной бизнес-логикой их создания. Cat2На мой взгляд это не репликация, а способ денормализации на распределеной базе. Не вижу здесь оснований для противопоставления. Репликацию безусловно можно считать формой денормализации. С другой стороны, следует ли понимать Вас так, что "способ денормализации", если мне захочется сделать его массовым и по расписанию, в одночасье станет репликацией? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 20:42 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
softwarer Да. Хотя можно уточнять формулировку :) Можно. Но обычно репликация в распределенной БД - это именно генерация и воспроизводство копий на сайтах. Ну примерно так этот термин используется в литературе. softwarer Хм. Ну если специально делать именно так - будет означать. Но зачем? И не специально "именно так" делать, а это и есть асинхронность. Процесс выполнивший вызов не ждет завершения вызова, а продлжает свою работу. Все остальное дополнительное. У Оракла есть AQ, которая предусматривает асинхронные события и там есть механизм подписчик- получатель. Т.е. можно посматривать время от времени, а можно получать извещения о том что событе, например, завершение вызванной процедуры произошло. Это при желании можно привестовать к асинхронной репликации. Но без этого она "делает именно так". softwarer Хм. С очень философской точки зрения наверное можно считать и так. Возможно и не с очень и не с философской. В пределе там просто синхронная репликация. В филиале тоже данные изменятся, либо нигде не изменятся. Какая тут философия? softwarer Но имхо это такая же синхронность, как определение Cat2 - репликация. Может быть. Я говорил о шагах к синхронности, т.е. в пределе синхронность. В определении Cat2 - репликация, рассматриваются некоторые виды репликации, но через особенности реализации. Просто это не все виды репликации и наоборот, в некоторых случаях можно считать и не репликацией. Массово что-то там залили, но может это не копия чего-то, а просто архив какой-то левый. softwarer Если ее можно хорошо использовать - безусловно, проще. Но моя реплика - повтор - в тех условиях, в которых можно хорошо использовать синхронную репликацию, скорее всего можно использовать и удаленные соединения к центральной БД, и это будет еще проще. У Оракла есть оговорка, если не подходят Оракловые репликации, лабайте свою. Т.е. для каких-то задач Ваша, наверное, будет луче. Задачи ить разные есть. Но в типовых случаях все же Оракловые, мне кажутся, более предпочтительными. Можно, как я писал, прилабать и AQ и триггерное что-то. Мне в центральном офисе приходится разрабатывать подсистемы контроля актуальности данных. А в филиалах, где равноправная, там просто раз в сутки проверяют идентичносить данных на сайтах. Такова жизнь. Но в случае с банками, я думаю, с синхронной, если она будет нормально работать, моно спать спокойно. Все остальное - вынужденное и, возможно даже, не избежное, но ухищрение. softwarer Хм. Имхо не слишком-то важно, как именно называется работающая схема. Не равноправная - так не равноправная. Целью обычно является работающая БД, а не равноправная, и если при равноправной работает хуже - тем хуже для равноправной :) В пропавшем тексте было и про репликацию Ведущий - Ведомый. Иногда именно ее и достаточно и она имеет преимущества. Например, в ней не нужна полная копия, а тока частичная. В общем случае эта копия может быть представлена в другом виде, чем на Ведущем. Это противоречит равноправной. Но равноправная не всегда противоречит "работающей БД", а иногда и лучше других этому способствует. Ить не я и даже не в Оракле ее придумали. Я говорил про нее, потому что считал, что та задача именно про нее - в банках копии счетов, но логически это один и тот же счет (и ничего лишенго - никаких хранимок). Поди плохо? У обоих серваков равные права на работу - типа логически это одна БД. Мы (и проггеры, но не админы) ниче не хотим знать в работе про то, что их два. Просто такой пример я имел в виду изначально, когда сравнивал синхронную и асинхронную. Равноправная здесь как бы подразумевается. И не тока мной. softwarer А по данным они равноценны. Именно так. Пользователь обращается к хранимой процедуре, на любом сайте. Эта хранимка в своей реализации делает нечто, в результате чего появляется нужный результат. То, что она внутри себя покумекала насчет "условно главных" - ее внутренее инкапсулированное дело :) Ну боюсь, что покумекать придется таки проггерам и админам, что она там делала и чего не сделала или может не сделать. И есть ли шанец, что пропадут таки бабки (т.е. окажутся ли данные во всех отношениях равноценными или распределенность "почувствуется" при работе с ними). Сам я отношусь с настороженностью к хранимкам в распределенной БД. У нас была раньше "ручная" (с хранимками) репликация. Заменили на штатную Оракловую - распределенность может привносить свое по сравнеию с одной централизованной БД. Поэтому путь с хранимками не кажется безоблачным во всех отношениях. Могут возникать сюрпризы разные в разное время эксплуатации и на разных версиях Оракла. И чаще када не до сюрпризов. Но в общем, как писал выше, в каких-то случаях "ручные" репликации могут оказаться неизбежными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 22:19 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
vadiminfoМожно. Но обычно репликация в распределенной БД - это именно генерация и воспроизводство копий на сайтах. Это уже ближе :) Генерация копий - не то же, что копии таблиц. В репликации есть интересный момент: в принципе возможна такая ситуация, что ни в какой момент времени данные в любой локальной БД не отражают реальной картины мира (или хотя бы копию таблицы с другого сервера), в то время как ее отражает "распределенная БД". vadiminfoИ не специально "именно так" делать, а это и есть асинхронность. Это один из вариантов асинхронности. Проблема, от которой нужно так или иначе защищаться. Но настаивать, что это единственный и принципиальный вариант - имхо неверно. Примерно так же, как настаивать на известной Вам неправильности ораклового serializable. vadiminfoУ Оракла есть AQ, которая предусматривает асинхронные события Есть. Но не всегда он подходит лучше всего другого. Названный мной в примере расходный ордер - совершенно реальный, бумажный документ, выступающий в роли такого асинхронного сообщения. vadiminfoУ Оракла есть оговорка, если не подходят Оракловые репликации, лабайте свою. Т.е. для каких-то задач Ваша, наверное, будет луче. Задачи ить разные есть. Но в типовых случаях все же Оракловые, мне кажутся, более предпочтительными. Я не очень понимаю логического перехода к этой мысли, хотя она сама по себе правильна. Напомню: я говорю о том, что не представляю себе ситуации, в которой синхронная репликация будет хорошим (aka "лучше либо не слишком хуже других") решением. Оракловая либо еще какая - не так важно. vadiminfoА в филиалах, где равноправная, там просто раз в сутки проверяют идентичносить данных на сайтах. Такова жизнь. Хм. Признаться, мне не очень нравится такая сложность администрирования репликации :) vadiminfoНо в случае с банками, я думаю, с синхронной, если она будет нормально работать, моно спать спокойно. Все остальное - вынужденное и, возможно даже, не избежное, но ухищрение. Хм. Если не ошибаюсь, из текста выпал кусок про работу на одном сервере. Что я бы не назвал вынужденным ухищрением по сравнению с репликацией, скорее наоборот :) vadiminfoВ пропавшем тексте было и про репликацию Ведущий - Ведомый. Вадим, Вы стягиваете к оракловым схемам там, где я говорю о репликации вообще. Насколько я помню (могу ошибаться) оракловая репликация не слишком-то гибка в плане возможной логики работы с данными; можно нарисовать логику репликации, которую в оракле просто не реализуешь. vadiminfoНо равноправная не всегда противоречит "работающей БД", а иногда и лучше других этому способствует. Я нигде и не говорю "всегда". Я нарисовал схему решения некоторой конкретной, поставленной Вами задачи. Если она "неравноправна" - тем хуже для равноправной, вот и все. vadiminfoв банках копии счетов, но логически это один и тот же счет (и ничего лишенго - никаких хранимок). Поди плохо? У обоих серваков равные права на работу - типа логически это одна БД. И это все верно про нарисованное мной с расходными ордерами. И без хранимок, и равные права. Все можно делать. vadiminfoМы (и проггеры, но не админы) ниче не хотим знать в работе про то, что их два. Хм. Скажем так, это фраза из той же оперы, что "программист что-нибудь разработает, а админ пусть тюнит под это БД". Неконструктивная постановка вопроса. Могу снова назвать случай, недавно вызвавший бурю эмоций на мою голову :) Несколько лет назад было так: некий программист написал примерно следующий job: Код: plaintext 1. 2. 3. 4. В результате несколько ночей по репликации катались толпы.. малоосмысленных изменений. Вот и расскажите, пожалуйста, про "прозрачность" и "ниче не хотим знать". vadiminfoСам я отношусь с настороженностью к хранимкам в распределенной БД. Хм. Фраза звучит так, словно без хранимок с ними проще :) Распределенная БД - дополнительный фактор сложности. От которого не убежишь, но который можно загнать в приемлимые рамки. vadiminfoУ нас была раньше "ручная" (с хранимками) репликация. Заменили на штатную Оракловую - распределенность может привносить свое по сравнеию с одной централизованной БД. Поэтому путь с хранимками не кажется безоблачным во всех отношениях. Могут возникать сюрпризы разные в разное время эксплуатации и на разных версиях Оракла. И чаще када не до сюрпризов. Но в общем, как писал выше, в каких-то случаях "ручные" репликации могут оказаться неизбежными. Честно говоря, мало что понял. Совершенно не понял, как связаны хранимки с репликацией, с ручной репликацией итп. Я упомянул хранимку как один из возможных путей лечения проблемы асинхронности. При этом эта хранимка никуда не лазит и ничего не реплицирует; она работает на локальном сервере. Репликация - стандартная либо нет, неважно - таскает ее данные туда-сюда, стандартной логикой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 22:48 |
|
||
|
Отптимальная частота репликации
|
|||
|---|---|---|---|
|
#18+
softwarer Генерация копий - не то же, что копии таблиц. Не то же, но не исключает копии таблиц. В равноправной именно копии таблиц, в Ведущий_Ведомый просто копий. Могут быть конечно и копии обектов. Типа на одном создали триггер, среда репликации на втором такой же генерит. softwarer В репликации есть интересный момент: в принципе возможна такая ситуация, что ни в какой момент времени данные в любой локальной БД не отражают реальной картины мира (или хотя бы копию таблицы с другого сервера), в то время как ее отражает "распределенная БД". Ну это как бы не в репликации этот интересный момент, а в распределенной БД. А в репликации этот интересный момент интересен, тока если обеспечивается требуемая актуальность копий. Иначе он совсем не интерсен. softwarer Это один из вариантов асинхронности. Ну не знаю как иначе можно в этом контексте понять сам термин асинхронность. Асинхронный способ вызова процедур, может, наверное, подразумевать в широком смысле что-то дополнительное к этому в общем случае. Но это, наверное, какое-то расширение термина для сокращений текстов описаний. softwarer Проблема, от которой нужно так или иначе защищаться. Но настаивать, что это единственный и принципиальный вариант - имхо неверно. Ну какбы этот термин был и раньше. И означал в данном контексте, что вызвавший процедуру не ждет ее завершения. Ну термин такой для этого используют. Хотя мож я чего-то упустил. Но с Ораклом вроде совпадает. Есче с какой-то литературой. softwarer Напомню: я говорю о том, что не представляю себе ситуации, в которой синхронная репликация будет хорошим (aka "лучше либо не слишком хуже других") решением. Я уверен на сто процентов, что если система позволяет реализовать синхронную репликацию так, чтобы ничего там не висло, не откатывало работу лишний раз из-за сбоев в сети, то она в равноправной репликации лучше. Копии актуальны в любой момент времени. Чего же лучше может быть? Это во всех отношениях преимущество. Т.е. если убрать ее недостатки, связанные с тем, что на каком-то узле всегда может что-то случиться и транзакция не выполнится нигде, то останутся весьма ощутимые преимущества. Можно провести аналогию с триггерами в одной БД. Триггер меняет другую таблу синхронно. Нужна там асинхронность? Там и автономность не всегда благо. Мож я не так что-то выразил, но не понимаю, почему Вы не представляете себе ситуации где синхронная лучше. Просто в современных условиях в распределенной БД ее недостаки, приведенные выше чаще перевешивают достоинства. softwarer Хм. Признаться, мне не очень нравится такая сложность администрирования репликации :) Это как раз ее легкость. Запустил процедуру - она вернула список таблов в которых есть отличия. И все. Это может делать и джоб и любой юзер, не понимая что такое репликация. Сложности начнутся когда отличия будут обнаружены, осорбенно если поздновато обнаружат. У нас один заказчик цельный квартал не обнаруживал. Вот я склевал удаленно восстанавливать. В случае синхронной - отличия никада не появятся. А Вы говорите. softwarer Есть. Но не всегда он подходит лучше всего другого. Названный мной в примере расходный ордер - совершенно реальный, бумажный документ, выступающий в роли такого асинхронного сообщения. Я не имел ввиду, что всегда лучше. Я упомянул в связи с термином "асинхронный". Ну и считаю, что если использовать для задач фичи СУБД, то плюс в том, что в решении СУБД берет на себя многое. В частности, ожидаю, что такое решение надежней, легче разрабытывать и сопровождать, оно лучше масштабируется. Ну в общем много хорошего там должно быть. softwarer Хм. Если не ошибаюсь, из текста выпал кусок про работу на одном сервере. Что я бы не назвал вынужденным ухищрением по сравнению с репликацией, скорее наоборот :) А "ручную" репликацию по сравнению со штатной? softwarer Вадим, Вы стягиваете к оракловым схемам там, где я говорю о репликации вообще. Стараюсь Оркл использовать тока как поясняющий пример. Во-первых, знаю что Вы Ораклист. Во-вторых его репликации согласуются с литературой более или менее. softwarer Насколько я помню (могу ошибаться) оракловая репликация не слишком-то гибка в плане возможной логики работы с данными; можно нарисовать логику репликации, которую в оракле просто не реализуешь. Насчет того, что есть такие ситуации, когда штатных репликаций не достаточно писал. Возможно, есть и такое, что в Оракле вообще не реализуешь. Но не логику репликации, а задачу не решить с помощью Оракловых средств репликации. Логику репликации то может можно нарисовать такую, ее нигде не реализуешь приемлемо, хотя задача может все же решаться с другой - реализуемой логикой. softwarer Я нарисовал схему решения некоторой конкретной, поставленной Вами задачи. Если она "неравноправна" - тем хуже для равноправной, вот и все. Не поставленной мной задачи, а гипотетичским примером равноправной репликации. Пример, када синхронная репликация очень бы пригодилась, если свести к минимуму ее недостатки. Наверно, просто недоятаточно ясно прозвучало, что это пример, а не поставленная задача. Если же ясно, что там напрашивается равноправная (причем не из Оракла - у него нет такого термина, есть мультимастер, а из того что вообще известно про виды репликаций), но она не получилась, то это может быть хуже не столько для равноправной, сколько для задачи в целом. softwarer И это все верно про нарисованное мной с расходными ордерами. И без хранимок, и равные права. Все можно делать. Возможно. Но если бы получилась равноправная было бы не полохо, хотя бы по стилю. Мы знали бы где находимся. Вы говорите равноправная - сразу известно что это, что при этом происходит и все такое. Говорите синхронная или асинхронная - ясно как оно происходит и какие могут быть при этом траблы. А Ваше решение еще нуно исследовать. Есть разница? Как Вы думаете? softwarer Хм. Скажем так, это фраза из той же оперы, что "программист что-нибудь разработает, а админ пусть тюнит под это БД". Неконструктивная постановка вопроса. Я имел в виду сложности разработки и сопровождения. Т.е. не тока конечные юзера критерий выбора решения. Они и про БД ниче не знать могут и про СУБД. Мы же не откажемся из-за этого от СУБД? Не скажеи какая разница - юзеру вроде все равно. Бум как ЧАЛ файловые системы лабать. Но не все равно проггерам и админам, а через это в конечном счете и конечному юзеру. Он будет просить что-то поменять, а это сложнее. Дольше или вообще проггеры начнут отмазываться. А в штатной может тока гайку повернул и готово. Я по крайней мере на это расчитываю. А если проггер знает что два сервера, программирует с учетом этого, то это дополнительная нагрузка. Админу поневоле нуно знать, что их два в любом случае, нето доиграется. softwarer Могу снова назвать случай, недавно вызвавший бурю эмоций на мою голову :) Несколько лет назад было так: некий программист написал примерно следующий job: . Видел такое. Кстати, вот и пример. Такое один написал - репликация должна качать инкременто, а инкремент несусветный. Он там в цикле тучу транзакций нагерил, хотя они ниче не меняют. Но репликация штатная. Ее легко проверить. Поэтому на проверку своих решений времени тратить совсем не надо было. А так поди разбери почему с Кольского полуострова суточные данные в Москву качаются час вместо 5 минут. Правда тогда мне были доступны удаленно оба сервака. Но все равно - экономия усилий по поиску причин. softwarer В результате несколько ночей по репликации катались толпы.. малоосмысленных изменений. Вот и расскажите, пожалуйста, про "прозрачность" и "ниче не хотим знать". Прозрачность для админа проблема. Чем прозрачнее, тем труднее. Но проггеры могут ничего не хотеть знать по возможности про репликацию. Особенно када занимаются логикой. Не потому что они плохие, а потому что это все-таки что-то больше для физических аспектов. Я имел в виду максимальное снижение влияния наличия задач репликации на логику основной работы системы. softwarer В результате несколько ночей по репликации катались толпы.. малоосмысленных изменений. Вот и расскажите, пожалуйста, про "прозрачность" и "ниче не хотим знать". Прозрачность для админа проблема. Чем прозрачнее, тем труднее. Но проггеры могут ничего не хотеть знать по возможности про репликацию. Особенно када занимаются логикой. Не потому что они плохие, а потому что это что-то левое. Я имел в виду максимальное снижение влияния наличия задач репликации на логику основной работы системы. softwarer Я упомянул хранимку как один из возможных путей лечения проблемы асинхронности. При этом эта хранимка никуда не лазит и ничего не реплицирует; она работает на локальном сервере. Репликация - стандартная либо нет, неважно - таскает ее данные туда-сюда, стандартной логикой. Я имел в виду, противопоставление штатной репликации, процедурам написанным прогерром для тех же целей и соответствующей реализацией. Т.е. я считаю это важным. Логика может и похожа, но реализация разная. Конечно, может кто-то и налобает на низком уровне захват транзакций, помещение их в очередь, а потом распространение на другие серваки и выполнение их там, как будто их там запустили. Но чаще он просто налабает логи изменений, записывыть туда измененнгия и читать эти журналы удаленно другими сервакми. Так кастати, реализована и стандартная репликация Ведущий- Ведомый в Оракле. Но Мультимастер так как мало кто налабает, а может таких спосов и нет. Не уверен. Не даром она тока в Интерпрайз Эдишон. А Вы говорите стандартная логика. У СУБД тоже стандартная логика. Что же нам теперь ее функционал (например, механизм транзакций) с помощью хранимок реализовывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 01:03 |
|
||
|
|

start [/forum/search_topic.php?author=Azazello121212&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
89ms |
get tp. blocked users: |
1ms |
| others: | 638ms |
| total: | 990ms |

| 0 / 0 |
