Re: [HACKERS] Proposal: global index

Поиск
Список
Период
Сортировка
От Petr Jelinek
Тема Re: [HACKERS] Proposal: global index
Дата
Msg-id 556372b8-baa9-8019-d884-6cbffc89718b@2ndquadrant.com
обсуждение исходный текст
Ответ на Re: [HACKERS] Proposal: global index  (Chris Travers <chris.travers@adjust.com>)
Ответы Re: [HACKERS] Proposal: global index  (Chris Travers <chris.travers@adjust.com>)
Список pgsql-hackers
On 25/08/17 10:28, Chris Travers wrote:
> 
> 
> On Thu, Aug 24, 2017 at 9:44 PM, Andres Freund <andres@anarazel.de
> <mailto:andres@anarazel.de>> wrote:
> 
>     Hi,
> 
>     On 2017-08-18 12:12:58 +0300, Ildar Musin wrote:
>     > While we've been developing pg_pathman extension one of the most frequent
>     > questions we got from our users was about global index support. We cannot
>     > provide it within an extension. And I couldn't find any recent discussion
>     > about someone implementing it. So I'm thinking about giving it a shot and
>     > start working on a patch for postgres.
> 
>     FWIW, I personally think for constraints the better approach is to make
>     the constraint checking code cope with having to check multiple
>     indexes. Initially by just checking all indexes, over the longer term
>     perhaps pruning the set of to-be-checked indexes based on the values in
>     the partition key if applicable.   The problem with creating huge global
>     indexes is that you give away some the major advantages of partitioning:
>     - dropping partitions now is slow / leaves a lof of garbage again
>     - there's no way you can do this with individual partitions being remote
>       or such
>     - there's a good chunk of locality loss in global indexes
> 
>     The logic we have for exclusion constraints checking can essentially be
>     extended to do uniqueness checking over multiple partitions. Depending
>     on the desired deadlock behaviour one might end up doing speculative
>     insertions in addition.  The foreign key constraint checking is fairly
>     simple, essentially one "just" need to remove the ONLY from the
>     generated check query.
> 

+1 (or +as much as I am allowed to get away with really ;) )

> 
> To be clear, this would still require a high-level concept of a global
> index and the only question is whether it gets stored as multiple
> partitions against partitioned tables vs stored in one giant index, right?
> 
No, just global constraints. For example, if you consider unique index
to be implementation detail of a unique constraint, there is nothing
stopping us to use multiple such indexes (one per partition) as
implementation detail to single global unique constraint. No need for
global index at all.

--  Petr Jelinek                  http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training &
Services



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Petr Jelinek
Дата:
Сообщение: Re: [HACKERS] More replication race conditions
Следующее
От: Ildar Musin
Дата:
Сообщение: Re: [HACKERS] Proposal: global index