DATA_ENGINEERETTE Telegram 424
Serializability vs Linearizability

Этим понедельничным деньком настало время разобраться между двумя очень похожими терминами🤓

💋Есть 2 счета с денюжками: A=30 и В=70, Тотал=100. Они не могут в тотале уйти в минус. Две параллельные транзакции пытаются снять по 100

Что происходит в несериализуемой, сериализуемой и линеаризуемой системах?

1️⃣Несериализуемая

1: снимает 100 с А
2: снимает 100 с В
Баланс: А=-70, В=-30, Тотал=-100
Возникла аномалия, мы нарушили правило банка

2️⃣Сериализуемая

1: снимает 100 с А и пытается закоммитить
2: снимает 100 с В и пытается закоммитить

БД сравнивает результат, как если бы они выполнялись последовательно. Если закоммитить сначала первую транзакцию, то состояние будет А=-70, В=70, Тотал=0. Вторая не может снять, потому что в тотале 0, она откатывается. Можем вместо первой закоммитить вторую, таймлайн не важен

3️⃣Линеаризуемая

1: снимает 100 с А, текущее состояние А=-70, В=70, Тотал=0
2: уже видит, что в тотале 0, и даже не пытается

А вот здесь уже важно, какая транзакция началась раньше

〰️〰️〰️

Надеюсь, вам стало чуточку понятнее)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍152



tgoop.com/data_engineerette/424
Create:
Last Update:

Serializability vs Linearizability

Этим понедельничным деньком настало время разобраться между двумя очень похожими терминами🤓

💋Есть 2 счета с денюжками: A=30 и В=70, Тотал=100. Они не могут в тотале уйти в минус. Две параллельные транзакции пытаются снять по 100

Что происходит в несериализуемой, сериализуемой и линеаризуемой системах?

1️⃣Несериализуемая

1: снимает 100 с А
2: снимает 100 с В
Баланс: А=-70, В=-30, Тотал=-100
Возникла аномалия, мы нарушили правило банка

2️⃣Сериализуемая

1: снимает 100 с А и пытается закоммитить
2: снимает 100 с В и пытается закоммитить

БД сравнивает результат, как если бы они выполнялись последовательно. Если закоммитить сначала первую транзакцию, то состояние будет А=-70, В=70, Тотал=0. Вторая не может снять, потому что в тотале 0, она откатывается. Можем вместо первой закоммитить вторую, таймлайн не важен

3️⃣Линеаризуемая

1: снимает 100 с А, текущее состояние А=-70, В=70, Тотал=0
2: уже видит, что в тотале 0, и даже не пытается

А вот здесь уже важно, какая транзакция началась раньше

〰️〰️〰️

Надеюсь, вам стало чуточку понятнее)

BY дата инженеретта


Share with your friend now:
tgoop.com/data_engineerette/424

View MORE
Open in Telegram


Telegram News

Date: |

Deputy District Judge Peter Hui sentenced computer technician Ng Man-ho on Thursday, a month after the 27-year-old, who ran a Telegram group called SUCK Channel, was found guilty of seven charges of conspiring to incite others to commit illegal acts during the 2019 extradition bill protests and subsequent months. Hashtags The Channel name and bio must be no more than 255 characters long Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators. According to media reports, the privacy watchdog was considering “blacklisting” some online platforms that have repeatedly posted doxxing information, with sources saying most messages were shared on Telegram.
from us


Telegram дата инженеретта
FROM American