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

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

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

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

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

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

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

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

М.

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

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

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

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

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

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

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

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

»
10 лет назад, скрыть # |
 
Проголосовать: нравится +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?

»
10 лет назад, скрыть # |
← 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.

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

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

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

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

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

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

»
10 лет назад, скрыть # |
 
Проголосовать: нравится +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.

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

Don't get sad :(

We love you <3

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

Hey don't worry we all make mistakes :)

»
10 лет назад, скрыть # |
← 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.

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

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

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

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