Scheduling repeating events through Admin UI is very slow

Steps to reproduce

Scheduling repeating events is very slow in systems with significant amounts of data (for example it took 39min to add 217 events).

This seems largely due to the fact that a conflict check is done for each recurring event.

A conflict check should be done in one operation for all events in the set, rather than adding each event individually and doing the conflict check for each individual event added.

This is the endpoint /admin-ng/event/new which invokes createEvent() in IndexServiceImpl.java which calls schedulerService.addEvent() for each event in the recurrence.

So it looks like some logic for scheduling multiple events should move from IndexService to scheduler service, so the

case SCHEDULE_MULTIPLE:

code in IndexServiceImpl calls something like

schedulerService.addMultipleEvents(...)

which does a conflict check for the whole range and then creates each event without individual conflict checks.

Status

Assignee

Greg Logan

Reporter

Stephen Marquard

Severity

Performance

Tags (folksonomy)

None

Components

Fix versions

Affects versions

4.0

Priority

Major