Software tips, techniques, and news.
FileMaker Server 18 brings some exciting database improvements in the form of faster processing of parallel queries and automatically recovering corrupt databases when the server starts up using a transactional log. This auto-correction feature, called Startup Restoration, will save significant time and headaches during disaster recovery of a FileMaker application. Both updates are intertwined within Startup Restoration, which means that added speed and stability are packaged together.
**We recommend disabling Startup Restoration until a bug fix is announced!
Performance optimization is one of the most time-consuming (and expensive) types of development and is often overlooked or ignored until applications are nearly unusable. This often happens as businesses expand, adding both more users and data which load the server with an ever increasing number of queries.
Without Startup Restoration (what most users are used to), FileMaker Server handles queries in serial. Each query is put in a single line and assigned a processing "lane" once one opens up, much like a bank line with several tellers. The Startup Restoration feature allows the server to handle queries in parallel. That means, your query goes to the shortest “lane” available and has a better chance of being processed more quickly.
To get an idea of the impact, the two screenshots below show just how much faster enabling Startup Restoration is.
With Startup Restoration turned on, our example unstored find took a little less than 15 seconds for 10 simultaneous users.
With Startup Restoration off, the same unstored find for the same 10 users took more than twice as long at just under 33 seconds.
The added efficiency on the CPU is a major part of the benefit. For developers frustrated with a server needing more cores while the CPU usage is hanging around 20%, Startup Restoration will help, allowing you to do more with each core.
The unstored find for 10 users with Startup Restoration easily took up about 60% of the CPU.
The same find for 10 users without Startup Restoration barely topped 30% of the CPU.
Startup Restoration also allows the server to auto-recover files on startup if corrupt data is detected. Having Startup Restoration enabled means in addition to more efficient queries, the server also keeps a transactional log of all the data changes occurring in FileMaker. If the server detects an error in the consistency of your FileMaker application, it automatically rolls itself back to the last consistent state by using the transactional log.
Manual rollbacks to a progressive backup should be even more rare and no one has to worry about them being accidentally turned off. That means added stability and fewer emergencies.
In FileMaker 18 Server, Startup Restoration is on by default, but turning it off is a simple command with either the Admin API or the command line. Setting “StartupRestorationEnabled=false” will disable logging. Setting it to “true” will enable the feature. If you are toggling Startup Restoration, you must restart FM Server for it to take effect.
What if you want to know if Startup Restoration is enabled already? You can use the FMSAdmin "Get" command to ask the server for the current setting setup.
Why would you want to turn it off? Startup Restoration comes at a cost: creating and editing records take longer. In our example, creating records with Startup Restoration enabled meant an extra 1.5 seconds per user for 1,000 records.
With Startup Restoration turned on it took just over 2 seconds per user to make 1,000 records.
With Startup Restoration turned off, it only took each user an average of .6 seconds to make 1,000 records.
For most applications and users, this isn’t likely to be a problem or even noticeable (the additional time per record in our example was .0015 seconds). However, if your application batch creates records, this could mean a pretty significant slowdown. If you have large-scale, predictable batch creations, you may even consider turning transactional logging off while you run those batch creations.
Almost everything is fast when it is first built, but your FileMaker application isn’t a statue – it changes and grows with your business. The optimization in Server 18 is FileMaker’s way of recognizing that as applications grow in size, FileMaker needs to keep up with the requests. In the same vein, Startup Restoration emphasizes better stability and less downtime caused by corrupt files. While no database engine improvement is a silver bullet for performance or stability, these optimizations are an improvement that will help applications grow with the businesses they serve even more effectively than before.
If you want to learn more about how FileMaker 18 database engine improvements can benefit your business, or you need help implementing a custom FileMaker solution, contact DB Services.
Did you know we are an authorized reseller for Claris FileMaker Licensing?
Contact us to discuss upgrading your Claris FileMaker software.
Nathan is a Certified FileMaker Developer and Salesforce consultant with a warm and accommodating approach to delivering high quality results. Personable and empathetic, he is dedicated to being a supportive team member to both clients and colleagues.