4 Replies Latest reply on Sep 2, 2013 5:03 AM by Russell Christopher

    Cache a view on Tableau Server

    Charles Firkins

      I have a Tableau server 7.0 setup.  I have noticed a significant performance difference when a view is first accessed in the morning.  Subsequent loads of the view are considerable (several seconds) faster.  I am thinking this is related to cacheing at some level in the process.  The views have live database connections to SQL Server.

       

      I have poked at running a Windows PowerShell script to "touch" the URL tied to the view and get keep the cache "warm" and am having some difficulties due to security restrictions in my environment that I do not control.

       

      Is there a way directly in Tableau to "touch" the view and have the cache "warm"?

        • 1. Re: Cache a view on Tableau Server
          Russell Christopher

          Hey Charles -

           

          It's not quite that simple, unfortunately. There are generally two-to-many duplicate process (VizQLServer) that are responsible for rendering a report on Tableau Server. Multiple VizQLServer processes allow Tableau Server to scale.

           

          When you "touch" an URL, one of those VizQLServers is called to render the report, and therefore that specific process's cache is warmed - but not the other 1-many copies. So, to really warm the cache, you'd have to make sure the same request got to every single process on the server, which is exceedingly difficult to do as requests to render a report are routed to a VizQLServer process by an internal process you have no control over.

           

          I guess if you logged in, made a request, logged out, and repeated many, many times, you could be semi-sure every cache for your VizQLServers had been warmed - but it would be guesswork, really....

          • 2. Re: Cache a view on Tableau Server
            Charles Firkins

            So our server has 2 VizQL instances up,

             

            What if I were to "ping" the webpage repeatably, would that load all the VizQL instances with the data over time?

            • 3. Re: Cache a view on Tableau Server
              Tina Matt

              This is the same kind of environment we have.

               

              I am thinking, we could try tabcmd commands to keep warming the views repeatedly. Does the percentage of cache hits increase by half assuming we have just two VizQL servers.

               

              Please let me your thoughts.

               

              Regards,

              Tina.

              • 4. Re: Cache a view on Tableau Server
                Russell Christopher

                Requesting a report via tabcmd actually uses a different process (the application server - wgserver.exe) to render the reports - so using it won't warm the vizql caches - you'll need to request reports externally.

                 

                Tableau Server 8 also added a new feature called "shared sessions" which allows us to use a shared session on a single vizql process across multiple requests for the same, unmodified report. So even if you request the same report over and over using different browsers, etc, the SAME vizql process is responding to them. You'd actually have to request different reports and/or modify filter values or something to get "out" of the shared session.