Forwarded from iZhikov.public
Четвертый выпуск получился самым сложным по организации. Поругались до трех раз, переделали претезентацию два раза, форкнули подкаст - надеюсь наши усилия не пропадут даром и вам зайдет.
В этом выпуске мы даже писали код! И даже запускали его!!!
https://www.youtube.com/watch?v=ojtNJX0ik2I
В этом выпуске мы даже писали код! И даже запускали его!!!
https://www.youtube.com/watch?v=ojtNJX0ik2I
YouTube
Программирование распределённых отказоустойчивых алгоритмов с использованием Rule-Based подхода
#distributed #ignite #concurrency
Обсуждаем работу "Experience with Rules-Based Programming for Distributed, Concurrent, Fault-Tolerant Code" [1].
Работа предлагает подход к программированию распределённых алгоритмов, который упрощает написание и поддержку…
Обсуждаем работу "Experience with Rules-Based Programming for Distributed, Concurrent, Fault-Tolerant Code" [1].
Работа предлагает подход к программированию распределённых алгоритмов, который упрощает написание и поддержку…
🔥5
Если когда-то возникал вопрос "Как ConsumerGroup'ы работают в Кафке?" - то вот ответ:
https://www.youtube.com/watch?v=MmLezWRI3Ys
https://www.youtube.com/watch?v=MmLezWRI3Ys
YouTube
"The Magical Rebalance Protocol of Apache Kafka" by Gwen Shapira
Very few people know that inside's Apache Kafka's binary protocol for publishing and retrieving messages hides another protocol - a generic, extensible protocol for managing work assignments between multiple instances of a client application.
When multiple…
When multiple…
👍3
db.links
Если когда-то возникал вопрос "Как ConsumerGroup'ы работают в Кафке?" - то вот ответ: https://www.youtube.com/watch?v=MmLezWRI3Ys
А я, в свое время, чинил конкаррент багу в этом протоколе - https://github.com/apache/kafka/commit/00374c3ddf6c4ecc96f58c6685fd107500b976cd
GitHub
KAFKA-8104: Consumer cannot rejoin to the group after rebalancing (#7… · apache/kafka@00374c3
…460)
This PR contains the fix of race condition bug between "consumer thread" and "consumer coordinator heartbeat thread". It reproduces in many production env...
This PR contains the fix of race condition bug between "consumer thread" and "consumer coordinator heartbeat thread". It reproduces in many production env...
🔥10
Сейчас занимаюсь исследованием проектов которые реализуют идеи Amazon Aurora (Cloud Native Postgres) - NeonDB - решение на слуху, пока не понял насколько готовое.
Исходники выглядят неплохо, есть тех.документация, RFC.
Дизайн описан в статье в их блоге - https://neon.tech/blog/architecture-decisions-in-neon
Исходники выглядят неплохо, есть тех.документация, RFC.
Дизайн описан в статье в их блоге - https://neon.tech/blog/architecture-decisions-in-neon
Neon
Architecture decisions in Neon - Neon
The idea behind Neon is to create a new serverless Postgres service with a modern cloud-native architecture. When building for the cloud it usually is a good idea to separate storage and compute. For operational databases such design was first introduced…
👍4
На записи подкаста узнал про существование redbook "Readings in Database Systems".
Сборник того что нужно прочитать по СУБД(время переименовывать канал? 🙂 ).
Стоунбрейкер плохого не посоветует
http://www.redbook.io/pdf/redbook-5th-edition.pdf
У соавторов в CV также есть список пейперов, которые выигрывали награды VLDB и других уважаемых изданий.
Придется изучать
Сборник того что нужно прочитать по СУБД(время переименовывать канал? 🙂 ).
Стоунбрейкер плохого не посоветует
http://www.redbook.io/pdf/redbook-5th-edition.pdf
У соавторов в CV также есть список пейперов, которые выигрывали награды VLDB и других уважаемых изданий.
Придется изучать
👍6
Forwarded from iZhikov.public
Пятый выпуск!
Мы разогнались и не поместились в 2ч)
Про ARIES можно разговаривать долго.
Приятного просмотра)
https://www.youtube.com/watch?v=GzZGlZk-Qy8
Мы разогнались и не поместились в 2ч)
Про ARIES можно разговаривать долго.
Приятного просмотра)
https://www.youtube.com/watch?v=GzZGlZk-Qy8
YouTube
ARIES - алгоритм восстановления СУБД после сбоев. Часть 1
#consistency #ignite #algorithm #dbms
В этом выпуске мы начинаем обсуждать ARIES [1] - алгоритм восстановления СУБД в консистентное состояние после сбоев. Это один из фундаментальных алгоритмов [2] мира СУБД. В первой части разбираем контекст и цели алгоритма.…
В этом выпуске мы начинаем обсуждать ARIES [1] - алгоритм восстановления СУБД в консистентное состояние после сбоев. Это один из фундаментальных алгоритмов [2] мира СУБД. В первой части разбираем контекст и цели алгоритма.…
❤6
https://www.youtube.com/watch?v=k2ccFXWdBN4 - хороший доклад.
Андрей Фомичев - руководитель YDB рассказывает как у них сделан MVCC для распределенной OLTP СУБД.
Андрей Фомичев - руководитель YDB рассказывает как у них сделан MVCC для распределенной OLTP СУБД.
YouTube
YDB: мультиверсионность в распределенной базе / Андрей Фомичев (Яндекс)
Приглашаем на конференцию Saint HighLoad++ 2025, которая пройдет 23 и 24 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
HighLoad++ Foundation 2022
Презентация и тезисы: https://highload.ru/fo…
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
HighLoad++ Foundation 2022
Презентация и тезисы: https://highload.ru/fo…
👍5
Forwarded from iZhikov.public
Выпуск #6 - второй про Aries, и это не конец! Еще и третья часть будет!
https://youtu.be/xuA37cve074?si=Ep30JqbKWou3ygBB
https://youtu.be/xuA37cve074?si=Ep30JqbKWou3ygBB
YouTube
ARIES - алгоритм восстановления СУБД после сбоев. Часть 2
#consistency #ignite #algorithm #dbms
В этом выпуске мы продолжаем обсуждать ARIES [1] - алгоритм восстановления СУБД в консистентное состояние после сбоев. Обсудили следующие 2 главы: Overview of ARIES и Data Structures.
[1] cs.stanford.edu/people/ch…
В этом выпуске мы продолжаем обсуждать ARIES [1] - алгоритм восстановления СУБД в консистентное состояние после сбоев. Обсудили следующие 2 главы: Overview of ARIES и Data Structures.
[1] cs.stanford.edu/people/ch…
🐳2🔥1
cidr_lakehouse.pdf
735.8 KB
Рекомендации от Databricks и других умных ребят как строить современное хранилище данных.
Кажется, что все крупные игроки уже так делают, хотя пейперу всего 3 года.
Пейпер легко читается - можно подчерпнуть некторые идеи.
Кажется, что все крупные игроки уже так делают, хотя пейперу всего 3 года.
Пейпер легко читается - можно подчерпнуть некторые идеи.
🔥8
Продолжаем с классикой - "Calvin: Fast Distributed Transactions
for Partitioned Database Systems":
https://www.cs.yale.edu/homes/thomson/publications/calvin-sigmod12.pdf
СУБД которая реализована по принципам из статьи - YDB.
TL;DR
The essence of Calvin lies in separating the system into three separate layers of processing:
• The sequencing layer (or “sequencer”) intercepts transactional inputs and places them into a global transactional input
sequence—this sequence will be the order of transactions to
which all replicas will ensure serial equivalence during their
execution. The sequencer therefore also handles the replication and logging of this input sequence.
• The scheduling layer (or “scheduler”) orchestrates transaction execution using a deterministic locking scheme to guarantee equivalence to the serial order specified by the sequencing layer while allowing transactions to be executed concurrently by a pool of transaction execution threads. (Although
they are shown below the scheduler components in Figure 1,
these execution threads conceptually belong to the scheduling layer.)
• The storage layer handles all physical data layout. Calvin
transactions access data using a simple CRUD interface; any
storage engine supporting a similar interface can be plugged
into Calvin fairly easily.
Такой дизайн накладывает ограничение:
All transactions are therefore required to declare their full read/write
sets in advance;
Но есть трюки что бы егопочти обойти.
for Partitioned Database Systems":
https://www.cs.yale.edu/homes/thomson/publications/calvin-sigmod12.pdf
СУБД которая реализована по принципам из статьи - YDB.
TL;DR
The essence of Calvin lies in separating the system into three separate layers of processing:
• The sequencing layer (or “sequencer”) intercepts transactional inputs and places them into a global transactional input
sequence—this sequence will be the order of transactions to
which all replicas will ensure serial equivalence during their
execution. The sequencer therefore also handles the replication and logging of this input sequence.
• The scheduling layer (or “scheduler”) orchestrates transaction execution using a deterministic locking scheme to guarantee equivalence to the serial order specified by the sequencing layer while allowing transactions to be executed concurrently by a pool of transaction execution threads. (Although
they are shown below the scheduler components in Figure 1,
these execution threads conceptually belong to the scheduling layer.)
• The storage layer handles all physical data layout. Calvin
transactions access data using a simple CRUD interface; any
storage engine supporting a similar interface can be plugged
into Calvin fairly easily.
Такой дизайн накладывает ограничение:
All transactions are therefore required to declare their full read/write
sets in advance;
Но есть трюки что бы его
👍6
db.links
Продолжаем с классикой - "Calvin: Fast Distributed Transactions for Partitioned Database Systems": https://www.cs.yale.edu/homes/thomson/publications/calvin-sigmod12.pdf СУБД которая реализована по принципам из статьи - YDB. TL;DR The essence of Calvin…
https://www.youtube.com/watch?v=8AR1u5OZIm8 - на HighLoad был доклад с описанием реализации Calvin с точностью до тех примитивов что есть в Яндексе.
YouTube
Распределенные транзакции в YDB / Семён Чечеринда (Яндекс)
Приглашаем на конференцию Saint HighLoad++ 2025, которая пройдет 23 и 24 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
При поддержке AvitoTech мы впервые публикуем все видео с HighLoad++ 2019…
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
При поддержке AvitoTech мы впервые публикуем все видео с HighLoad++ 2019…
👍6
https://pdos.csail.mit.edu/6.824/papers/spanner.pdf - еще один, уже классический, подход по реализации консистентности в распределенной СУБД - "Spanner: Google’s Globally-Distributed Database".
Ребята из гугла придумали TrueTime API - он предоставляет время с некоторой точностью и на основе этого спроектировали MVCC который хорошо скейлится.
Ребята из гугла придумали TrueTime API - он предоставляет время с некоторой точностью и на основе этого спроектировали MVCC который хорошо скейлится.
👍3
Еще немного про распределенные траназкции. Отличный доклад с Hydra 2022 - Артем Алиев в немного провокационной и слегка фактически неверной манере обозревает подходы к реализации распределенных транзакций.
Доклад стоит глядеть всем прикладным разработчикам, которые собирают "поменять PG на распределенную базу" - что бы осознать сколько это стоит в усилиях, изучении особенностей и переписывании прикладного кода.
https://www.youtube.com/watch?v=lHeEBBSe208
Доклад стоит глядеть всем прикладным разработчикам, которые собирают "поменять PG на распределенную базу" - что бы осознать сколько это стоит в усилиях, изучении особенностей и переписывании прикладного кода.
https://www.youtube.com/watch?v=lHeEBBSe208
YouTube
Artem Aliev — Distributed transactions implementation trade-offs
About Hydra conference: https://jrg.su/6Cf8RP
— —
This is educational first speech. Let's see why ACID transaction properties are important and how they are implemented in distributed databases with sharding and replication. What about geo-distributed databases?…
— —
This is educational first speech. Let's see why ACID transaction properties are important and how they are implemented in distributed databases with sharding and replication. What about geo-distributed databases?…
👍6
Forwarded from iZhikov.public
Выпуск #7 - третий про ARIES. Доразобрали все на что хватило сил.
Тема супер обширная - много чего есть еще разобрать и осознать.
https://www.youtube.com/watch?v=zUIuZQBaasY
Тема супер обширная - много чего есть еще разобрать и осознать.
https://www.youtube.com/watch?v=zUIuZQBaasY
YouTube
ARIES - алгоритм восстановления СУБД после сбоев. Часть 3
#consistency #ignite #algorithm #dbms
В этом выпуске мы заканчиваем обсуждать ARIES [1] - алгоритм восстановления СУБД в консистентное состояние после сбоев. Рассмотрели главы 5 и 6: Normal processing и Restart processing. После чего обсуждали специфику…
В этом выпуске мы заканчиваем обсуждать ARIES [1] - алгоритм восстановления СУБД в консистентное состояние после сбоев. Рассмотрели главы 5 и 6: Normal processing и Restart processing. После чего обсуждали специфику…
🔥4
Forwarded from iZhikov.public
Новый выпуск!
#8 - В этот раз решили не брать совсем уж хардкорную тему. Разобрали хороший доклад Стоунбрейкера про принципы работы с данными. Облака, дата центры, безопасность и вот это вот все.
https://www.youtube.com/watch?v=bQ9rTsv6VMM
#8 - В этот раз решили не брать совсем уж хардкорную тему. Разобрали хороший доклад Стоунбрейкера про принципы работы с данными. Облака, дата центры, безопасность и вот это вот все.
https://www.youtube.com/watch?v=bQ9rTsv6VMM
YouTube
Top 10 Big Data Blunders от Майкла Стоунбрейкера
Обсуждаем выступление Майкла Стоунбрейкера 2019 года [1], посвящённое ошибкам, которые совершают компании при работе с Big Data.
Майкл Стоунбрейкер - создатель Postgres, Vertica, Volt DB, обладатель премии Тьюринга, к его словам точно стоит прислушаться.…
Майкл Стоунбрейкер - создатель Postgres, Vertica, Volt DB, обладатель премии Тьюринга, к его словам точно стоит прислушаться.…
🔥5🐳1
https://sigmodrecord.org/publications/sigmodRecord/2406/pdfs/04_Surveys_Stonebraker.pdf - обзорная статья от авторитетов индсутрии - Павло и Стоунбрейкера.
Цитата для привлечения внимания. Срывают покровы:
Вкратце:
Data Models & Query Languages
* MapReduce dead.
* Hadoop dead.
* Spark & Flink doing well.
* RocksDB ... rocks for embedded use-case.
* Для современной СУБД хорошо бы иметь API хранилища для разработки своего.
* json > xml.
* ACID это хорошо и нужно.
* wide column db are dead.
* text search engines где-то сбоку и без транзакций.
* array db интересные и хорошие но только для своих областей - научные и подобные данные натурально ложатся на модель хранения "массив".
* vector db специальный случай массива - одноразмерный. привлекают самое большое внимание разработчиков и инвесторов сегодня. Много ML use-case'ов.
* graph db - развивают совсем другую модель хранения. От этого другой API запросов. Узкоспециализированные сценарии использования.
===
System Architectures
Глава написана хорошо - даже не буду ее конспектировать - рекомендуется к прочтению полностью 🙂
Ну и в заключение нестареющие мудрости:
* Never underestimate the value of good marketing for bad products.
* Beware of DBMSs from large non-DBMS vendors.
* Do not ignore the out-of-box experience.
* Developers need to query their database directly
* The impact of AI/ML on DBMSs will be significant
Цитата для привлечения внимания. Срывают покровы:
There have been major new ideas in DBMS architectures put forward in the last two decades that reflecting changing application and hardware characteristics. These ideas range from terrific to questionable, and we
discuss them in turn.
Вкратце:
Data Models & Query Languages
* MapReduce dead.
* Hadoop dead.
* Spark & Flink doing well.
* RocksDB ... rocks for embedded use-case.
* Для современной СУБД хорошо бы иметь API хранилища для разработки своего.
* json > xml.
* ACID это хорошо и нужно.
* wide column db are dead.
* text search engines где-то сбоку и без транзакций.
* array db интересные и хорошие но только для своих областей - научные и подобные данные натурально ложатся на модель хранения "массив".
* vector db специальный случай массива - одноразмерный. привлекают самое большое внимание разработчиков и инвесторов сегодня. Много ML use-case'ов.
The key difference between vector and array DBMSs is their query patterns. The former are designed for similarity searches that find records whose vectors have the shortest distance to a given input vector in a highdimensional space.
* graph db - развивают совсем другую модель хранения. От этого другой API запросов. Узкоспециализированные сценарии использования.
SQL:2023 introduced property graph queries (SQL/PGQ) for defining and traversing graphs in a RDBMS
===
A reasonable conclusion from the above section is that non-SQL, non-relational systems are either a niche market or are fast becoming SQL/RM systems
System Architectures
Глава написана хорошо - даже не буду ее конспектировать - рекомендуется к прочтению полностью 🙂
NewSQL vendors also incorrectly anticipated that inmemory DBMS adoption would be larger in the last decade. Flash vendors drove down costs while improving storage densities, bandwidth, and latencies. Higher DRAM costs and the collapse of persistent memory(e.g., Intel Optane) means that SSDs will remain dominant for OLTP DBMSs.
The aftermath of NewSQL is a new crop of distributed, transactional SQL RDBMSs. These include TiDB [141],
CockroachDB [195], PlanetScale [60] (based on the Vitess sharding middleware [80]), and YugabyteDB [86]. The major NoSQL vendors also added transactions to their systems in the last decade despite previously strong
claims that they were unnecessary. Notable DBMSs that made the shift include MongoDB, Cassandra, and DynamoDB. This is of course due to customer requests
that transactions are in fact necessary. Google said this cogently when they discarded eventual consistency in
favor of real transactions with Spanner in 2012 [119].
At the present time, cryptocurrencies (Bitcoin) are the only use case for blockchains. In addition, there
have been attempts to build a usable DBMS on top of blockchains, notably Fluree [25], BigChainDB [12], and ResilientDB [136]. These vendors (incorrectly) promote
the blockchain as providing better security and auditability that are not possible in previous DBMSs.
Ну и в заключение нестареющие мудрости:
* Never underestimate the value of good marketing for bad products.
* Beware of DBMSs from large non-DBMS vendors.
* Do not ignore the out-of-box experience.
* Developers need to query their database directly
* The impact of AI/ML on DBMSs will be significant
🔥20❤1
Forwarded from iZhikov.public
Новый выпуск!
#9
Обзор статьи "What Goes Around Comes Around... And Around..." залетел в топы.
Сделали целый выпуск про статью.
Статья авторитетов индустрии и нашеценное мнение на этот счет.
Приятного просмотра:
https://www.youtube.com/watch?v=ibNrVbcAw24
#9
Обзор статьи "What Goes Around Comes Around... And Around..." залетел в топы.
Сделали целый выпуск про статью.
Статья авторитетов индустрии и наше
Приятного просмотра:
https://www.youtube.com/watch?v=ibNrVbcAw24
YouTube
What Goes Around Comes Around... And Around
#dbms #postgres #ignite
Обсуждаем свежую работу Michael Stonebreaker и Andy Pavlo - обзор идей и трендов в мире СУБД за последние 20 лет.
00:00 - Вступление, рассказываем об авторах и об их новой работе.
02:15 - Эта работа - продолжение аналогичного документа…
Обсуждаем свежую работу Michael Stonebreaker и Andy Pavlo - обзор идей и трендов в мире СУБД за последние 20 лет.
00:00 - Вступление, рассказываем об авторах и об их новой работе.
02:15 - Эта работа - продолжение аналогичного документа…
👍9🔥1