How does Atomic Search scale indexing?


First Index

When you first install Atomic Search into a course or Canvas account (or sub-account), Atomic Search indexes all of the content in the course(s).

Updating indexes

After we have indexed an item once, we only ask Canvas to resend the data for the item if it has been updated since we last indexed the item. That greatly reduces the amount of data that Canvas has to send and reduces the time needed to update the index.

Auto-updating indexes for active courses

Atomic Search updates the index for active courses every 10 hours. Active courses are published courses where today falls between their start and end dates. Courses without start and end dates are considered active. 

Auto-updating indexes for other courses

Atomic Search updates the index for inactive courses every 30 days. You can manually update the index for an inactive course.

Manually updating the index for a course.

A course author can manually request that a course be reindexed by navigating to the Search menu in a course and clicking on the Reindex Course button displayed in the three-dot menu. That will bump the course to the top of the index queue, causing its index to be updated within a few minutes. The Index status will update to reflect that new update time.

Parallel indexing

Atomic Search's indexer's index content in parallel with up to 20 simultaneous workers per instance of Canvas.

Rate throttling

Canvas implements API rate throttling on a per-token basis. Atomic Search indexers detect throttling and implement an exponential backoff approach.

Time to index a single course

Atomic Search can usually index the content in a course within a few minutes.

Time to index many courses

Atomic Search is currently installed in instances of Canvas with hundreds of thousands of courses and items. One benchmark we gathered is 11201 documents from 1404 courses in 3 hours. We will continue to gather and share data about indexing speed.

Live Events

Live events allow Atomic Search to receive notifications of when Canvas course items change so it can begin updating its indexes for those items immediately. An institution will need to request that Instructure give Atomic Search access to Live Events in order for this functionality to be turned on for an instance of Canvas.