1. Чем B-tree отличается от бинарного дерева?
B-дерево и бинарное дерево решают одну задачу — эффективный поиск, но по-разному. Бинарное дерево имеет не более двух потомков у каждого узла, а B-дерево — много. B-дерево всегда сбалансировано, что гарантирует быстрый поиск, а бинарное может выродиться в список. Главное же отличие в том, что B-дерево оптимизировано для хранения на диске и работы с большими данными.
2. Объясни, что такое Durability (D в ACID) и как она гарантируется?
Durability (Долговечность) — это свойство транзакции, гарантирующее, что一旦 транзакция успешно завершена (зафиксирована), внесенные ею изменения останутся в системе навсегда, даже в случае последующих сбоев (например, отключения питания). Это гарантируется путем записи информации о изменениях в постоянное (немедленное) хранилище, такое как журнал транзакций (WAL), на диск перед тем, как сообщить пользователю об успехе.
3. Чем отличается Read Committed от Repeatable Read?
Основное отличие заключается в том, разрешает ли уровень изоляции неповторяющееся чтение.
Read Committed это разрешает: два последовательных чтения одной и той же строки в транзакции могут вернуть разные данные, если другая транзакция изменила и зафиксировала эту строку между чтениями. Repeatable Read гарантирует, что多次读取 одной и той же строки в рамках транзакции вернут одинаковые данные, блокируя или используя снимки данных, чтобы предотвратить ее изменение другими транзакциями.4. Почему поиск в B-tree работает быстрее полного перебора данных?
Поиск в B-дереве быстрее, потому что он использует принцип двоичного поиска на каждом уровне, что позволяет быстро отбрасывать большие части данных. Вместо проверки каждого элемента (как при переборе), алгоритм за несколько шагов принимает решение, в какую ветку двигаться дальше. Это значительно сокращает количество операций, особенно для больших объемов данных.
5. Что такое идемпотентность (idempotentness)?
Идемпотентность — это свойство операции, которое позволяет выполнить ее много раз без изменения результата за пределами первого выполнения. Проще говоря, если вы вызвали операцию один раз или десять раз, конечное состояние системы будет одинаковым. Это ключевая концепция для обработки повторяющихся запросов в сетях.
#algorithm #data_structure #tree #transaction #acid #durability #isolation #consistency #idempotency #reliability #network