I do not speak English well.
I service moodle on 3 web servers and 1 cache server .
the cache server and 3 web server is connexted by 1Gbps network(but I think maximum is 300Mbps).
Recently I have activated competion tracking of 5000 courses.
After that, it takes a very long time, such as 2 minutes, to modify any activity module in every course(only activate completion tracking course) .
I looked at the source code.
the purge() method on "/cache/stores/file/lib.php" always delete all course completion caches.
purge method on "/cache/stores/file/lib.php" delete all caches on
Even if someone modify one activity module of a course,
server remove all caches on (core_coursecompletion, core_coursecompletion)
Is it right? I thought server remove only related course caches. but when all caches removed.
I think " $files = glob($this->glob_keys_pattern(), GLOB_MARK | GLOB_NOSORT); - on purge method "/cache/stores/file/lib.php"
glob() method always return */*.caches, when a user modify a activity module on any course.
so it very slow when editing acticity module .
How can I improve performance?
How can I delete only the completion cache of the course when the user modifies the activity module?