This directory contains an implementation of GiST indexing for Postgres.
This directory contains an implementation of GiST indexing for Postgres.
GiST is stands for Generalized Search Tree. It was introduced in seminal paper
GiST stands for Generalized Search Tree. It was introduced in the seminal paper
"Generalized Search Trees for Database Systems", 1995,Joseph M. Hellerstein,
"Generalized Search Trees for Database Systems", 1995, Joseph M. Hellerstein,
Jeffrey F. Naughton,Avi Pfeffer (http://www.sai.msu.su/~megera/postgres/gist/papers/gist.ps) and implemented by J. Hellerstein and P.Aoki in early version of
Jeffrey F. Naughton, Avi Pfeffer:
PostgreSQL ( more details is available from The GiST Indexing Project at
Berkeley at http://gist.cs.berkeley.edu/). As an "university" project it had a
and implemented by J. Hellerstein and P. Aoki in an early version of
PostgreSQL (more details are available from The GiST Indexing Project
at Berkeley at http://gist.cs.berkeley.edu/). As a "university"
project it had a limited number of features and was in rare use.
The current implementation of GiST supports:
* Variable length keys
* Variable length keys
* Composite keys (multi-key)
* Composite keys (multi-key)
...
@@ -17,34 +21,37 @@ Current implementation of GiST supports:
...
@@ -17,34 +21,37 @@ Current implementation of GiST supports:
* Concurrency
* Concurrency
* Recovery support via WAL logging
* Recovery support via WAL logging
Concurrence algoritms implemented in PostgreSQL were developed following paper
The support for concurrency implemented in PostgreSQL was developed based on the paper "Access Methods for Next-Generation Database Systems" by Marcel Kornaker:
"Access Methods for Next-Generation Database Systems" by Marcel Kornaker (http://www.sai.msu.su/~megera/postgres/gist/papers/concurrency/access-methods-for-next-generation.pdf.gz).
Original algorithms were modified by following reasons: