Re: [HACKERS] Logical Replication WIP

Поиск
Список
Период
Сортировка
От Petr Jelinek
Тема Re: [HACKERS] Logical Replication WIP
Дата
Msg-id 71989387-bf1b-8a48-4d30-07bf14ae83a6@2ndquadrant.com
обсуждение исходный текст
Ответ на Re: [HACKERS] Logical Replication WIP  (Petr Jelinek <petr.jelinek@2ndquadrant.com>)
Ответы Re: [HACKERS] Logical Replication WIP  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
On 13/12/16 03:26, Petr Jelinek wrote:
> On 13/12/16 02:41, Andres Freund wrote:
>> On 2016-12-10 08:48:55 +0100, Petr Jelinek wrote: 
>>
>>> +static List *
>>> +OpenTableList(List *tables)
>>> +{
>>> +    List       *relids = NIL;
>>> +    List       *rels = NIL;
>>> +    ListCell   *lc;
>>> +
>>> +    /*
>>> +     * Open, share-lock, and check all the explicitly-specified relations
>>> +     */
>>> +    foreach(lc, tables)
>>> +    {
>>> +        RangeVar   *rv = lfirst(lc);
>>> +        Relation    rel;
>>> +        bool        recurse = interpretInhOption(rv->inhOpt);
>>> +        Oid            myrelid;
>>> +
>>> +        rel = heap_openrv(rv, ShareUpdateExclusiveLock);
>>> +        myrelid = RelationGetRelid(rel);
>>> +        /* filter out duplicates when user specifies "foo, foo" */
>>> +        if (list_member_oid(relids, myrelid))
>>> +        {
>>> +            heap_close(rel, ShareUpdateExclusiveLock);
>>> +            continue;
>>> +        }
>>
>> This is a quadratic algorithm - that could bite us... Not sure if we
>> need to care.  If we want to fix it, one approach owuld be to use
>> RangeVarGetRelid() instead, and then do a qsort/deduplicate before
>> actually opening the relations.
>>
> 
> I guess it could get really slow only with big inheritance tree, I'll
> look into how much work is the other way of doing things (this is not
> exactly hot code path).
> 

Actually looking at it, it only processes user input so I don't think
it's very problematic in terms of performance. You'd have to pass many
thousands of tables in single DDL to notice.

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



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

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: [HACKERS] Password identifiers, protocol aging and SCRAM protocol
Следующее
От: Kyotaro HORIGUCHI
Дата:
Сообщение: Re: [HACKERS] Radix tree for character conversion