SearchDataSource performance

 

Have just upgraded to CMS5 R2 Sp1 from CMS 5 sp1 and after sorting some bugs the site is up and running but there seems to be a large drop off in performance when doing a SearchDataSource. The R2 Sp1 version takes over 20 seconds to return while the CMS 5 sp1 is under a second.

Would this be down to configuration or has the way SearchDataSource changed?

 

THanks,

Jon

#30313
Jun 11, 2009 12:52
Petter Klang
Member since: 2008
 

Hi Jon,

There is a bug on the search in R2 SP1:

23249: Performance bug: After upgrading a site from 5R1 to 5R2sp1 the searches on the site are very slow.

This have been fixed and will be in the SP2.

#30315
Jun 11, 2009 13:05
 

Hi Petter, thanks for letting me know!

 

Is there a problem with the sorting as well, it's not working as it should.

#30325
Jun 11, 2009 15:28
Petter Klang
Member since: 2008
 
Can't find any bugs on sorting for a SearchDataSource. What issues are you having?
#30327
Jun 11, 2009 16:08
 
On our CMS5 sp1 site, our news section which picks up from SearchDataSource is sorted by date, newest article first, but on CMS 5 R2 Sp1 it looks as if the sorting is ignored completely.
#30331
Jun 11, 2009 16:25
 

If it helps the performance seems to be hanging within this part of SearchDataSource.Select:

 foreach (PageData data2 in list2)
{
PageData data3 = data2.CreateWritableClone();
data3.PopulateDynamicProperties();
data3.Property.Add("PageRank", new PropertyNumber(0x3e8));
pages.Add(data3);
}

 

thanks,

Jon

 

#30338
Jun 11, 2009 17:40
Thorbjörn Karlström
Member since: 2007
 


The performance thief is:

data3.PopulateDynamicProperties();

Make you own SearchDataSource, add property

public bool PopulateDynamicProperties { get; set; }

Override Select and rewrite

data3.PopulateDynamicProperties();

with

if(PopulateDynamicProperties)
   data3.PopulateDynamicProperties();

PopulateDynamicProperties() is used on two places in select.

#30345
Edited, Jun 12, 2009 8:32
Per Gunsarfs
Member since: 2005
 

Hi

You are correct, it's the PopulateDynamicProperties method that is the thief in this case. It was added in to fix a bug where dynamic properties where missing when performing a search. However, as you noticed, it has caused a performance hit so the fix has been updated in the SP2 we are working on right now, as mentioned by Petter.

Regards

Per Gunsarfs
EPiServer CMS development team

#30346
Jun 12, 2009 9:07
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.