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
  • 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
  • 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
  • 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
  • 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.
Please login to post a reply