avatar
Миша пишет код
@misha_writes_code
13.11.2023 17:09
Миша пишет код Фото: Понравилась мысль, что важно понимать, как устроена технология, с которой работаешь. В примере из видео рассматривалась гугловская BigTable в которой можно выполнить транзакцию, меняющую данные в разных колонках одной строки, но нельзя сделать транзакцию, которая изменяет разные строки в одной колонке. С точки зрения базы данных (в данном случае key-value базы) это может звучать странно. Но если понимать, как она устроена и для какого использования проектировалась, то становится понятно, что база данных шардируется построчно и транзакции внутри строк реализовать просто, в то время как для транзакций по колонкам нужно уже применять дополнительные механизмы для синхронизации. Поэтому данное ограничение помогает выиграть, например, в скорости чтения и изменения строки, что для key-value базы звучит более важно, чем умение атомарно изменить столбец. База данных выполняет задачи, для которых была сделана, поэтому если в ней нет функционала или гарантий, которые нужны для конкретной задачи, то это не значит, что "разрабы тупые", а свидетельствует лишь о неверном выборе технологии для решения задачи. Часто студенты злятся, что в универе им приходится разбираться, как работает ASM, что за системные вызовы и как устроено ядро, хотя на работе скорее всего не придется написать ни единой строчки на языке ассемблера. Однако, на самом деле цель занятий не "научиться писать на ассемблере", а понять, как устроены языки программирования изнутри и как они взаимодействуют с системой. А это знание уже может оказаться крайне полезным в работе.
Так к чему это я?
(Да я растянул одну мысль на два дня и что вы мне сделаете)

Нашел супертуториал, как сделать свой redis: https://build-your-own.org/redis/

Очень советую хотя бы просто глазами пробежаться, тут есть все Никита Стас Гена сокеты, epoll, event loop.

Интересно + подробно объяснено)
build-your-own.org
Build Your Own Redis with C/C++ | Build Your Own Redis with C/C++
Build Your Own Redis with C/C++ | Learn network programming and data structures
6
👍 1
😱 1
2 9 352

Обсуждение 2

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram