GiST - Википедия - GiST

В вычислениях Суть или Обобщенное дерево поиска, является структура данных и 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 биоинформатика система.

Рекомендации

внешняя ссылка