Блог пользователя MikeMirzayanov

Автор MikeMirzayanov, 8 лет назад, По-русски

Сегодня, 2-го июня 2016-го года, произошла техническая накладка, которую я запомню надолго. Неудачным образом сложились сразу несколько обстоятельств, что привело к серьезному сбою в работе системы Полигон.

Дело в том, что в середине мая Полигон был перенесен на серверы, расположенные в Mail.Ru. Для осуществления переноса почти без даунтайма (а данных немало, около терабайта) была настроена утилита lsyncd, которая оперативно проталкивала изменения со старого сервера на новый. Ей же осуществляется один из вариантов бэкапа данных.

Сегодня случился ребут старого сервера, который привел к незапланированному запуску lsyncd и как результат — синхронизации данных со старого сервера опять на новый. В результате данные, находящиеся в файловой системе, были откатаны до версии на момент переноса (13 мая). Значительная неудача состоит в том, что в отличие от старого сервера, где система бэкапов была настроена хорошо и давно, на новом сервере я оперативно успел настроить тот же lsyncd, который не помогает в случае удаления файлов (так как форсирует удаление и на реплике). Очевидно, не помог RAID-1, который мы используем всюду для хранения данных.

Как результат, сделанные в трехнедельный период файлы изменений были утеряны. Некоторая информация (условия задач, данные о запусках и немного еще) сохраняется и в базе данных, поэтому доступна.

В экстренном порядке ночью мной была реализована специальная ссылка "Scraps" для задач, чтобы выкачивать архив с доступными данными. Если задача была использована в инфраструктуре Codeforces, то её пакеты остались в кэше тестирующей системы и доступны в том же архиве.

Мне очень паршиво осознавать, что моё недостаточное внимание к деталям привело к таким последствиям. Я отлично помню черный день Codeforces — и в результате него многое было пересмотрено (всюду зеркальные дисковые массивы, реплики и бэкапы). К сожалению, в этот раз после переезда на новое железо я оперативно не вернул все используемые скрипты и вот результат. Приношу свои глубочайшие извинения авторам задач.

М.

  • Проголосовать: нравится
  • +589
  • Проголосовать: не нравится

»
8 лет назад, # |
  Проголосовать: нравится +135 Проголосовать: не нравится

That's why you shouldn't trust polygon and make your own backups.

»
8 лет назад, # |
  Проголосовать: нравится +32 Проголосовать: не нравится

Maybe we can utilize copy-on-write snapshots to eliminate this kind of mistake?

»
8 лет назад, # |
  Проголосовать: нравится -29 Проголосовать: не нравится

02.06.2016 — черный день Polygon

Ну ясно же куда ведут следы!!

»
8 лет назад, # |
  Проголосовать: нравится +58 Проголосовать: не нравится

Thank you so much for "Scraps". It contains statements (even one editorial I've written recently) and scripts. Files with codes (solutions, generators, validators) I store on my computer, so I think I lost literally only tags marked in some problems.

But yeah, back-ups are crucial for Polygon. I hope that nobody lost a lot of work, so the main effect of this event is that Polygon will be safer and thus better.

Right now it's impossible to hit "Start" or "Continue" next to any problem in Polygon (hitting it leads to an empty page). When will it be available?

»
8 лет назад, # |
Rev. 2   Проголосовать: нравится +33 Проголосовать: не нравится

Do having something like git local repository for polygon can help us , speed up our works and prevent such events ?

behind its speed for users , in such bad events we may lost Invocations,Packages,... but we are always sure that last version of important codes are available in our computer and everything can be recreated.

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится +56 Проголосовать: не нравится

    Using my client you can automatically synchronize most of files between polygon and local computer. It's not as good solution, as local git, but anyway.

  • »
    »
    8 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +26 Проголосовать: не нравится

    Why downvotes?

    Integrating polygon with git server would be great.

    • It will support conflicts resolution (finally).

    • It will be possible to work on problems without network.

    • Events like this will be impossible.

»
8 лет назад, # |
  Проголосовать: нравится +86 Проголосовать: не нравится

Я что-то не понимаю, а где шутка про Mail.ru?

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится +82 Проголосовать: не нравится

    yarrr еще до поста не добрался :)

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится +75 Проголосовать: не нравится

    Конкретно в этом случае Mail.Ru вообще не при чем. Размещенные серверы работают как часы, канал наружу и между ними отличный. Так что большое спасибо Mail.Ru!

»
8 лет назад, # |
Rev. 2   Проголосовать: нравится +91 Проголосовать: не нравится

You can take all changes from e-mail if you don't have it in Scraps.

»
8 лет назад, # |
  Проголосовать: нравится +24 Проголосовать: не нравится

Как можно восстановить задачу, если есть standart package скачанный?

»
8 лет назад, # |
  Проголосовать: нравится +24 Проголосовать: не нравится

Should we create new problems and copy the statements, etc. from the "Scraps" or should we wait to be able to edit the problems again? Because right now clicking Start in a corrupted problem leads to a blank page.

»
8 лет назад, # |
  Проголосовать: нравится +88 Проголосовать: не нравится

Don't get sad :(

We love you <3

»
8 лет назад, # |
  Проголосовать: нравится +24 Проголосовать: не нравится

Hey don't worry we all make mistakes :)

»
8 лет назад, # |
Rev. 2   Проголосовать: нравится -67 Проголосовать: не нравится

+428 upvotes!! really? I thought people can get sad or even angry with such loss. Is there any secret VoteForces working on some blogs?

Never mind Mike, I accept your apology, so won't give you downvote this time.

  • »
    »
    8 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +39 Проголосовать: не нравится

    Do you really think that Mike would cheat to get upvotes? He isn't even being shown in table of top contributors, although he has largest contribution. All community of codeforces really empathize with him. And less that everyone can do is to upvote this post or write a positive comment to cheer him up. That's why this post got so many upvotes, I think.

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    out of curiosity why are you unrated for 6 months and what is your purpose?

»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Сейчас у меня при открытии одной задачи открывается пустая страница. Это исправится или начинать её заного под новым номером?

»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

А ещё, хотя возможно это не связано, ejudge перестал импортировать задачи с polygon'а, не может залогиниться. У меня одно так или это пока нормально?