Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-44367

Improve filter_data performance on large sites

    XMLWordPrintable

Details

    • MOODLE_26_STABLE
    • MOODLE_29_STABLE
    • MDL-44367_master
    • Hide
      1. Enable filter_data at system level (Site admin -> Plugins -> Filters...) in contents and headings
      2. Add a database instance in the frontpage
        1. Add a text field setting 'Allow autolink' to 1
          1. Add an entry named "entry1"
      3. Add a database instance in your XXX course
        1. Add a text field setting 'Allow autolink' to 1
          1. Add an entry named "entry2"
      4. Go to course XXX and add a label
        1. Enter a text containing "entry1" and "entry2" (something like I like entry1 to entry2, whatever)
        2. Save changes
      5. Move to course/view.php?id=YOURID if you are not redirected there after saving changes
      6. The label you just added SHOULD contain links to entry1 and entry2 database entries
      Show
      Enable filter_data at system level (Site admin -> Plugins -> Filters...) in contents and headings Add a database instance in the frontpage Add a text field setting 'Allow autolink' to 1 Add an entry named "entry1" Add a database instance in your XXX course Add a text field setting 'Allow autolink' to 1 Add an entry named "entry2" Go to course XXX and add a label Enter a text containing "entry1" and "entry2" (something like I like entry1 to entry2 , whatever) Save changes Move to course/view.php?id=YOURID if you are not redirected there after saving changes The label you just added SHOULD contain links to entry1 and entry2 database entries

    Description

      As a follow-on to MDL-43524 which removed global text caching, we need to examine the database filter and probably add MUC caching there to improve performance.

      The database filter is what puts links in texts to database entries. There is quite a lot of processing going on in the background even before the simple text replacement, and this needs to be redone every time the cache is invalidated.

      Petr has raised that the fully correct way would be to use new events or the as-yet-unwritten hooks to invalidate the caches, but I think that might be too much to do before 2.7, so I want to see a quick solution here even if it may mean relying on less-perfect cache invalidation.

      Tests showing performance before/after are required.

      Attachments

        Issue Links

          Activity

            People

              dmonllao David Monllaó
              dougiamas Martin Dougiamas
              Tim Hunt Tim Hunt
              Dan Poltawski Dan Poltawski
              Simey Lameze Simey Lameze
              Matteo Scaramuccia, David Woloszyn, Huong Nguyen, Jake Dallimore, Meirza, Michael Hawkins, Raquel Ortega, Safat Shahin, Stevani Andolo, Amaia Anabitarte, Bas Brands, Carlos Escobedo, Laurent David, Sabina Abellan, Sara Arjona (@sarjona), David Woloszyn, Huong Nguyen, Jake Dallimore, Meirza, Michael Hawkins, Raquel Ortega, Safat Shahin, Stevani Andolo
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                11/May/15