Перепост, про Firebird
Apr. 5th, 2011 07:18 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
ссылка
В бане (или борделе, кто куда ходит), после грамотной попарки (или еще чего), распаренный партнер подсказывает генральному, что во всем виноват тормозной Firebird, и надо переходить на "промышленные" СУБД.
...
Правильно затюнигованный Firebird держит 1500 активных клиентских подключений, обслуживает 400Гб базу, и экономит предприятию как минимум от $6000 за каждый процессор.
У меня на почве Firebird когнитивный диссонанс в крайней стадии.
Во-первых, он у меня работает в количестве нескольких сотен штук у разных клиентов. Во-вторых, я на его использовании съел собаку. В третьих, у меня кодогенератор пока заточен строго под Firebird и свои модели хранит тоже в Firebird. То бишь мне по долгу службы положено всюду Firebird пропагандировать и пиарить.
Но периодически возникают срачи с разного рода админами, коллегами-программистами и прочими причастными к теме, и все они крайне не любят оный Firebird. Типа истории про неуловимый баг "если в процессе работы почитать(скопировать) базу извне сервера, то база сдохнет. Оригинал сдохнет, не копия". Ну и прочие urban legends. У людей без мозгов вообще первая реакция примерно такая: "Firebird? А, ну идите в топку, пионеры из НИИГиТ.".
Ребе
theiced вообще убеждает меня, что базы Firebird регулярно отправляются на марс, со всеми данными :) И таки да, надо признать, такое бывало, меньше 1% случаев, но бывало. Я не знаю, как обстоят с таким дела у всяких Ораклов или PostgreSQL, но меньше 1% излечимых отказов, при жестоко удолбищных условиях эксплуатации - это имхо, вполне хорошо. Возможно, я чего-то не понимаю, и отказов вообще быть не должно.
Если посмотреть на среднего вопрощающего на sql.ru или на отвечающих ему местных "гуру", то причины такой ситуации становятся более понятны - вопрощающий обычно реально пионер из НИИГиТ, отвечающие или модераторы - несдержанные на язык красноглазики, в самом лучшем случае - делающие гешефт на Firebird и около того товарищи.
И еще один аспект - это те самые условия эксплуатации. Oracle/MSSQL - это значит заведомо нормальный сервер, инфраструктура и наличие обслуживающих админов. PostgreSQL/MySQL - наличие в дельта-окрестности следящего за инфраструктурой красноглазика.
Для Firebird же типичная инфраструктура - "первый попавшийся десктоп с виндой, с матерью на nvidia чипсете, съеденными мышами проводами, на котором кишат вирусы, админов нет, а пользователи качают с китайских серверов зоофильское порно с троянами и червями".
Я до сих пор не могу забыть, как админы клиентов базу данных бухгалтерской системы один раз удалили вместе с образом виртуальной машины, а в следующий раз, уже после переселения на физическую машину, у них просто ВЫПАЛ ПРОВОД из винчестера во время работы. Слава богу, база была на другом винчестере.
В бане (или борделе, кто куда ходит), после грамотной попарки (или еще чего), распаренный партнер подсказывает генральному, что во всем виноват тормозной Firebird, и надо переходить на "промышленные" СУБД.
...
Правильно затюнигованный Firebird держит 1500 активных клиентских подключений, обслуживает 400Гб базу, и экономит предприятию как минимум от $6000 за каждый процессор.
У меня на почве Firebird когнитивный диссонанс в крайней стадии.
Во-первых, он у меня работает в количестве нескольких сотен штук у разных клиентов. Во-вторых, я на его использовании съел собаку. В третьих, у меня кодогенератор пока заточен строго под Firebird и свои модели хранит тоже в Firebird. То бишь мне по долгу службы положено всюду Firebird пропагандировать и пиарить.
Но периодически возникают срачи с разного рода админами, коллегами-программистами и прочими причастными к теме, и все они крайне не любят оный Firebird. Типа истории про неуловимый баг "если в процессе работы почитать(скопировать) базу извне сервера, то база сдохнет. Оригинал сдохнет, не копия". Ну и прочие urban legends. У людей без мозгов вообще первая реакция примерно такая: "Firebird? А, ну идите в топку, пионеры из НИИГиТ.".
Ребе
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Если посмотреть на среднего вопрощающего на sql.ru или на отвечающих ему местных "гуру", то причины такой ситуации становятся более понятны - вопрощающий обычно реально пионер из НИИГиТ, отвечающие или модераторы - несдержанные на язык красноглазики, в самом лучшем случае - делающие гешефт на Firebird и около того товарищи.
И еще один аспект - это те самые условия эксплуатации. Oracle/MSSQL - это значит заведомо нормальный сервер, инфраструктура и наличие обслуживающих админов. PostgreSQL/MySQL - наличие в дельта-окрестности следящего за инфраструктурой красноглазика.
Для Firebird же типичная инфраструктура - "первый попавшийся десктоп с виндой, с матерью на nvidia чипсете, съеденными мышами проводами, на котором кишат вирусы, админов нет, а пользователи качают с китайских серверов зоофильское порно с троянами и червями".
Я до сих пор не могу забыть, как админы клиентов базу данных бухгалтерской системы один раз удалили вместе с образом виртуальной машины, а в следующий раз, уже после переселения на физическую машину, у них просто ВЫПАЛ ПРОВОД из винчестера во время работы. Слава богу, база была на другом винчестере.
no subject
Date: 2011-04-08 04:59 am (UTC)http://wiki.postgresql.org/wiki/Hot_Standby
Вообще идея в том, чтобы снизить даунтайм до минимума, т.к. в каких-нибудь OLTP никто не будет ждать, пока бэкап базы поднимут.
no subject
Date: 2011-04-08 05:10 am (UTC)no subject
Date: 2011-04-08 05:12 am (UTC)Первый вопрос который у меня возникает - как диагностировать выход из строя мастера.
А так и на shadow можно вопрос решить. Мастер умер, выдернул винт, воткнул во второй комп, работаем дальше. Вопрос когда переезжать-то.
no subject
Date: 2011-04-08 12:20 pm (UTC)no subject
Date: 2011-04-08 12:32 pm (UTC)В fb его нету, для HA решений fb не применяется, поэтому вполне может быть, что про standby и не слышали.
no subject
Date: 2011-04-08 12:34 pm (UTC)no subject
Date: 2011-04-08 12:50 pm (UTC)у меня складывается впечатление, что напиши товарищ один раз промежуточный tier для sqlite, например, - и все были бы довольны все эти долгие 10 лет непоймичегоделанья.
..только о sqlite такие редкости обычно и не слышали, как и о присноупомянутом стэндбае.
no subject
Date: 2011-04-08 12:54 pm (UTC)sqlite же блокирует базу целиком на момент записи, хоть и работает в многопоточных приложениях. Кроме того, у него с типизацией полей печаль.
А, и да - firebird имеет embedded вариант - как раз та же ниша, что sqlite. И переход от embedded к нетворк - замена одной либы, из-за чего практикуется такое: показываем клиенту продукт, вообще его не инсталлируя, тупо скопировав в флешки, один пользователь пользуется, потом переселяем на сервер, когда захотят остальные пользователи и запинают свое начальство и ИТ-службу.
no subject
Date: 2011-04-08 01:49 pm (UTC)да, у sqlite нет многоверсионности (лень в педивикию лезть, по-моему так называется по-русски), - и что?
- в "этой нише" ("в этой стране"..))) вполне сойдёт.
для баз 2-3 Гб и парой-другой тысяч пользователей - запросто, думаю. - А это - уже не ниша для fb, кстати. Оно там сдохнет неминуемо. А настраивать - нечего. И покупка "полки" - лишь отсрочит окончательное и неминуемое.
Я просто немного удивлен. - Как за десять лет человек с этим не сталкивался? Автоматизацию бань, прачечных-х*чечных налаживал?
no subject
Date: 2011-04-08 03:00 pm (UTC)sqlite и nosql конкретно мне не нравятся тем, что нет принуждения со стороны СУБД использовать правильные структуры данных - в sqlite можно записать строку в числовое поле и никто не почешется, а в nosql вообще структура(вроде бы) определяется клиентским приложением, и разработка чего-то более-менее осмысленного гарантированно закончится собственной реализацией sql/транзакций и прочего поверх nosql баз.
Ну я с требованием standby и прочего подобного тоже не сталкивался ни разу. Все просто: клиенты до сих пор работают с прогой на кларионе под DOS и файл-серверные БД. По сравнению с этим софт на Firebird - это уже небо и земля.
no subject
Date: 2011-04-08 04:34 pm (UTC)no subject
Date: 2011-04-08 06:31 pm (UTC)В частности, внешние и прочие ключи используются как последний эшелон защиты от ошибок. Т.е. пользователю клиентское ПО, конечно, не дает ничего плохого сделать, показывая осмысленные сообщения, но ограничения в БД делают это дело более надежным.
no subject
Date: 2011-04-09 01:25 pm (UTC)- я примерно понял, о чем Вы говорите.
- не проще ли тот же постгре освоить? он-то ведь и настройками побаловать может, и позволяет на пару-другую Гб/Тб базу раздуть. - да, вполне..
no subject
Date: 2011-04-09 01:30 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-04-11 01:54 am (UTC)> кстати. Оно там сдохнет неминуемо.
С чего бы. У вас я вижу охуенный опыт работы с Firebird?
> Я просто немного удивлен. - Как за десять лет человек с этим не сталкивался? Автоматизацию бань,
> прачечных-х*чечных налаживал?
Оптовая и розничная торговля. Регион от Новосибирска до Иркутска.
В центральном офисе максимальное кол-во коннектов к базе - порядка 30 наверное.
Соответственно все ваши рассуждения про тысячи коннектов и тербатайтные базы - для меня пустой звон. У меня этого не и не будет.
no subject
Date: 2011-04-11 08:16 am (UTC)>Оптовая и розничная торговля.
- да понял, понял. не переживайте так.
no subject
Date: 2011-04-11 09:09 am (UTC)2-3 гига и 2-3 тысячи пользователей - это что-то странное.
Вы цифры с потолка берете, по аналогии с веб-сайтами с которым наверное и имеете дело...
Нишу эту FB покрывает нормально, но что могут делать 2 тысячи пользователей с такой небольшой базой...
У меня менее 30 пользователей набивают 1,5 гига за 1,5 года.
no subject
Date: 2011-04-08 02:23 pm (UTC)- с какой стороны посмотреть. я его давно не юзал. последний раз - под тиклем, - что в тикле - каждая переменная - строка, что в sqlite (а он из тикля и вырос) - то же самое.
под питоном поюзал слегка - для внутренних нужд, - переменные и файлики хранить, - какие проблемы с типизацией?
- или я где-то ошибся и надо левым ухом правую руку чесать?
no subject
Date: 2011-04-08 03:01 pm (UTC)В реляционных БД система типов конечно, слабее, чем во всяких хаскелях и агдах, но обладает некоторыми свойствами, которые в обычных языках до сих пор сделать невозможно, без выворачивания мозгов наизнанку.
no subject
Date: 2011-04-08 04:48 pm (UTC)- т.е. своей проверки в Вашем коде нет? ни эксепшнов правильных?
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:Моя контора например
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-04-09 04:01 am (UTC)И в таком все стиле..
Для очень мелких вещей и встроенных хранилищ - да, вполне подходит.
no subject
Date: 2011-04-09 01:22 pm (UTC)а насчет даты-времени - так вот оно - чего искать-то? http://www.sqlite.org/lang_datefunc.html
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-04-11 06:20 am (UTC)А FB весьма неплохо развививается, не требует никаких дописываний лично мной и покрывает все мои задачи.
Зачем мне скакать с сервера на сервер следуя текущей моде если есть нормальное решение, не хуже других и ничего уже переделывать ради просто переделывания - не надо?
no subject
Date: 2011-04-08 06:47 pm (UTC)no subject
Date: 2011-04-09 01:14 pm (UTC)