Loser story
ОтветПривет, мы частично заопенсорсили текущий код нашего проекта -- SereneDB. Это оказалось тяжелее чем хотелось бы :) https://github.com/serenedb/serenedb
Большую часть ближайших тасок будем делать в опенсорсе. В целом проект ещё далековат от релизного состояния, но "бета" с первыми публичными бенчмарМы тут написали небольшой пост про свой iobuf который юзаем для реализации postgres протокола:
https://www.serenedb.com/blog/io-buffer
tldr: как мне кажется ключевых моментов три
1) он chunked => отсутствуют большие аллокации/копии данных
2) он простое wait-free
3) в него можно записать что-то потом (uncommitted, в блоге написано подробнее), это важно чтобы сначала сериализовать что-то и только потом записать размер этого в префиксе.
Вообще изначально думали заюзать folly iobuf или absl cord, но коллега очень не хотел мьютекс в таком простом кейсе добавлять :)
Собственно код самого буфера и проекта по ссылке
https://github.com/serenedb/serenedb
Буду рад всем кто поддержит нас с помощью PR/issue/звёздочек!
15 · 2.6K ·