AngaraBase: новая HTAP СУБД

AngaraBase — OLTP/HTAP СУБД, написанная с нуля на Rust. Совместима с PostgreSQL по протоколу — работает с psql, JDBC, psycopg2 и стандартными драйверами. UNDO-log MVCC без VACUUM, векторизованный исполнитель с SIMD-батчами — транзакции и аналитика под одним SQL и одним снапшотом, без ETL и второго хранилища. Fail-closed контракты ресурсов, USDT-пробы без рестарта, EXPLAIN с разбивкой по фазам исполнения. Dev preview доступен на angarabase.dev.

https://habr.com/ru/articles/1053076/

#HTAP #СУБД #AngaraBase #Rust #MVCC #бэкап #USDT #eBPF #PostgreSQL #векторизация

AngaraBase: новая HTAP СУБД

Это продолжение цикла статей про нашу СУБД на Rust. Предыдущие были про устройство ядра по подсистемам: Мы знаем как готовить БД. Но индустрия изменилась: что бы я заложил в OLTP-БД с нуля Контракт...

Хабр

MVCC без VACUUM: что нам дал UNDO-лог, какую цену мы заплатили и зачем нам 5 механизмов сборки мусора

Новая статья из цикла про нашу OLTP-СУБД на Rust. С самого начала мы выбрали MVCC на UNDO-логе вместо версионирования в heap, как в PostgreSQL. И годами повторяли свой же лозунг: «нет VACUUM, нет bloat». Оказалось, это правда ровно наполовину. Heap и правда не пухнет от истории версий. Но bloat никуда не делся: он переехал в индексы, в мёртвые слоты и в сам UNDO-лог. А сборка мусора из одного механизма незаметно превратилась в пять, и мы только сводим их к единому координатору. В статье разобрали без прикрас обе стороны. Что UNDO-модель дала: стабильный TID (UPDATE, который не трогает индексы), rollback пропорционально размеру транзакции, аналитику, не дорожающую от write-нагрузки, и AS OF как «машину времени» почти даром. И чем за это платим: главная эксплуатационная цена это долгоживущий снапшот, который молча останавливает очистку для всех. Вопрос к тем, кто эксплуатировал MVCC-базы под нагрузкой: что меньшее зло — блокировать GC ради долгих транзакций или отдавать «snapshot too old»? Любопытно ваше мнение в комментариях.

https://habr.com/ru/articles/1047852/

#undo #mvcc #sql #postgres #субд #rust #vacuum #oltp #htap

MVCC без VACUUM: что нам дал UNDO-лог, какую цену мы заплатили и зачем нам 5 механизмов сборки мусора

Мы пишем реляционную базу данных на Rust. В предыдущих статьях цикла мы разбирали отдельные подсистемы: Buffer Pool с Clock-sweep и изоляцией сканов и векторизованный исполнитель с многоверсионными...

Хабр

Postgres에서 대규모 데이터를 삭제하는 가장 효율적인 방법: DELETE 대신 DROP TABLE 사용하기

Postgres의 DELETE는 물리적 공간을 즉시 반환하지 않고 MVCC로 인한 dead tuple을 생성하여 데이터베이스 성능에 부담을 준다.

🔗 원문 보기

Postgres에서 대규모 데이터를 삭제하는 가장 효율적인 방법: DELETE 대신 DROP TABLE 사용하기

Postgres의 DELETE는 물리적 공간을 즉시 반환하지 않고 MVCC로 인한 dead tuple을 생성하여 데이터베이스 성능에 부담을 준다.

Ruby-News | 루비 AI 뉴스
MVCC in MongoDB with WiredTiger

How WiredTiger implements MVCC under MongoDB - timestamps, snapshot isolation, the history store, write conflicts, and how it compares to PostgreSQL.

Threads of Thought

PostgreSQL MVCC의 동작 원리: 바이트 단위로 분석하기

PostgreSQL의 MVCC는 모든 튜플 헤더에 포함된 t_xmin과 t_xmax 필드를 사용하여 각 트랜잭션의 데이터 가시성을 결정한다.

🔗 원문 보기

PostgreSQL MVCC의 동작 원리: 바이트 단위로 분석하기

PostgreSQL의 MVCC는 모든 튜플 헤더에 포함된 t_xmin과 t_xmax 필드를 사용하여 각 트랜잭션의 데이터 가시성을 결정한다.

Ruby-News | 루비 AI 뉴스

Хотелось пополнить резюме, а написала LSM-движок с MVCC, снапшотами и Value Log на чистом Go

Неделю назад я не думала, что буду писать базу данных . Начиналось всё с банального «хочу строчку в резюме». А получилось: LSM‑дерево, MVCC, снапшоты, Value Log, WAL, компакшн, Column Families и даже GC. Всё на чистом Go, без cgo. Плюс gRPC, REST, CLI и Docker из коробки. Рассказываю, как собирала конструктор, где наступала на грабли и почему fsync — это боль, и в конце даже небольшая любовная драма в CLI Узнать, что у меня получилось

https://habr.com/ru/articles/1032208/

#scoriadb #lsmtree #mvcc #keyvalue_database #go #транзакции #column_families

Хотелось пополнить резюме, а написала LSM-движок с MVCC, снапшотами и Value Log на чистом Go

Введение: Неделю назад я не думала писать такую базу данных Начиналось всё с банального желания пополнить свое резюме парой строчек. Листала сайты с разными проектами, чтобы...

Хабр
How MVCC Works and Why Databases Use It

Multi-version concurrency control lets readers and writers proceed without blocking each other. A breakdown of the core mechanics, and how PostgreSQL, CockroachDB, and MySQL InnoDB implement them.

Threads of Thought
PostgreSQLの並列処理とJIT ――実行計画からひも解く処理特性と導入効果 | gihyo.jp

本稿では、リソースを効率的に活用する「パラレルクエリ」と、クエリ評価をネイティブコード化する「JITコンパイル」、さらにメンテナンスを劇的に速める「パラレルVACUUM」を紹介します。理論と実行計画の両面から高速化の真髄に迫ります。

gihyo.jp

I'm sure they believe God cured him, and the pedophile president.

Mountain View Community Church ( #MVCC ), a #Virginia multisite church affiliated with the Southern Baptist Convention ( #SBC ), is coming under scrutiny for employing a man convicted of child sex abuse.
https://churchleaders.com/news/2214379-joshua-bowen-statutory-rape-sbc-church.html

SBC Church Hired a Convicted Sex Offender as Campus Director. Now It May Face Disfellowship.

Joshua Bowen, director of Mountain View Community Church’s campus in Orange, Virginia, was convicted of statutory rape in 2005.

ChurchLeaders

Как я проектирую OLTP-БД с нуля: принципы, trade-off'ы и архитектурные решения

Почему эксплуатация современных баз данных всё чаще напоминает сборку сложного карточного домика, я уже разбирал в прошлых статьях. Теперь самое интересное: как построить движок, чтобы этих проблем избежать. В этой статье я открываю капот своей OLTP-базы данных, которую пишу с нуля на Rust. Это не обзор готового коробочного решения, а честный рассказ про инжиниринг на раннем этапе. Я покажу, как абстрактные идеи вроде «fail-closed контрактов» превращаются в работающий код, почему я выбрал UNDO-log MVCC вместо Multi-version Heap и зачем всё это упаковывается в PostgreSQL-wire протокол. Архитектура ещё подвижна, и сейчас — лучшее время, чтобы обсудить её с теми, кто каждый день эксплуатирует БД в продакшене. Заглянуть под капот движка

https://habr.com/ru/articles/1014098/

#базы_данных #СУБД #архитектура_бд #Rust #OLTP #MVCC #undolog #PostgreSQL #разработка_субд #system_design

Как я проектирую OLTP-БД с нуля: принципы, trade-off'ы и архитектурные решения

В двух предыдущих статьях я писал о том, почему эксплуатация современных баз данных всё чаще превращается в борьбу не с данными, а со сложностью самой системы: Мы знаем как готовить БД. Но индустрия...

Хабр