Uploaded image for project: 'eZ Publish / Platform'
  1. eZ Publish / Platform
  2. EZP-22844

CLONE - ORL: metaData recursivity (loads whole database into memory, again)

    XMLWordPrintable

Details

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Medium Medium
    • None
    • None
    • Search
    • None

    Description

      As for http://bugs.ez.no/13224, when having a large database with lots of relations between objects (say: a radio broadcaster with "artist" pages, each artist having links to "similar artists"), publication of an object results in a memory exhausted somewhere in ezsearchengine.

      Explaination:
      ezsearchengine's addObject() calls metaData() on ezobjectrelationlist attributes, which in turn calls metaData on each one of the attributes of each one of the linked objects, if those objects contain ezorl attributes it in turn calls metaData on each object linked, and so on. At the end, any object having even a distant relation with the published one gets loaded into memory. In my case, that means all artists of the database (thousands).

      Solution (tested here):
      No recursion at all in metaData().
      If I understand correctly, metaData() is used only for search. If Kim Wilde is linked to Kylie Minogue, and Kim Wilde had a pink teddy bear in her biography, "pink teddy bear" shouldn't surface as search words for Kylie's object. "Kim Wilde" can.
      What I do in the attached patch is simply return linked objects' name as metaData.

      Attachments

        Activity

          People

            unknown unknown
            mzbirka mzbirka
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: