11 Replies Latest reply on Feb 25, 2016 12:24 PM by NickLightbody

    WAN Optimization secrets of the uber smart

    cdt3

      I volunteered to give a presentation next month at our local FM user group.  The topic is WAN optimization best practices with an emphasis large record sets and multiple users.  I already have a framework put together, but there are so many developers way smarter than I am and with more experience that use this community, I feel negligent if I don't ask if anyone cares to put in their two cents.  I already have access to the suggestions published by FMI.  Does anyone wish to share their secrets, experiences, or other best practices?

       

      Thanks.

        • 1. Re: WAN Optimization secrets of the uber smart
          wimdecorte

          I don't think there are any secrets left at this point

           

          The key is avoiding anything and everything that is "expensive" in terms of data round-trips between client and server:

          - whittle down the layouts to show just the bare minimum to get the work done, so favor more layouts vs one very busy one

          - using theming throughout and avoid non-FM native objects and graphics.

          - limit the found set to just what the user needs to see.  So no list view with 10,000 records

          - limit the use of unstored calcs and summary fields

          - understand the FMP behaviour or getting data for portals, tab panels, etc

           

          Then there is also the deployment to consider, the FM solution does not live in a vacuum.  Remember that data flows in both ways so both the upload & download speed at both ends is important.  If the FMS-side of the connection can download at 100mpbs but only send at 5mbps then that is not good.  Same on the client side.

          Also make sure that client machines are in good condition with plenty of free disk space.  Running out of disk space will make FMP cache less and thus make more round trips.

          • 2. Re: WAN Optimization secrets of the uber smart
            beverly

            I don't know if this is "secret" or uber smart. I just have my client's approval.

             

            CASE: need to access remotely (wifi at times) the FMServer hosted database files back in the office from the field (literally).

             

            SOLUTION 1: use of syncing, which turned out to be very painful and abandoned.

             

            SOLUTION 2 (with connection caveat): use of DATA files on the Server and INTERFACE file/db on the laptop. The interface is complex and speed is markedly faster when all the layouts, scripts, graphics, etc. no longer need to be pushed by server. The caveat, is the loss of connection to the Server (occasionally). This was acceptable to the client, as this also happens if all files are on the FMServer.

             

            NOTES:

            • Interface file also exists on FMS (for backup and use by in-office personnel), but the remote users found the separation to be most advantageous for their situation.

            • Data is mostly "pure" (few calculations and summaries) and auto-enter + scripting is used to Set Field rather than calculate wherever possible. This also seems to be an advantage to the remote users.

            • This one solution happens to need very few images (containers), so that may also be a factor.

             

            beverly

            • 3. Re: WAN Optimization secrets of the uber smart
              cdt3

              Thanks to both of you!

              • 4. Re: WAN Optimization secrets of the uber smart
                bigtom

                I will agree on the points made by beverly and wimdecorte.

                 

                • I would like to add that one thing that is overlooked often is the actual connection between the client and server. If the server has a horrible connection or limited bandwidth that is shared with all other traffic in an office this can be an issue. If the client is using a poor connection this is the same problem.
                • Use SSD storage on the server. This will help all connections anytime the server needs to grab something that is not already in the cache.
                • Use popovers and slide controls to delay the need for rendering certain data.
                • Use PSOS wisely and often.

                 

                Wacky things I have tried:

                • Have a UI file on the remote client with a web viewer that connects to the main solution via WebDirect. Don't laugh. Might sound a little silly, but this can be super fast. If you are using Go or Pro and connected to a file on FMS you cannot access that same file through WebDirect. Be careful, not to use this method without the UI file that has only 0 or 1 records. Each Web Viewer on every new record viewed creates a new concurrent connection. Why not just use WebD? You can build some controls and other UI stuff around the web viewer to keep the transferred data even lighter. Also allows you to jump to a unrelated file on a different sever quickly.
                • Do a similar thing as the above suggestion except with web viewers using CWP. This will allow a little more freedom and will give you certain benefits of a web sever for speed.

                 

                Just using a standard data separation as described by Beverly is still a better idea in most cases I think, but something to talk about at least.

                • 5. Re: WAN Optimization secrets of the uber smart
                  Mike_Mitchell

                  In addition to Wim's and Beverly's points, the data structure should also be properly normalized. So no tables with 200+ fields. Every field has to be downloaded when a record is fetched (with a few notable exceptions), so the "wider" a table is, the longer it will take to fetch the data.

                  • 6. Re: WAN Optimization secrets of the uber smart
                    beverly

                    +1

                     

                    -- sent from myPhone --

                    Beverly Voth

                    --

                    • 7. Re: WAN Optimization secrets of the uber smart
                      sreese

                      beverly - I really like the idea of the UI being separate from the data files. I'll have to try that one out.

                       

                      wimdecorte - Thank you for your insight. I always appreciate the extra depth of understanding when you post things.

                       

                      We do things slightly different here. A good portion of our users are out on the road all day long. So we have a few things:

                      • An full solution that exists on the server containing way to many files that aren't optimized because there are so many traces left from the FM 4-11 Days
                      • A solution that exists on the laptops.
                        • Since our users start the day in the building before going out on the road the DB connects to the server and performs an import of any needed data for the day.
                        • During the day the user runs completely off of their local DB unless they need to generate an ID for an incident. At which point this connects to the server and generates an incident number and a unique ID.
                        • When a new report is finished it generates a csv file and is dumped over to the server where it is picked up by a robot process and imported into the full solution.
                        • At the end of the day the users close out their shift and multiple files are generated from their local database and transferred to a share on the server where the robot process picks them up and completes the data import. The local database is then emptied when completed.

                       

                      I was actually pretty impressed by the solution when I started here. They couldn't have any downtime and this was their only solution for it.

                      • 8. Re: WAN Optimization secrets of the uber smart
                        wimdecorte

                        sreese wrote:

                         

                        beverly - I really like the idea of the UI being separate from the data files. I'll have to try that one out.

                         

                         

                        Keep in mind that everything comes at a price.  In this case there is an added deployment wrinkle to make sure the right version of the UI file is in use at all times and the mechanism to update the clients.

                        • 9. Re: WAN Optimization secrets of the uber smart
                          beverly

                          mais oui!

                          In my case, the UI exists on the FMServer and development can be remote, as well. Any recent backup of the UI file can be grabbed as needed for the desktop/laptop that would be remote.

                          • 10. Re: WAN Optimization secrets of the uber smart
                            sreese

                            wimdecorte wrote:

                             

                            Keep in mind that everything comes at a price.  In this case there is an added deployment wrinkle to make sure the right version of the UI file is in use at all times and the mechanism to update the clients.

                             

                            Absolutely. There a couple of different ways we can handle this on a windows based machine)

                            • We can have a batch process that always checks the version and updates as needed
                            • A FileMaker file that checks the version and copies the newest one down with scripts
                            • Deployment through one of the many system tools that we have available
                            • A login script that copies the files down.

                             

                            Now the caveat is that there cannot be any data in those files that we would need to keep.

                            • 11. Re: WAN Optimization secrets of the uber smart
                              NickLightbody

                              On the FMS front, you can get our free open source dsBenchmark App to test and compare the load bearing capacities of different FMS deployments and configurations, see:

                               

                              http://deskspace.com/downloads.html

                               

                              This App was released June 2015 and is in use by FM Devs and Admins all over the world - it is the only currently publicly available tool  providing FMS load testing within a Filemaker environment, i.e. without using external robot testing.

                               

                              It also serves as a library of innovative and cutting edge  high performance techniques, given that it is open source.

                               

                              Cheers, Nick