Базы данных: введение, часть третья

Илья Тетерин
2012-10-08

(use arrow keys or PgUp/PgDown to move slides)

Маленькая сказка

Идея ... !

Первые траблы

Первое решение

Что такое???

Решение несогласованности

Опять проблемы

нам надо Consistent + Available

... бонусная идея ...

CAP сказка из жизни

Исходно:
A plain english introduction to CAP Theorem
by Kaushik Sathupadi

Перевод:
CAP-теорема простым, доступным языком by Артём Попов

В терминах базы

CAP

CAP теорема - описание

wiki: CAP theorem

Brewer's CAP Theorem
by Julian Browne

Eventually Consistent - Revisited
Talk: Availability & Consistency
by Werner Vogels, CTO Amazon / @werner

Werner Vogel регулярно постит ссылки "Back-to-Basics Weekend Reading" - краткая аннотация и ссылка на исходную статью. Например: Counting Bloom Filter.

Новости CAP теоремы...

CAP Twelve Years Later: How the "Rules" Have Changed by Eric Brewer (@eric_brewer / http://www.cs.berkeley.edu/~brewer/), May 30, 2012

... "2 of 3" is missleading ...

... что такое Partition? - это просто таймаут при работе с сетью ... и как ваша система реагируется на это ...

Strategy should have three steps: detect partitions, enter an explicit partition mode that can limit some operations, and initiate a recovery process to restore consistency and compensate for mistakes made during a partition.

Очень хорошая статья, много буков, читать!

Изменяемое состояние

nb: read-only данные - легко масштабируются под нагрузку - просто добавь копий данных

Транзакция в реальной жизни

транзакция сложнее

ACID / АСИД

Традиционные требования к базе данных до 2000-го года

acid (eng) - кислота
© http://lingvo.yandex.ru/acid/

Возможно только в условиях полного контроля - "закрытый мир, закрытая вселенная" - я обо всём знаю

Атомарность

Согласованность

Изолированность

Isolation levels / уровни изоляции

Важно когда работают несколько пользователей

  1. Read uncommitted / dirty reads
    они откатились, а мы увидели
  2. Read committed / non-repeatable read
    значение ряда поменялось!
  3. Repeatable reads / phantom reads
    набор рядов меняется
  4. Serializable
    иллюзия последовательности - я один в мире

SCN / system change number / "время" базы

wiki: Isolation (database systems)

How Oracle Manages Data Concurrency and Consistency

Долговечность / Устойчивость

Достижимость ACID в кластере

... многоядерный компьютер - подобен кластеру и страдает от этих же проблем ...

BASE

BASE: An Acid Alternative
by Dan Pritchett

Процесс последовательной трансформации с уменьшением глобального состояния - переформулируем систему так, дабы она прощала ошибки.

Basically Available - в основном доступна, даже в условиях partition/crash - т.е. система "деградирует", но продолжает работать

Soft State - данные потенциально восстановимы и можно жить даже с неверным состоянием (запаздывание, не ответ) етс.

Eventually consistent - "ОК" давать оптимистичные ответы, если что, потом извинимся - поправим

Подход "в принципе..." / "верю, что всё будет хорошо, но готов поправить, если это не так"

Заблуждения распределенных систем

  1. The network is reliable
  2. Latency is zero
  3. Bandwidth is infinite
  4. The network is secure
  5. Topology doesn't change
  6. There is one administrator
  7. Transport cost is zero
  8. The network is homogeneous

Fallacies of Distributed Computing Explained by Arnon Rotem-Gal-Oz

Желаемые "свойства"

  1. Consistency: Updates in an agreed order
  2. Durability: Once accepted, won’t be forgotten
  3. Real-time responsiveness: Replies with bounded delay
  4. Security: Only permits authorized actions by authenticated parties
  5. Privacy: Won’t disclose personal data
  6. Fault-tolerance: Failures can’t prevent the system from providing desired services
  7. Coordination: actions won’t interfere with one-another

Очень понравился курс: CS5412: Cloud Computing (Spring 2012) / Prof. Ken Birman / CS Cornell University (слайды)

... а где сказка с добрым концом?

Когда-то мир готов был подождать - ушел в базу, вернусь - скажу "точно" - ACID

Потом всем захотелось много всего и сразу - пришлось придумать BASE

Потом доказали - ищите баланс между "точно" и "сразу" - CAP теорему

Как же с этим жить? ...

Google / Research at Google / Distributed Systems and Parallel Computing - 85 публикаций

2011: Megastore: is a storage system developed to meet the requirements of today's interactive online services. Megastore blends the scalability of a NoSQL datastore with the convenience of a traditional RDBMS in a novel way, and provides both strong consistency guarantees and high availability. We provide fully serializable ACID semantics within fine-grained partitions of data. This partitioning allows us to synchronously replicate each write across a wide area network with reasonable latency and support seamless failover between datacenters.

Oct 2012: Spanner: is Google's scalable, multi-version, globally-distributed, and synchronously-replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. ... с упоминанием atomic clocks + GPS ...

Итого:

ACID - мир един и подконтролен - всё знаю

Уровень изоляции транзакций - "миры данных" подконтрольно разделены

BASE - "в принципе" мир упрощенно выглядит так / знаю кое-что

CAP - точное глобальное знание доступно только при бесконечно надежных каналах и бесконечной скорости.

Вопросы?