-
Bug
-
Resolution: Fixed
-
Major
-
2.7.3, 2.8.1, 2.9
-
MOODLE_27_STABLE, MOODLE_28_STABLE, MOODLE_29_STABLE
-
MOODLE_29_STABLE
-
MDL-48595_master -
-
Team Beards Sprint 4
-
Large
I see MDL-34867 is closed, but unfortunately things have actually got worse since.
The new logging API, via get_events_select, requires fetching all events in one batch, and this tends to consume boatloads of memory as they are now huge event objects. Alternatively, some sections of code have hacks to do this in pieces, resulting in many expensive logging table queries.
Use cases we are seeing involve 500000 or more records, so the all-in-one-go model used frequently in code paths such as log report just do not work. We have previously provided anonymised databases to demonstrate the general scale required.
Anyway, I'm providing the latest dirty trick we need to make this functionality work /some/ of the time at least, by allowing get_events_select to return an iteratable list. As the consumers of this may loop multiple times, we also need a closure which generates the recordset, and run this again on rewind()...
Hope somebody at HQ eventually understands how broken the scaling of these core components is before yet another rewrite...
- caused a regression
-
MDL-50408 Deprecation of sql_select_reader completely breaks code that uses it
- Closed
-
MDL-53430 recordset_walk does not pass extra callback parameter
- Closed
- has a non-specific relationship to
-
MDL-34867 Improve course log export resource consumption and reliability
- Closed
- has been marked as being related by
-
MDL-50390 Logs download (e.g. CSV) uses too much server memory
- Closed
-
MDL-48702 Improve course log export resource consumption and reliability (backport of MDL-34867)
- Closed
-
MDL-52804 The log live report class should extend the log report class.
- Closed
- is a regression caused by
-
MDL-37658 META: Logging stage 2
- Closed
- is blocked by
-
MDL-49145 log report error for event contexts
- Closed
- Testing discovered
-
MDL-49482 FreeTDS needs unlimited memory_limit or report_log with hundreds of thousands of records does not work
- Closed
- will be (partly) resolved by
-
MDL-48729 Prevent fatal error if retrieving legacy log data fails
- Closed
-
MDL-49291 Remove sql_internal_reader, sql_select_reader and other MDL-48595 deprecations
- Closed
-
MDL-34867 Improve course log export resource consumption and reliability
- Closed