Lt304888.ru

Туристические услуги

Танцующее дерево

12-05-2023

В информатике танцующее дерево (англ. Dancing tree) — древовидная структура хранения данных, которая похожа на B+trees. Она придумана Гансом Рейзером для использования в файловой системе Reiser4. По сравнению со сбалансированными бинарными деревьями, которые пытаются сохранить свои узлы сбалансированными постоянно, танцующие деревья сохраняют только баланс между узлами при записи данных на диск (либо из-за ограничений памяти, или потому, что транзакция завершена).[1]

Идея заключается в том, чтобы ускорить операции с файловой системой, отказавшись от оптимизации дерева, а только писать на диск, когда это необходимо, так как запись на диск в тысячи раз медленнее, чем запись в память. Кроме того, поскольку такая оптимизация проводится реже, чем у других древовидных структур данных, выигрыш может быть ещё больше.

Тем не менее, побочный эффект такого поведения появляется в случае неожиданной остановки системы, записи неполных данных, и других явлений, которые могут помешать завершению окончательной (сбалансированной) транзакции. В целом, танцующие деревья создают большие трудности для восстановления данных из незавершённых операций, чем нормальные деревья, хотя эту проблему можно решить путем добавления дополнительных журналов транзакций или разработке алгоритма для поиска ранее не существовавших данных на диске с последующим выполнением оптимизаций и возобновлением операций.

Примечания

  1. Reiser4 release notes - Dancing Tree. Archive.org, as Namesys.com is no longer accessible. Архивировано из первоисточника 24 октября 2007. Проверено 22 июля 2009.

Ссылки

  • Software Engineering Based Reiser4 Design Principles
  • Description of the Reiser4 internal tree


Танцующее дерево.

© 2020–2023 lt304888.ru, Россия, Волжский, ул. Больничная 49, +7 (8443) 85-29-01