Плохому танцору…

http://it.toolbox.com/blogs/database-soup/the-bad-workman-blames-his-tools-44869
  • Перевод
Многие из вас читали о последних эстонских выборах. И вот интересные факты.

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

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

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

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

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

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

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

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

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

(Кроме того, я слышу как апологеты MySQL смеются над нами сейчас. Теперь и мы знаем как оно, быть обвиненными из-за кривизны рук пользователей системы.)
Метки:
Поделиться публикацией
Похожие публикации
Реклама помогает поддерживать и развивать наши сервисы

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

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

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

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

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

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

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

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

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

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

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

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

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