GiST - Википедия - GiST
Эта статья включает Список ссылок, связанное чтение или внешняя ссылка, но его источники остаются неясными, потому что в нем отсутствует встроенные цитаты.Июнь 2015 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
В вычислениях Суть или Обобщенное дерево поиска, является структура данных и API которые можно использовать для создания разнообразных дисковых деревья поиска. GiST является обобщением B + дерево, обеспечивая параллельную и восстанавливаемую инфраструктуру дерева поиска со сбалансированной высотой без каких-либо предположений о типе хранимых данных или обслуживаемых запросах. GiST можно использовать для простой реализации ряда хорошо известных индексов, включая B + деревья, R-деревья, hB-деревья, RD-деревья, и много других; он также позволяет легко разрабатывать специализированные индексы для новых типов данных. Его нельзя использовать напрямую для реализации не сбалансированных по высоте деревьев, таких как четырехугольные деревья или же префиксные деревья (пытается), хотя, как и префиксные деревья, он поддерживает сжатие, включая сжатие с потерями. GiST может использоваться для любого типа данных, который может быть естественным образом упорядочен в иерархию суперсеты. Оно не только расширяемо с точки зрения поддержки типов данных и древовидной структуры, но и позволяет автору расширения поддерживать любые предикаты запроса, которые они выбирают.
GiST - пример программного обеспечения расширяемость в контексте систем баз данных: это позволяет легко развить систему баз данных для поддержки новых индексов на основе дерева. Это достигается за счет выделения основной системной инфраструктуры из узкого API этого достаточно, чтобы охватить специфические для приложений аспекты широкого спектра конструкций индексов. Код инфраструктуры GiST управляет компоновкой страниц индекса на диске, алгоритмами поиска индексов и удаления из индексов, а также сложными деталями транзакций, такими как блокировка на уровне страницы для высокой степени параллелизма и ведение журнала с упреждающей записью для восстановления после сбоя. Это позволяет авторам новых индексов на основе дерева сосредоточиться на реализации новых функций нового типа индекса - например, способе описания подмножеств данных для поиска - не становясь экспертами во внутреннем устройстве системы баз данных.
Хотя изначально GiST был разработан для ответа на логические запросы выбора, он также может поддерживать поиск ближайшего соседа, и различные формы статистических приближение над большими наборами данных.
Реализации
Наиболее широко используемая реализация GiST находится в PostgreSQL реляционная база данных; это также было реализовано в Informix Universal Server и как отдельная библиотека libgist.
PostgreSQL
Реализация PostgreSQL GiST включает поддержку ключей переменной длины, составных ключей, управление параллелизмом и восстановление; эти функции наследуются всеми расширениями GiST. Есть несколько дополнительных модулей, разработанных с использованием GiST и распространяемых с PostgreSQL. Например:
- rtree_gist, btree_gist - GiST реализация R-дерева и B-дерева
- intarray - поддержка индекса для одномерного массива int4
- tsearch2 - доступный для поиска (полнотекстовый) тип данных с индексированным доступом
- ltree - типы данных, индексированные методы доступа и запросы для данных, организованных в виде древовидных структур
- hstore - хранилище для (ключа, значения) данных
- cube - тип данных, представляющий многомерные кубы
Реализация PostgreSQL GiST обеспечивает поддержку индексации для PostGIS (географическая информационная система ) и BioPostgres биоинформатика система.
Рекомендации
- Джозеф М. Хеллерштейн, Джеффри Ф. Нотон и Ави Пфеффер. Обобщенные деревья поиска для систем баз данных. Proc. 21-я Международная конф. по очень большим базам данных, Цюрих, сентябрь 1995 г., стр. 562–573.
- Марсель Корнакер, К. Мохан и Джозеф М. Хеллерштейн. Параллелизм и восстановление в обобщенных деревьях поиска. Proc. ACM SIGMOD Conf. on Management of Data, Tucson, AZ, May 1997, 62–72.
- Пол М. Аоки. Обобщение «поиска» в обобщенных деревьях поиска. Proc. 14-я Международная конференция on Data Engineering, Орландо, Флорида, февраль 1998 г., стр. 380–389.
- Марсель Корнакер. Высокопроизводительные обобщенные деревья поиска, Proc. 24-я Международная конференция on Very Large Data Bases, Эдинбург, Шотландия, сентябрь 1999 г.
- Пол М. Аоки. Как избежать создания DataBlades, которые знают ценность всего и ничего не стоят, Proc. 11-я Международная конференция по управлению научными и статистическими базами данных, Кливленд, Огайо, июль 1999 г., стр. 122–133.
внешняя ссылка
- Сайт исследовательского проекта GiST
- Разработка PostgreSQL GiST
- Документация для поддержки GiST в PostgreSQL
- Разработка расширения PostgreSQL с помощью GiST (на русском)
- GiST в вики PostgreSQL
- PostGIS
- BioPostgres