In the last two months, we've made a number of changes to DevResults, but the truth is you may not have noticed them. Unlike previous blog posts about shiny new functionality or user interface changes, this post is a lot about what we've been doing behind the scenes to make DevResults better, from architectural changes to streamlining scheduled tasks and processes.
But before I jump into that, just a little DevResults data, since I'm a data geek. October is generally our busiest month of the year, and this year was no exception:
- 121 individual users uploaded or edited indicator performance data
- Just over 800 thousand rows of indicator data were entered (exact number for the month: 828,129)
- Roughly 74% were calculated from formulas (609,783)
- Roughly 26% were directly entered (218,172)
- The remaining < 1% were from data tables
1 Pito: No more "Refresh Data"
We made some behind-the-scenes changes to how Pito works. What you'll notice: we got rid of the Refresh Data button. Now, Pito will update in real time.
2 Invasion of the BLOBs
The quick explanation: we made some database architecture changes that have improved site performance and response times.
The detailed explanation: Most data in databases is stored in something akin to Excel spreadsheets, but photos or documents in DevResults (or generally any database) get stored as Binary Large OBjects--BLOBs, for short. Historically, we have always stored all the BLOBs our customers uploaded within the same database as the rest of your data. However, in the spring, we noticed that some standard database processes were taking a long time to run and we suspected some clients were experiencing slower page load times as a result. Since we moved our server hosting to Microsoft Azure earlier this year, we decided to take advantage of another Azure offering: BLOB storage. Basically, we migrated all the BLOBs to this separate storage and adjusted DevResults so that it uses this storage. This has reduced overall database size by nearly 50%, and we've noticed some nice gains on database back-up runtimes and other performance metrics.
3 Logic Check Recalculations
We've streamlined the automatic recalculation process for logic checks. Now instead of running every 2-3 hours, logic checks are recalculated every 15 minutes. (And if you don't know what logic checks are, you can check them out on our help site!)
4 Undoable Activity Reporting Period imports
For those of you who use the Upload Results Template on an Activity's Reporting Period page: we now allow you to undo an import. This is accessible through the Change History for the site.
5 Reporting Period Download Queues
For those of you who use the Export all data downloads from a Reporting Period details screen like this:
We noticed that if you have a lot of activities on this page, the Excel download was taking a long time and in some cases erroring. We've changed this process so that it queues the file to be downloaded and emails you when the file is ready for download.
6 Fat Scrollbars
Okay, admittedly, this is not a new feature or performance improvement. However, all of you folks who have tiny laptops and finicky trackpads for mouses, please note: your frustrations were heard and our scrollbars are now three times wider:
7 Indicator Results
Every time you enter or recalculate an indicator result, we log it with a unique ID. We've always stored these IDs as integers, which max out at just over 2 billion numbers. We just had to change this in the database because we were about to run out of IDs! No worries, though; we converted the field to big integers, which max out at over 9 quintillion. So keep that performance data coming!
Coming Up Next
I can't lie; I'm pretty stoked about some of the new changes coming soon to a DevResults near you:
- Custom Queries On-Demand: Many of our clients have custom queries they've asked us to write to fit various workflows or requirements. We've always done these and run them for you upon request; but now we're working on a way to make these available directly to you in the site so you can run them whenever you want!
- New Index pages and filters: Like you, we've noticed how slow the all Indicators and all Activities pages (what we call Index pages) have been. We've been completely rewriting how the search and filter functionality here works, as well as overall page layout. The new pages will be out soon, much faster and more responsive to filters and search criteria.