Re: Relation extension scalability - Mailing list pgsql-hackers

From David Steele
Subject Re: Relation extension scalability
Date
Msg-id 55194FB3.60903@pgmasters.net
Whole thread Raw
In response to Re: Relation extension scalability  (Andres Freund <andres@2ndquadrant.com>)
Responses Re: Relation extension scalability
List pgsql-hackers
On 3/30/15 6:45 AM, Andres Freund wrote:
> On 2015-03-30 09:33:57 +0530, Amit Kapila wrote:
>> Another thing to note here is that during extension we are extending
>> just one block, won't it make sense to increment it by some bigger
>> number (we can even take input from user for the same where user
>> can specify how much to autoextend a relation when the relation doesn't
>> have any empty space).  During mdextend(), we might increase just one
>> block, however we can register the request for background process to
>> increase the size similar to what is done for fsync.
>
> I think that's pretty much a separate patch. Made easier by moving
> things out of under the lock maybe. Other than that I'd prefer not to
> mix things. There's a whole bunch of unrelated complexity that I don't
> want to attach to the topic at the same time (autovacuum truncayting
> again and so on).

Agreed that it makes more sense for this to be in a separate patch, but
I definitely like the idea.

A user configurable setting would be fine, but better would be to learn
from the current growth rate of the table and extend based on that.

For, instance, if a table is very large but is only growing by a few
rows a day, there's probably no need for a large extent.  Conversely, an
initially small table growing by 1GB per minute would definitely benefit
from large extents and it would be good to be able to track growth and
compute extent sizes accordingly.

Of course, a manual setting to start with would cover most use cases.
Large tables in a database are generally in the minority and known in
advance.

--
- David Steele
david@pgmasters.net


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: getting rid of "thread fork emulation" in pgbench?
Next
From: Tom Lane
Date:
Subject: Re: Concurrent calls of _hash_getnewbuf()