Мне в личку написал подписчик и тоже рассказал забавную историю об этом деде из ИНГ Банка
"
Так вот, про Евразийский инг банк я тоже писал тру стори. И вы не представляете, насколько наши истории похожи)) :
Мне написал рекрутер из Евразийского банка.
Общение происходило исключительно по телефону и почте. Мне скинули вакансию на почту в формате doc. В письме также было указано, что, если сообщение адресовано не мне - немедленно удалить. Содержимое никому не передавать (ага, щас).
Искали (возможно ищут) человека, который будет делать им внутреннюю bi систему. Для этого им очень нужен дата инженер. Нужно знать Postgres, уметь писать ETL скрипты, возможно отрисовывать виджеты.
Пообщался по телефону с hr, позвала на тех собес. ВОТ ТУТ КРИНЖ И ПОЛИЛСЯ.
Я пришел раньше всех (советую так делать), потом подключился некий гражданин без камеры. Никнейм был такой:
"CTO EA (German)" (Запомните, если в конфе увидите - отключайтесь)
Я, по простоте своей душевной, говорю: "Привет, как тебя зовут, к сожалению, не вижу имени".
Отвечает суровый голос (без ответного привет): "Герман, там же написано..."
Только тогда до меня дошло, что German это не немец, это имя человека...
Потом включается камера - и до меня доходит, что привет было неуместно, ему лет 70 бля...
Дальше подключается hr, говорю про опыт, с чем работал. Немец кивает, угукает. В конце говорит: "Ладно, это все понятно. А что в Postgres происходит на уровне файлов, когда ты команду INSERT выполняешь?"
Если вы не ответили на вопрос - добро пожаловать в клуб. Не переживайте - этот вопрос вы больше никогда не услышите.
После моего невнятного ответа старый немец сказал: "Ну теперь точно все понятно, думаю, можно заканчивать"
"
———
Так что будьте готовы. Если к вам на собес подключается 70-летний CTO German, то будет очень весело 💀
И на всякий случай:
А что в Postgres происходит на уровне файлов, когда ты команду INSERT выполняешь?
PostgreSQL не пишет строку сразу напрямую в файл таблицы.
Он находит страницу с местом, добавляет туда новую версию строки с xmin текущей транзакции и меняет страницу в shared_buffers. Если есть индексы, их страницы тоже обновляются.
Одновременно изменение записывается в WAL. При COMMIT на диск сначала сбрасывается WAL, а изменённые страницы таблицы и индексов могут попасть в файлы позже - через background writer или checkpoint.
Если сервер упадёт раньше, PostgreSQL восстановит изменения из WAL.
it пингвин | data engineer 🐧
