On Jul 21, 2011, at 12:51 AM, Eric Bollengier wrote:

> Hello,
> 
> On 07/21/2011 04:47 AM, Dan Langille wrote:
>> Moving this over to -devel after my original post on users.
>> 
>> On Jul 20, 2011, at 10:40 PM, Dan Langille wrote:
>> 
>>> On Jul 19, 2011, at 5:45 PM, Roy Sigurd Karlsbakk wrote:
>>> 
>>>>> Starting a file-based restore job, this led to postgresql spending a
>>>>> full 15 minutes in a query. Any idea what can be done to fix this?
>>>>> 
>>>>> http://paste.ubuntu.com/647576/ has a full explain/analyze of the
>>>>> query, but so far, I haven't figured out where the problem is. Anyone
>>>>> with an idea of how to tune this?
>>>> 
>>>> create index file_filenameid on file(filenameid);
>> 
>> Devs: any objection to making this permanent on at least the PostgreSQL 
>> catalog?
>> 
>> There is really no downside to this.
> 
> Yes I have an objection, it will slow down all backups

As mentioned elsewhere, someone consider restore more important than backups.

Slow down by how much?  Are we talking a huge performance hit here?

> to speed up very special restore case.

What aspect of this restore do you consider special?

> I think that the problem is more on the database tuning or on the query 
> itself. I have the same kind of query in Bweb and it runs instantly 
> (that displays all version of a file for a client) on very large catalog.


> When you add new indexes on the File table it leads to support problems 
> where people are complaining about backup speed...
> 
>>> bacula=# \d file
>>>                             Table "public.file"
>>>   Column   |  Type   |                       Modifiers
>>> ------------+---------+-------------------------------------------------------
>>> fileid     | bigint  | not null default nextval('file_fileid_seq'::regclass)
>>> fileindex  | integer | not null default 0
>>> jobid      | integer | not null
>>> pathid     | integer | not null
>>> markid     | integer | not null default 0
>>> lstat      | text    | not null
>>> md5        | text    | not null
>>> filenameid | integer | not null
>>> Indexes:
>>>    "file_pkey" PRIMARY KEY, btree (fileid)
>>>    "file_filenameid_idx" btree (filenameid)
>>>    "file_jobid_idx" btree (jobid)
>>>    "file_jpfid_idx" btree (jobid, pathid, filenameid)
>>>    "file_pathid" btree (pathid)
>>>    "file_pathid_idx" btree (pathid)
>>>    "testing" btree (fileid)
> 
> Interesting to have two indexes on fileid, and two indexes on pathid :-)

Interesting indeed.  Testing is clearly for... testing.  :)

I don't know about file_pathid.  However, this database has been around since 
before the PostgreSQL module was added.

-- 
Dan Langille - http://langille.org


------------------------------------------------------------------------------
Storage Efficiency Calculator
This modeling tool is based on patent-pending intellectual property that
has been used successfully in hundreds of IBM storage optimization engage-
ments, worldwide.  Store less, Store more with what you own, Move data to 
the right place. Try It Now! http://www.accelacomm.com/jaw/sfnl/114/51427378/
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to