London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

SearchDataSource performance

Vote:
 

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
Vote:
 

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
Vote:
 

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
Vote:
 
Can't find any bugs on sorting for a SearchDataSource. What issues are you having?
#30327
Jun 11, 2009 16:08
Vote:
 
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
Vote:
 

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
Vote:
 


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
Vote:
 

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.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.