Пользователь
54,2
карма
0,0
рейтинг
11 марта 2011 в 12:48

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

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

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

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

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

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

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

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

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

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

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

(Кроме того, я слышу как апологеты MySQL смеются над нами сейчас. Теперь и мы знаем как оно, быть обвиненными из-за кривизны рук пользователей системы.)
Перевод: Josh Berkus
Павел Голубь @pasha_golub
карма 54,2
рейтинг 0,0
Реклама

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Интересные публикации

Вакансии