Version 1.2.9 is now deployed on LRS.io, and available for enterprise customers. The 1.2 branch of Veracity Learning includes a huge list of under-the-hood improvements aimed at making the analytics and some search features work much faster at scale.
The analytics back end is now accelerated by ElasticSearch. Enterprise customers will see additional prompts in the setup scripts, and associated values in the configuration files. ElasticSearch is optional - the system can run without it, and will fall back on Mongo for most database operations.
We've also changed the way we handle the MongoDB databases. In addition to adding additional indexes to support query acceleration, we've added collections that track the canonical state of Agents, Activities and Verbs. The collections help us create performant "full-text" searches over xAPI statements, plus keep record about how often each Agent or Activity is used. You'll find a new set of database maintenance tools under All Management Tools -> Database Management.
Here's a short description of what each tool does.
Each statement is pulled from the database and stored into a new collection, passing through all the internal indexing logic. When all statements have been moved, the old collection is dropped. We've run this operation for all LRS.io customers - only on-site customers should need to run this. You may be prompted to use this tool when upgrading from an older version. This operation also rebulids the Mongo indexes and the analytics cache.
Rebuild Mongo Indexes
In rare cases, your MongoDB database might become out of sync with the way that Veracity expects it to be configured. If you've for some reason dropped the MongoDB indexes, this will recreate them. Note that for LRSs with less than 10,000 statements, indexes are upgraded as needed on-the-fly.
Rebuild Analytics cache
If you've installed ElasticSearch after receiving statements, you can resync ElasticSearch with this feature. You should see a notification on the LRS dashboard if your server is configured to use ElasticSearch, and it reports that it contains fewer statements for your LRS than it should. Rebuilding the Analytics cache will post all statements back to ElasticSearch, and configure the ElasticSearch Index as required.
As always, this release includes a whole set of other improvements, including
- extension support in the Custom Bar, Chart and Series dashboard widgets.
- Proper display of a statement whose Object is an Agent in the statement viewer.
- User and LRS pagination for the admin in the enterprise version
- Use "$and" and "$or" in the matchFilter for Custom Bar, Chart and Series dashboard widgets
- A dashboard for System wide stats overall LRSs, for admin use in the enterprise version.
- GUI updates for many common forms.
- Refreshing the analytics pages restores the previous dashboard, instead of clearing back the the defaults
- Links to get to the analytics dashboards from the statement viewer for Agents and Activities
- Big refactor of how the analytics dashboards are organized. Instead of many dashboards that are mostly empty, we have abstracted all available dashboards into a few type - Activity and Agent. The relevant widgets will
appear if the Activity is used in parent context, or has a score. Future additions to the list of visualizations will simply appear when relevant, rather than create a new entry in the left side menu.
- We now hide any dashboard widgets that don't return any meaningful data.
As usual, please let us know if you have questions, comments or issues with the new release! This one is a large architectural change, so enterprise customers, please carefully consider taking database backups before upgrading.