- Танцующее дерево
-
В информатике танцующее дерево (англ. Dancing tree) — древовидная структура хранения данных, которая похожа на B+trees. Она придумана Гансом Рейзером для использования в файловой системе Reiser4. По сравнению со сбалансированными бинарными деревьями, которые пытаются сохранить свои узлы сбалансированными постоянно, танцующие деревья сохраняют только баланс между узлами при записи данных на диск (либо из-за ограничений памяти, или потому, что транзакция завершена).[1]
Идея заключается в том, чтобы ускорить операции с файловой системой, отказавшись от оптимизации дерева, а только писать на диск, когда это необходимо, так как запись на диск в тысячи раз медленнее, чем запись в память. Кроме того, поскольку такая оптимизация проводится реже, чем у других древовидных структур данных, выигрыш может быть ещё больше.
Тем не менее, побочный эффект такого поведения появляется в случае неожиданной остановки системы, записи неполных данных, и других явлений, которые могут помешать завершению окончательной (сбалансированной) транзакции. В целом, танцующие деревья создают большие трудности для восстановления данных из незавершённых операций, чем нормальные деревья, хотя эту проблему можно решить путем добавления дополнительных журналов транзакций или разработке алгоритма для поиска ранее не существовавших данных на диске с последующим выполнением оптимизаций и возобновлением операций.
Примечания
- ↑ Hans Reiser Reiser4 release notes - Dancing Tree. Archive.org, as Namesys.com is no longer accessible. Архивировано из первоисточника 24 октября 2007. Проверено 22 июля 2009.
Ссылки
Дерево (структура данных) Двоичное дерево поиска · Дерево (теория графов) · Древовидная структура Двоичные деревья Двоичное дерево · T-дерево Самобалансирующиеся двоичные деревья АА-дерево · АВЛ-дерево · Красно-чёрное дерево · Расширяющееся дерево · Дерево со штрафами · Декартово дерево · Дерево Фибоначчи B-деревья B-дерево · 2-3-дерево · B+ дерево · B*-дерево · UB-дерево · 2-3-4 дерево · (a,b)-дерево · Танцующее дерево Префиксные деревья Суффиксное дерево · Radix tree · Ternary search tree Двоичное разбиение пространства k-мерное дерево · VP-дерево Недвоичные деревья Дерево квадрантов · Октодерево · Sparse Voxel Octree · Экспоненциальное дерево · PQ-дерево Разбиение пространства R-дерево · R+-дерево · R*-дерево · X-дерево · M-дерево · Дерево Фенвика · Дерево отрезков Другие деревья Куча · TTH · Finger tree · Metric tree · Cover tree · BK-tree · Doubly-chained tree · iDistance · Link-cut tree Алгоритмы Поиск в ширину · Поиск в глубину · DSW-алгоритм · Алгоритм связующего дерева Категории:- Деревья (структуры данных)
- Файловые системы
Wikimedia Foundation. 2010.