Пользователь
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
карма
56,2
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

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

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

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

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