Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: база данных для процессинга  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

TerraInformixa
В Информиксе есть синхронная и асинхронная, на выбор. Что касается надежности: падает
первичный сервер базы кластера HADR например, из-за сбоя дисков. Пока то да се, диски
новые ставят и сервер восстанавливают, клиенты подключаются к вторичному серверу базы
кластера (переключение занимает секунды если отработана ситуация) и продолжают работать с
базой как не бывало. Это HADR - легендарная репликация в Informix, которая есть даже в
бесплатной редакции Informix Innovator-C.

Однако, с синхронной репликацией есть одна проблема: падает вторичный сервер базы кластера
HADR, например, из-за сбоя дисков. Пока то да сё, диски новые ставят и сервер
восстанавливают, клиенты не могут работать с первичным сервером базы кластера, поскольку
изменения не могут синхронно уходить на вторичный сервер.

Как эта проблема решена в Informx Innovator-C?

Posted via ActualForum NNTP Server 1.4

20 окт 11, 14:20    [11472725]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
miwaonline
Member

Откуда:
Сообщений: 2249
softwarer
Если "айтишником" будет кто-нибудь из ярых апологетов, например, Firebird, клиент просто изначально не станет рассматривать другие решения. Это неустранимый риск, который можно минимизировать только выбором чего-то популярного.

Об чем и речь - надежность и солидность из вопроса ТС-а в очень большой мере зависит от адекватности покупателя и его команды.

softwarer
В варианте же, допустим, "нормальный клиент с адекватным айтишником" в случае Oracle или DB2 мнения будут "Слышал, что что-то мощное / Да, на нём можно писать такие решения", в случае того же Firebird - "Никогда не слышал / Да, его не очень часто, но используют", а вот в случае Informix, к сожалению - "Никогда не слышал / Ну, я слово такое знаю, но только слово".

Ну, еще нормальный айтишник может пожать плечами и сказать что-то типа "Зависит от кривизны рук тех, кто писал софт, а не от используемой СУБД".

А еще наши с вами гипотетические ярые апологеты правы в том, что при наличии специалистов по какой-то одной СУБД она все-таки предпочтительней.
20 окт 11, 14:21    [11472734]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67433
Блог
TerraInformixa
Недостаток Информикса лишь в малой распространенности в России.

Я и не говорю, что у него есть другие недостатки. Я говорю, что для проекта "на продажу" этот недостаток прискорбно существенен.
20 окт 11, 14:23    [11472750]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67433
Блог
miwaonline
Ну, еще нормальный айтишник может пожать плечами и сказать что-то типа "Зависит от кривизны рук тех, кто писал софт, а не от используемой СУБД".

Нормальный рядовой айтишник так и скажет, а нормальный айтишник-начальник (к которому и пойдёт советоваться клиент) - уже нет. Потому что он, понимая, что это правда, понимает и другое. Вот здесь есть, допустим, Дима, про которого я поверю, что десятигиговая база на ФБ у него будет летать. Я мог бы свести его со своим знакомым, который говорит: когда база подползает к пяти гигам, мы советуем нашим клиентам раскошелиться на оракл, потому что на фб наше приложение начинает сильно тормозить. Я мог бы свести с другим знакомым, у которого приложение держит половину информации в блобах и обрабатывает на сервере приложений, потому как работа с этими данными реляционными методами в фб получается слишком медленной. Я верю, что при личном знакомстве Дима им всё покажет, и у них всё залетает. И тем не менее, на вопрос "потянет ли мсскл десятигиговую базу" я отвечу "да у всех тянет и стогиговые", а на вопрос "потянет ли фб десятигиговую базу" - выдам.. не столь уверенный ответ. Именно потому что потянет далеко не в каждых руках. И потому, что спрашивающего интересуют не мои философские рассуждения о руках, а измеримые основания "покупать" или "не покупать".
20 окт 11, 14:37    [11472846]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

softwarer
И тем не менее, на вопрос "потянет ли мсскл десятигиговую базу" я отвечу "да у всех тянет
и стогиговые"

И будешь не совсем прав, поскольку при использовании его с той же 1С все начинают базу
сжимать, удаляя старую информацию, гораздо раньше. Именно потому что летать перестаёт.

Posted via ActualForum NNTP Server 1.4

20 окт 11, 15:00    [11473035]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
TerraInformixa
Guest
Dimitry Sibiryakov
Однако, с синхронной репликацией есть одна проблема: падает вторичный сервер базы кластера
HADR, например, из-за сбоя дисков. Пока то да сё, диски новые ставят и сервер
восстанавливают, клиенты не могут работать с первичным сервером базы кластера, поскольку
изменения не могут синхронно уходить на вторичный сервер.

Как эта проблема решена в Informx Innovator-C?


Пока первичный Primary сервер базы Informix восстанавливается (из бэкапа) после сбоя дисков, вторичный сервер Informix для того чтобы клиенты могли обновлять данные, переводится из режима read-only в обычный standard режим. И клиенты обновляют данные на нем как на обычном сервере.
Изменение роли сервера Informix Secondary read-only -> standard выполняется очень быстро, за секунды. После того как база Primary Informix восстановлена, делается либо обратная смена ролей (как до сбоя), HADR восстанавливается, в процессе восстановления данные синхронизируются и вновь переключаются клиенты, либо вновь восстановленный сервер делается Secondary, а тот с которым работают после сбоя клиенты делается из Standard в Primary HADR.
Весь таймаут в работе для клиентов при сбое основного сервера Informix HADR - это переключение с основного сервера на резервный, и он может быть минимизирован до нескольких секунд.
20 окт 11, 15:03    [11473070]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

TerraInformixa
Пока первичный Primary сервер базы Informix восстанавливается (из бэкапа) после сбоя
дисков, вторичный сервер Informix для того чтобы клиенты могли обновлять данные,
переводится из режима read-only в обычный standard режим. И клиенты обновляют данные на
нем как на обычном сервере.

А теперь читаем внимательно: я написал, что диски отказали на вторичном сервере.
Что в этом случае произойдёт? Как идёт процесс синхронизации после восстановления? Куда
сбрасываются изменения при работе в деградированном режиме?

Posted via ActualForum NNTP Server 1.4

20 окт 11, 15:17    [11473232]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67433
Блог
Dimitry Sibiryakov
И будешь не совсем прав

Безусловно. Поскольку мы все понимаем и про руки, и про гигабайты. И всё же это куда ближе к тому, что хотел услышать клиент / стоит услышать клиенту. Если я буду жевать про руки, он в конце концов взбесится, скажет "от тебя никакого толка" и уйдёт. И в общем-то будет прав. Поэтому при решении вопроса "стоит ли исследовать эту систему глубже" имя, увы, будет иметь значение. А тем, кто пока с этим не согласен, предлагаю обдумать вопрос о приобретении системы на dBase II :)
20 окт 11, 15:19    [11473255]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
TerraInformixa
Guest
Dimitry Sibiryakov,

При любом сбое вторичного сервера Informix HADR, на клиентах это никак не отражается если они работают с первичным сервером Informix. Все изменения данных записываются в журнал транзакций, элементы журнала периодически архивируются (система почти такая же как в других базах, например в Оракле).
Вторичный сервер после сбоя дисков должен быть восстановлен из бэкапа, либо если это сбой экземпляра, то просто перезапущен. После этого вторичный автоматически попытается соединится с первичным сервером Informix HADR и запросит все транзакции из журнала. Если журнал будет перезаписан (он циклический) то транзакции будут запрошены из местоположения архивированных журналов. Вторичный сервер HADR накатит на себя изменения, и репликация HADR после этого вновь работает в обычном режиме.
20 окт 11, 15:38    [11473458]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
Favn
Member

Откуда:
Сообщений: 585
Dimitry Sibiryakov
А теперь читаем внимательно: я написал, что диски отказали на вторичном сервере. Что в этом случае произойдёт?
Тут я бы все-таки отделил HADR от репликации - разные же вещи.
HADR (в DB2, в Информиксе кажись примерно такой же) - не репликация, а авт. накат логов с первого на второй, второй при этом в режиме наката логов, доступен только для чтения, и то ur. Кирдык дискам на втором имхо на первый почти никак не влияет. А вот при кирдыке первого второй автоматически переходит в боевой режим и продолжает работу.
Вообще, огромный плюс бесплатного Информикса - 4Гб ОП и HADR с репликацией (при скромных по отзывам потребностях в ресурсах).
Огромный минус - бедный SQL (без CTE). Если бы не это - давно бы с DB2 на него перешел.
20 окт 11, 15:40    [11473478]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

softwarer
Безусловно. Поскольку мы все понимаем и про руки, и про гигабайты. И всё же это куда ближе
к тому, что хотел услышать клиент / стоит услышать клиенту.

Ну, ты можешь сделать фразу неподкопной, просто убрав из неё "у всех": "да тянет и
стогиговые" - корректное утверждение при любом раскладе и вполне клиента удовлетворяет.

Posted via ActualForum NNTP Server 1.4

20 окт 11, 15:41    [11473490]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
TerraInformixa
Guest
Favn,

HADR в Informix расшифровывается как High-Availability Data Replication

Конечно репликация разная бывает, в т.ч. и в Informix, но в общем она остается именно репликацией.
20 окт 11, 15:44    [11473507]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

TerraInformixa
При любом сбое вторичного сервера Informix HADR, на клиентах это *никак* не отражается
если они работают с первичным сервером Informix. Все изменения данных записываются в
журнал транзакций, элементы журнала периодически архивируются (система почти такая же как
в других базах, например в Оракле).

Тогда вопрос на засыпку: первичный сервер, прежде чем ответить клиенту "ок" на запрос
"commit", проверяет, что лог с данными этой транзакции успешно принят вторичным
сервером?

Posted via ActualForum NNTP Server 1.4

20 окт 11, 15:49    [11473570]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
TerraInformixa
Guest
Dimitry Sibiryakov,

Зависит от. Если репликация синхронная то будет ждать подтверждения, если асинхронная то не будет ждать. Все это настраивается.
20 окт 11, 15:50    [11473582]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
Dimitry Sibiryakov,

И передается не журнал, а гораздо более мелкий кусок, который называется буфером журнала, размер настраивается, как правило 128-512 Кб.
20 окт 11, 15:52    [11473600]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
Favn
Member

Откуда:
Сообщений: 585
TerraInformixa
HADR в Informix расшифровывается как High-Availability Data Replication
Почитал. Назвать можно как угодно, но смысл ровно тот же, что и в HADR (High availability disaster recovery) DB2.
С первого идет log shipping, второй - в перманентом roll-forward mode с возможностью чтения.
Прикольно, что двум СУБД в одной фирме (IBM) одной фиче с одинаковыми функциями дают одну аббревиатуру, но с разной расшифровкой :)
20 окт 11, 16:00    [11473675]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67433
Блог
Dimitry Sibiryakov
Ну, ты можешь сделать фразу неподкопной

Лет пять назад я бы так и поступил, но в последние годы стал чаще выбирать краткость и яркость в ущерб формальной точности. Полностью мысль выглядит примерно так: "Клиенту я ответил бы более чем одной фразой, вполне точными, и суммарно создающими ощущение, аналогичное ощущению от этой одной фразы". Но сейчас я предпочту просто сказать эту фразу.
20 окт 11, 16:03    [11473714]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
Внимательно прочитал лицензию для Innovator-C:


2.3) Лицензиату разрешено использовать Программу с одним (1) узлом Первичной Установки и одним (1) узлом Вторичной Установки. Вторичная Установка может быть узлом Репликации Данных с Высокой Доступностью (HDR) или узлом Удаленного Вторичного Сервера (RSS). Узел Вторичной Установки может выполнять запросы и операции чтения и записи.

Т.е. бесплатная лицензия позволяет использовать обновляемый вторичный сервер! Ололо!
20 окт 11, 16:16    [11473800]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

TerraInformixa
Зависит от. Если репликация синхронная то будет ждать подтверждения, если асинхронная то
не будет ждать. Все это настраивается.

Мы сейчас говорим только о синхронной репликации, поскольку только она обеспечивает
надёжность. Асинхронная репликация надёжность не обеспечивает.

Теперь такой сценарий:

Транзакция 1 первичным сервером проведена, отреплицирована, вторичный сервер это
подтвердил - отвечаем клиенту "ок".
Транзакция 2 первичным сервером проведена, попытка репликации обламывается - вторичный
сервер умер.
Что сделает первичный сервер?
а) Переведёт репликацию в асинхронный режим и ответит клиенту "ок"
б) Ответит клиенту "облом" и откатит транзакцию

Транзакция 3 первичным сервером проведена. Будет он пытаться её реплицировать после облома
с транзакцией 2?
Во время проведения транзакции 4 вторичный сервер очнулся и тянет на себя транзакцию 2.
Будет первичный сервер пытаться реплицировать транзакцию 4 или он всё ещё работает в
асинхронном режиме? Когда HARD кластер снова перейдёт в синхронный режим?

Это всё действительно интересные вопросы, на которые я хотел бы знать ответ...

Posted via ActualForum NNTP Server 1.4

20 окт 11, 16:31    [11473905]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67433
Блог
Dimitry Sibiryakov
Мы сейчас говорим только о синхронной репликации, поскольку только она обеспечивает надёжность. Асинхронная репликация надёжность не обеспечивает.

Это слишком сильное утверждение. Хотя, конечно, вопрос в том, что именно понимать под надёжностью.
20 окт 11, 16:34    [11473931]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
softwarer
Dimitry Sibiryakov
Мы сейчас говорим только о синхронной репликации, поскольку только она обеспечивает надёжность. Асинхронная репликация надёжность не обеспечивает.

Это слишком сильное утверждение. Хотя, конечно, вопрос в том, что именно понимать под надёжностью.


За несколько лет эксплуатации Informix HADR ни разу при асинхронной репликации не терялись транзакции.
20 окт 11, 16:37    [11473961]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
Dimitry Sibiryakov
...
Теперь такой сценарий:

Транзакция 1 первичным сервером проведена, отреплицирована, вторичный сервер это
подтвердил - отвечаем клиенту "ок".
Транзакция 2 первичным сервером проведена, попытка репликации обламывается - вторичный
сервер умер.
Что сделает первичный сервер?
а) Переведёт репликацию в асинхронный режим и ответит клиенту "ок"
б) Ответит клиенту "облом" и откатит транзакцию

Транзакция 3 первичным сервером проведена. Будет он пытаться её реплицировать после облома
с транзакцией 2?
Во время проведения транзакции 4 вторичный сервер очнулся и тянет на себя транзакцию 2.
Будет первичный сервер пытаться реплицировать транзакцию 4 или он всё ещё работает в
асинхронном режиме? Когда HARD кластер снова перейдёт в синхронный режим?

Это всё действительно интересные вопросы, на которые я хотел бы знать ответ...


Транзакция 2 будет зафиксирована несмотря на состояние вторичного сервера. Позже когда вторичный снова будет работоспособен, он получит эти транзакции, которые были проведены на первичном пока вторичный лежал. Транзакция и все последующие на первичном также будут зафиксированы, и переданы на вторичный когда он снова заработает. В этом вся суть High-Availability.
20 окт 11, 16:45    [11474036]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67433
Блог
Andron
За несколько лет эксплуатации Informix HADR ни разу при асинхронной репликации не терялись транзакции.

Под надёжностью можно понимать не только потери. Скажем, следующий апокалиптический сценарий:

- падает резервный сервер
- на основном идут изменения данных
- падает основной сервер
- поднимается резервный сервер
- на резервном идут изменения данных
- поднимается основной сервер
- на резерв приезжают изменения с основного сервера.

В результате в зависимости от реализации и специфики данных возможны разные не очень приятные вещи.
20 окт 11, 17:06    [11474273]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Andron
Транзакция и все последующие на первичном также будут зафиксированы, и переданы на
вторичный когда он снова заработает. В этом вся суть High-Availability.

Понятно: репликация после сбоя становится асинхронной. Вопрос: когда она опять станет
синхронной? Как именно происходит этот процесс переключения в синхронный режим?

softwarer
апокалиптический сценарий:

Именно поэтому я и настаиваю на своём сильном утверждении. В этом сценарии надёжность
пошла лесом уже в момент когда при одном упавшем сервере операции продолжили делаться на
другом.

Posted via ActualForum NNTP Server 1.4

20 окт 11, 18:20    [11474928]     Ответить | Цитировать Сообщить модератору
 Re: база данных для процессинга  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67433
Блог
Dimitry Sibiryakov
Именно поэтому я и настаиваю на своём сильном утверждении. В этом сценарии надёжность пошла лесом уже в момент когда при одном упавшем сервере операции продолжили делаться на другом.

В самом деле, надёжность - понятие непростое. Делаешь-делаешь отказоустойчивый кластер, а оказывается, что он не надёжнее, чем одинокий сервер (если воспринять Ваше утверждение буквально, так даже вдвое менее надёжен).

В более близкой мне реальности, если сидит тысяча пользователей, ждущих возможности заработать компании денег, работая с системой, и стоит сервер, способный их обслужить, их таки надо обслужить. А если при этом айтишник должен разгрести репликацию так, чтобы в итоге получилась целостная база - так за это ему зарплату и платят, а не за фразу с умным видом "так делать нельзя".
20 окт 11, 18:30    [11474984]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить