Hey all!
Happy to announce that Core 2.8.9 is released and available. This will likely become available in a point release of the RefApp later. We don’t normally announce point releases like this, but Core 2.8.9 includes several fixes related to some serious performance regressions we’ve had reported with 2.8.
It should be noted that the issues reported here are specific to 2.8.x as the related to the move to Hibernate Search. While 2.8.9 doesn’t solve everything we’re aware (see below for more!), it does address the biggest pain points.
Issue Details
The biggest issue we’ve identified so far was caused by a class that de-duplicates search results. Many of our searches, especially for patients, are actually done as multiple searches and then combined on the server. E.g., when searching for patients, we match against patient identifier(s), attribute(s), and the name fields. Each of these is searched independently, and then we discard duplicates. Unfortunately, the way the duplicate-discard was written would wind up running a database query per search result, so that as your search results paged further, the search took increasingly longer to return. The technical details were described in TRUNK-6711, which is part of this release.
Additionally, we added TRUNK-6734 (thanks @jwnasambu!) which specifically made it possible to load patient identifiers in a batch manner, so that patient identifiers will also benefit from the changes in TRUNK-6711.
Related Fixes
Note that when this was initially we reported to us at the beginning of June, this initially looked like a flaw in the O3 frontend, since the same user only had problems in the O3 UI, but not searching patients in the legacy UI. And there were some flaws in the O3 UI that were addressed in O3-5714 and a later follow-up PR which both landed as part of RefApp 3.7.1.
How you can help!
There are still some ongoing issues. The ones I’m aware of are in this board.
We’d ask for help in several ways:
- If you have spare cycles, you can, of course, grab any tickets. (Though please be careful to only assign yourself tickets if you understand what’s being asked for; if the ticket is unclear, feel free to ask questions, but do not assign the ticket to yourself)
- If you have an implementation, please report issues you run into like this. We generally try to handle issues reported in whatever format you can but: things said in conversation are more likely to be lost than things said in writing; things said in chats like Slack are more likely to be missed than things said on Talk; things written into Jira tickets are very unlikely to be seen if they aren’t mentioned elsewhere). There are many issues (like this patient search one!) that are not visible when running very small implementations and only become apparent when running in larger instances, so we are reliant on our community to report these issues.
- If you come across a discussion in one of our more ephemeral channels like Slack or Jira that doesn’t seem to be getting the right attention, bring it up.
- Always remember that OpenMRS is its community; if you know about something and the community doesn’t, try to make sure the community knows!