Notice: file_put_contents(): Write of 8097 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 12288 of 20385 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
Алло, это отладочная?@gdb_dbg P.243
GDB_DBG Telegram 243
После превого моего поста про кранчи мнения комментаторов разделились: половина посчитала, что я описываю провал менеджмента, вторая – что именно так закаляется сталь, так что все хорошо: классический пример пути через тернии к звездам. Я же в свою очередь продолжаю считать, что это был единственный путь вообще, который при этом да, помог мне отлично прокачать навыки (почти не надорвавшись).

Но, как я уже говорил в конце того поста, не все кранчи одинаково хорошие. В этот раз расскажу про кранч второй, корпоративный.

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



Итак, 2019 год, зима. Прошло три года с событий предыдущего поста, я уже довольно матерый инженер, который многое повидал и отладил. Мы всего несколько месяцев, как присоединились к огромной корпорации и всячески пытаемся доказать, что мы очень классные и полезные. И вот поиски места, где можно было бы продемонстрировать свою крутость, завели нас в кодовую базу некоторого рантайма... в котором (какая ирония!) GC оказался довольно консервативен и не весь возможный мусор собирал. Как я уже много раз писал, консервативность GC – это в целом то нормальная ситуация, спека не обещает вам вообще ничего в этом плане, так что мертвые объекты имеют полное право в памяти задерживаться. Но вот так уж вышло, что клиентам именно этот консерватизм не подходил, вот кровь из носа нужно было его победить, иначе OOM.

Задача то хорошая, грамотно вплести необходимую фичу в остальной сборщик мусора – это было приятное с архитектурной точки зрения дело, ну и определенный challenge, т.е. это круто. Но была маааленькая такая проблемка. Когда нам сообщили, что сделать с нуля новую подсистему в GC – это обязательный пункт программы, на дворе было 15 декабря. По факту это означало, что у нас было две недели на все про все. Через две недели нужно было шипнуть.

Экстренно была сформирована "рабочая группа" из самых боевых инженеров, которым нужно было сделать невозможное. Да, я до сих пор считаю, что сделать, протестировать и шипнуть хоть сколько-нибудь нетривиальную фичу в GC за 2 недели невозможно, а тут целый новый подвид GC, который должен работать на проде. У этой рабочей группы каждый день были собрания, где вместе с начальством (в смысле со старшими и опытными инженерами, их вклад был очень существенен) брейнштормили архитектуру, обсуждали проблемы и смотрели, что идет не так.

Архитектуру то мы придумали довольно быстро, первую версию тоже сделали оперативно. В сумме на это ушло где-то около недели. Но дальше началось что? Правильно, долгая и изнурительная отладка. То часть мусора продолжала застревать в памяти (и приложение, спустя сколько-то десятков минут работы, падало по OOM), то мы наблюдали страшные спорадичные развалы, которые крэшали весь рантайм. А вокруг – канун нового года, елки, гирлянды, счастливые люди и вот это все.

Мозгу свойственно выкидывать детали из темных периодов жизни, чтобы не травмировать себя воспоминаниями, но парочка ярких образов у меня все-таки сохранилась ↓

#дух_машины
👍8



tgoop.com/gdb_dbg/243
Create:
Last Update:

После превого моего поста про кранчи мнения комментаторов разделились: половина посчитала, что я описываю провал менеджмента, вторая – что именно так закаляется сталь, так что все хорошо: классический пример пути через тернии к звездам. Я же в свою очередь продолжаю считать, что это был единственный путь вообще, который при этом да, помог мне отлично прокачать навыки (почти не надорвавшись).

Но, как я уже говорил в конце того поста, не все кранчи одинаково хорошие. В этот раз расскажу про кранч второй, корпоративный.

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



Итак, 2019 год, зима. Прошло три года с событий предыдущего поста, я уже довольно матерый инженер, который многое повидал и отладил. Мы всего несколько месяцев, как присоединились к огромной корпорации и всячески пытаемся доказать, что мы очень классные и полезные. И вот поиски места, где можно было бы продемонстрировать свою крутость, завели нас в кодовую базу некоторого рантайма... в котором (какая ирония!) GC оказался довольно консервативен и не весь возможный мусор собирал. Как я уже много раз писал, консервативность GC – это в целом то нормальная ситуация, спека не обещает вам вообще ничего в этом плане, так что мертвые объекты имеют полное право в памяти задерживаться. Но вот так уж вышло, что клиентам именно этот консерватизм не подходил, вот кровь из носа нужно было его победить, иначе OOM.

Задача то хорошая, грамотно вплести необходимую фичу в остальной сборщик мусора – это было приятное с архитектурной точки зрения дело, ну и определенный challenge, т.е. это круто. Но была маааленькая такая проблемка. Когда нам сообщили, что сделать с нуля новую подсистему в GC – это обязательный пункт программы, на дворе было 15 декабря. По факту это означало, что у нас было две недели на все про все. Через две недели нужно было шипнуть.

Экстренно была сформирована "рабочая группа" из самых боевых инженеров, которым нужно было сделать невозможное. Да, я до сих пор считаю, что сделать, протестировать и шипнуть хоть сколько-нибудь нетривиальную фичу в GC за 2 недели невозможно, а тут целый новый подвид GC, который должен работать на проде. У этой рабочей группы каждый день были собрания, где вместе с начальством (в смысле со старшими и опытными инженерами, их вклад был очень существенен) брейнштормили архитектуру, обсуждали проблемы и смотрели, что идет не так.

Архитектуру то мы придумали довольно быстро, первую версию тоже сделали оперативно. В сумме на это ушло где-то около недели. Но дальше началось что? Правильно, долгая и изнурительная отладка. То часть мусора продолжала застревать в памяти (и приложение, спустя сколько-то десятков минут работы, падало по OOM), то мы наблюдали страшные спорадичные развалы, которые крэшали весь рантайм. А вокруг – канун нового года, елки, гирлянды, счастливые люди и вот это все.

Мозгу свойственно выкидывать детали из темных периодов жизни, чтобы не травмировать себя воспоминаниями, но парочка ярких образов у меня все-таки сохранилась ↓

#дух_машины

BY Алло, это отладочная?


Share with your friend now:
tgoop.com/gdb_dbg/243

View MORE
Open in Telegram


Telegram News

Date: |

Private channels are only accessible to subscribers and don’t appear in public searches. To join a private channel, you need to receive a link from the owner (administrator). A private channel is an excellent solution for companies and teams. You can also use this type of channel to write down personal notes, reflections, etc. By the way, you can make your private channel public at any moment. Telegram offers a powerful toolset that allows businesses to create and manage channels, groups, and bots to broadcast messages, engage in conversations, and offer reliable customer support via bots. Matt Hussey, editorial director at NEAR Protocol also responded to this news with “#meIRL”. Just as you search “Bear Market Screaming” in Telegram, you will see a Pepe frog yelling as the group’s featured image. Add up to 50 administrators A new window will come up. Enter your channel name and bio. (See the character limits above.) Click “Create.”
from us


Telegram Алло, это отладочная?
FROM American