11 марта 2011 в 12:48

Плохому танцору… перевод

Многие из вас читали о последних эстонских выборах. И вот интересные факты.

Эстонское правительство наняло IT-вендора Helmes для создания системы представления оперативных данных в течение последних эстонских парламентских выборов. Они (Helmes) построили совершенно новую систему, и по-видимому, не проверили ее в преддверии выборов. Неудивительно, что система упала, и статистика подавалась с задержкой на час.

Почему я пишу об этом? Потому, что Helmes обвиняет СУБД PostgreSQL в задержке. Это все равно, что водитель после попадания в автомобильную аварию обвинит изготовителя двигателя, хотя сам мчался на красный свет. «Если бы только двигатель был чуточку мощнее», — жалуется Helmes, «мы бы проскочили этот чертов перекресток еще до того момента, как другие машины тронутся с места!»

Предполагая, что Google Translate адекватен в своем переводе, Helmes предоставил поистине причудливое объяснение отсутствия тестирования:

«Единственным способом предотвратить эту ситуацию была бы предварительная загрузка данных с тем же объемом информации, что и в разгар выборов. Это не нормально, так как запуск системы не должен зависеть от какого-либо объема псевдо-данных.»

Другими словами, Helmes никогда не тестировал систему с полностью заполненной базой данных. Классическая ошибка начинающих.

PostgreSQL в настоящее время обслуживает выборы в Аргентине, Новом Южном Уэльсе (Австралия), Новой Зеландии, а также в нескольких бразильских штатах. Население всех этих регионов (ну, может быть, кроме Новой Зеландии) значительно превышает население Эстонии, и никто не в тех местах, не сообщил о провалах выборов из-за проблем с производительностью. Черт, я видел избирательные системы на основе SQLite, и они прекрасно работают, потому что они были разработаны правильно.

Тот же эстонский Skype обрабатывает более 6% междугородных звонков в мире, используя PostgreSQL. Это около миллиарда транзакций в день. По всему миру, PostgreSQL обслуживает многие системы, которые обрабатывают объемы нескольких эстонских выборов… каждый час, изо дня в день.

Мой совет Эстонскому правительству: увольняйте Helmes. Вам не нужна компания, которая не в состоянии исполнить заказ, а затем обвиняет свои же инструменты в этом.

Если кто-либо из читателей знает эстонский, пожалуйста, переведите это сообщение и поделитесь им с народом Эстонии.

(Кроме того, я слышу как апологеты MySQL смеются над нами сейчас. Теперь и мы знаем как оно, быть обвиненными из-за кривизны рук пользователей системы.)
+95
431
8

Комментарии (67)

+26
daspisch #
Сочувствую всем любителям PostgreSQL, Helmes поступают не только глупо, но и не этично. Правительству Эстонии надо бы засудить этих халтурщиков.
+9
side2k #
Правительство Эстонии, поди, в доле с этими халтурщиками 8)
–1
aavezel #
Не надо сравнивать чужое правительство с нашим… Не везде однопартийная система «ВиЖ»…
+19
side2k #
Да-да, руководство нашей страны — оно с Планеты Злодеев к нам на Землю заслано.
А эстонцы, да и вообще все остальные — с попилами и откатами незнакомы.
0
Punk_UnDeaD #
И не заинтересованы в подтасовке результатов выборов и сваливании вины.
Никогда.
+7
Rezzet #
Вы что там же одни эльфы, а не то что у нас.
+3
beq #
Наконец-то на хабре адекватный отзыв на политическую тему.
–4
gene4000 #
В Эстонии вообще местами фашистов награждают. Там в правительстве еще похлеще ситуация. Как там говорится: американские подстилки, или типа того.
+4
Rudia #
Любителям PostgreSQL побарабану. Они читали www.opensource.org/licenses/postgresql перед использованием.
+11
kulinich #
Теперь у меня «Helmes» будет ассоциироваться с чудесным танцором из картинки к топику.
0
s0rr0w #
Я такое на каждом углу вижу. Выбор неправильных инструментов, выбор неправильных технологий, отсутствие оптимизаций, непропорциональные по архитектуре системы. Чему удивляться? Это наша реальность!
+14
StopDesign #
Ошибки у всех бывают, но нужно вести себя достойно и честно признать: «да, мы обосрались».
–2
s0rr0w #
Редкий лемминг признается в таком :) Сколько раз вы такое говорили клиентам?
0
selfchief #
а что это так трудно сказать?
+4
leventov #
Что за дурацкая мода называть людей леммингами? Причем любых вообще, например в вашем комментарии лемминг — тот, кто редко признает «да, я обосрался» (т. е. 100% населения).

Можно подумать, на хабре одни супермены сидят
–5
s0rr0w #
Не указывайте мне как кого называть, и я не буду указывать вам, куда идти. :)

Лемминги в моем мировозрении не негативный персонаж, а комичный. Все мы лемминги, даже я.
0
leventov #
Все мы лемминги, даже я.

Слив засчитан
0
s0rr0w #
Уговорили, Д'Артаньян. Вы непременно правы.
НЛО прилетело и опубликовало эту надпись здесь
+3
cosmobot #
как буто кому то инетресна эта мышиная возня

postgresql это отличный инструмент
+5
jiexaspb #
Кстати, с учетом быстрого развития PSQL и подвисшего состояния MySQL, было бы не плохо провести свеженькие тесты на Stable версиях.
0
pasha_golub #
Давайте тесты. Но в любом случае, всегда можно подкрутить настройки для любой платформы.
+3
helions8 #
Я бы не назвал состояние MySQL подвисшим — MariaDB живет и развивается. Возможно, возможно со временем прийдется привыкнуть говорить какое-то другое название вместо «MySQL».
+1
alexeykl #
Интересно то, что план запроса зависит не только от объема данных, но и от их распределения, а предсказание последнего в такой щепетильной теме как выборы — скорее задача политологов. Хотя это QA Helmes не оправдывает никак — им следовало тестировать результат на нескольких полноразмерных выборках с различными распределениями голосов за основных кандидатов.
+37
ionicman #
Эстонннннннцы обвввиняют в зззадержке PgSQL :)
+18
Throwable #
Мы токкка усппеллли ее заппустить а онна уже сваллилласссь!
+12
GloooM #
Надо же как въелся этот стереотип, а ведь они в технологическом плане куда более развиты чем наши медведи и балалайки ))
–5
beq #
Ну-ну ))
+4
immaculate #
Очевидно, что если возникла какая-то проблема, то необходимо найти козла отпущения. Не признаваться же в собственной криворукости.

У меня PostgreSQL на скромном VDS молотит огромные объемы данных во вполне приемлемое время. Хотя над настройками и оптимизацией запросов пришлось попотеть, было прочитано множество презентаций, советов, даже парочка книг.
+3
pasha_golub #
Да там настроек столько, что оптимизировать можно вечно. Типа, собрались мы с мужиками в серверной с рыбой и пивом, и давай ПГ оптимизировать.
+9
Alexeyco #
… да так увлеклись, что про пиво, рыбу и женщин напрочь забыли
+4
pasha_golub #
«Настройка базы PostgreSQL с пивом, рыбами и бабами для профессианалов», издательство bHV Киев
© tesseract
0
Alexeyco #
Тогда уже с пивом, рыбой и без баб ))) это для продвинутых
+1
bagyr #
> статистика подавалась с задержкой на час
Как-то вспомнилась Украина образца 2004 года.
0
pasha_golub #
Да там не час был! Больше.
–3
Punk_UnDeaD #
Не надо грязи!
Потом переголосовали же с такой повышенной честностью, что победитель тех выборов на следующих провалился с треском.
0
pasha_golub #
А я не к тому. Я про задержку. Ведь была же. :)
0
Punk_UnDeaD #
По каждому случаю надо отдельно выяснять, а то всякое может оказаться, от подделки результатов, до обстоятельств непреодолимой силы, когда отчёт из ПГТ в райцентр задерживается.
А сказать потом можно что угодно. Политика дело грязное.
0
pasha_golub #
Если я правильно помню, то предварительные результаты сообщались по телефону (или еще как). А уже с мокрыми печатями довозились отдельно. Так вот задержка, если я опять же правильно помню, была по предварительным результатам.
+1
Punk_UnDeaD #
Вы по телефону когда-нибудь данные собирали? Я вот в армии ежедневно в течении полугода. А отслужил я как раз перед теми выборами.
Задержка на час — это вполне рабочий режим.

Сказать же можно что угодно и обвинить в чём угодно. Что те выборы прекрасно и показали.
0
pasha_golub #
И да, политика — дело грязное!
+4
tassadar_ha #
А что, победитель на одних выборах должен побеждать и на вторых, и третьих, и так далее, до кладбища? Back in the U.S.S.R. какой-то получается.
–4
Punk_UnDeaD #
Настолько утратить поддержку — это надо быть очень плохим президентом, тогда вопрос, кто и почему проголосовал за плохого президента.
+2
tassadar_ha #
Виновных в голосовании за президента, оказавшегося плохим, надеюсь, расстрелять на стадионе?
–5
Punk_UnDeaD #
До американского обкома далековато.
0
tassadar_ha #
Виза уже в процессе!
0
kingoleg #
Про нагрузочное тестирование в Эстонии еще не слышали?
+2
vtv #
Дело не в географическом положении, а в приближенности к власти и «кормушкам».
Skype тоже в Эстонии и работает тоже на PostgreSQL, но они в курсе.
+2
vtv #
Эта статья про Эстонию, а в Латвии сначала вскрылся «ляп» в системе электронного декларирования, который позволял злоумышленникам получять доступ любым документам базы через перебор идентификатора в запросе, а сейчас есть проблемы с системой для переписи населения. Во-первых, эта система не выдерживает нагрузки и постоянно валится или тормозит, а во вторых в ней была (и до сих пор есть, но доступ к ней якобы отслеживается) дыра, которая позволяла через номер паспорта и персональный код человека получить доступ к его анкете. Хоть эти данные и не на каждом углу валяются, но есть у банков, деловых партнёров и т.д. что создаёт возможность злоупотребления.

Резюмируя, пилят везде.
+7
liaren #
Я вот только чего не понял: Эстония — страна с насилением порядка 1.3 млн человек, далее логично предположить, что на 1 голос производится транзакция на один INSERT в базу, чтобы подсчитать суммарное число проголосовавших за каждого из кондидатов тоже 1 SELECT с группировкой по 1 полю…

Таки я чего не понял: это как так надо постараться настроить PostgreSQL, чтобы она слегла при выполнении элементарных запросов на таком относительно небольшом объёме данных? Да я себя на ноуте могу сервак с дефолтными настройками PostgreSQL поднять, который бы с этой нагрузкой в 2 счёта справился, а они… эстонцы — такие эстонцы.
0
xdenser #
нет не так
на каждый голос 1 INSERT
а вот селектов много постоянно — все же хотят знать — «ну как там?»
+1
Greendq #
Всё равно никто не требует показывать графики в реальном времени. А даже если и требовали — существует сотня способов делать подобное без всяких сложностей.
+2
liaren #
На самом деле я это и имел ввиду. Кстати SELECT можно бы и закешировать с обновлением раз в минуту.
+2
daspisch #
Они видимо вообще мимо мануалов прошли, ибо PREPARE замечательная вещь.
+1
guessss_who #
Если учесть популярность запросов типа «ну как там?» (а для этого не надо быть провидцем) — то логично было бы сделать вместо 1 операции вставки сразу корректировку некоей готовой таблицы с итоговыми значениями (суммы по округам, районам и т.п.). Тогда для получения ответа на вопрос «ну как там?» данные выбирались бы из таблицы с несколькими сотнями (ну пусть даже тысячами) записей.
0
pasha_golub #
Хотелось бы услышать позицию самих Helmes с деталями. С меня попкорн.
+1
metalim #
Неделю назад было выступление на devclub.ee про прошедшие выборы. Не Helmes, но Sertifitseerimiskeskus. Видео, для знающих эстонский: anton-arhipov.livejournal.com/185930.html
+2
Greendq #
Я хоть и являюсь адептом другой БД (хотя Постгри из того же лагеря версионников), но полностью согласен с автором поста — глупо сначала выбирать инструмент для решения задачи, а потом валить на него всю вину.

Жаль, что всегда будут люди, которые пытаются решить кривость рук проектировщика крутизной железа.
НЛО прилетело и опубликовало эту надпись здесь
+3
pasha_golub #
Цитата однако :)
+3
vitroot #
Спасибо, от души поржал )))
Эстонцы обвиняют кого-то в медлительности — это пять! :)
–4
vitroot #
> кроме Новой Зеландии
Население Эстоооооонниии: 1,340,122 чел. ( ru.wikipedia.org/wiki/Эстония )
Население Новой Зеландии: 4,377,000 чел. ( ru.wikipedia.org/wiki/Новая_Зеландия )
+4
pasha_golub #
Во-первых,
(ну, может быть, кроме Новой Зеландии)

Во-вторых,
значительно превышает

В-третьих, это перевод.
–6
vitroot #
в четвертых, это все оправдания
+1
beq #
Ничего, плохой танцор — хороший семьянин.
–1
FAT #
image
0
asolntsev #
Если интересно, в этом видео чувак сам сделал точно такую же аппликашку для показа результатов выборов, тоже на PostgreSQL. Засунул в неё столько же случайных голосов, и конечно, всё прекрасно работало.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.