7 Replies Latest reply on May 29, 2015 7:26 AM by Matt Coles

    How can we optimize the handling of Subscriptions?

    David Daugherty

      We provide Tableau as part of a solution. We use "Sites" to separate the different customer instances.  As you might imagine, when a hundred or so users are subscribing to Views and/or Workbooks the queued reports usually takes all day to complete and send the email with the report out to the individual requester at each customer.  The main (ideal) timing for subscriptions would be daily starting at 7am - 8am, since we have nightly processing for the SSAS cube data. We do have some subs which are not daily, but the vast majority are set for 8am daily in each time zone.

       

      We are thinking of adding more schedules, especially by time zone, but I wanted to see what others might suggest to improve the response.  Some ideas being tossed around are:

      1. Additional schedules at staggered times (as mentioned above)
      2. Experimenting with the Serialization setting on each of the schedules
      3. Experimenting with the Priority setting on each of the schedules
      4. Add Worker tasks in Tableau Server (?)

       

      Thoughts? Other ideas?  How can we better manage getting subscriptions out on time?

       

      Thank you,

      W. David Daugherty

        • 1. Re: How can we optimize the handling of Subscriptions?
          Toby Erkson

          Of your listed options, #4 for sure. In the mean time, adding an additional backgrounder process or two does help.  We have a high-extract environment on an 8-core server and going from 2 to 3 and then 4 backgrounders made a world of difference for us.

           

          Use the parallel setting.  Use the Serial setting if you must have one object update before another.

           

          Priority won't help unless you have very important ones that must get out first then you would set them to a small number like 1 or 2 etc.  A Priority of 100 has the least importance.

           

          < edit > Given Matt's excellent response I've modified my response as I was incorrect   Sorry about that.

          1 of 1 people found this helpful
          • 2. Re: How can we optimize the handling of Subscriptions?
            Matt Coles

            Hey David,

             

            A little-known fact about subscriptions: They are always processed serially for a given Schedule, despite what the Schedule settings say. Only one (1) backgrounder process will be used. This means that in today's world, if you want them to run in parallel with each other at the same time, you need to create additional schedules that run at the same time (e.g., "6AM - 1" and "6AM - 2"). We currently have 8 schedules for our 6AM subscriptions. This is not only messy from the user experience perspective, but also creates additional work for the Admin since you have to balance the number of subscriptions on all the schedules every couple of weeks or so. But it's the cost for timely subscriptions when people subscribe so frequently.

             

            Once you have parallel schedules set up, also doing #4 will definitely help. Note that for extract refreshes running in parallel (which does work as expected), they are highly CPU intensive--so adding more backgrounders to your host will also increase CPU utilization for extract refreshes. If your backgrounders are running on nodes that are also running other types of processes, you could begin impacting performance for users interacting with Server. Our configuration uses two hosts that are completely dedicated to running Background Tasks, which prevents our heavy extract refresh load from impacting users.

             

            It's also worth mentioning that Subscriptions are not processed very efficiently right now. Each is processed individually, forcing a full data refresh each time, even if ten users have subscribed to the same view on the same schedule. You can work around it somewhat right now if you create a new User, set the email address to an alias, then subscribe as that user to a view that everyone on the alias needs at the same time. But that's a decent amount of work to manage and will likely only help a bit. Consider upvoting this idea to improve subscription efficiency!:

             

            http://community.tableau.com/ideas/2840

             

            thanks,

            Matt

            • 3. Re: How can we optimize the handling of Subscriptions?
              Toby Erkson

              Thank you Matt, you taught me some good info

              • 4. Re: How can we optimize the handling of Subscriptions?
                Matt Coles

                Glad to hear it! It might be apparent that I've been fighting this fight for quite some time now.

                • 5. Re: How can we optimize the handling of Subscriptions?
                  Marty Galvan

                  Hi Matt,

                  so would an Active Directory Group be a valid group? Sounds like that would work, but I'm not sure if that's what you mean?

                  So, I have a report that 15 people need so I just add them to the one distribution group.

                  What if I am passing in different parameters for the same report?

                  • 6. Re: How can we optimize the handling of Subscriptions?
                    Toby Erkson

                    Marty Galvan wrote:

                     

                    1.  so would an Active Directory Group be a valid group? Sounds like that would work, but I'm not sure if that's what you mean?

                    2.  So, I have a report that 15 people need so I just add them to the one distribution group.

                    3.  What if I am passing in different parameters for the same report?

                    2.  Yes, add them to one email distribution group.

                    3.  And...?  Not sure what you want to know   If report X is used 15 times and each time requires different parameters then it is essentially 15 different reports so a single [email] distribution won't work.

                    • 7. Re: How can we optimize the handling of Subscriptions?
                      Matt Coles

                      Hey Marty. The "send this subscription to a distribution list" workaround in the Server product requires a distribution list, e.g. "allsalesmanagers@buynlarge.com". For us, distribution lists like that didn't live in Active Directory as Groups until we got off our older hosted Exchange provider. So it probably depends on how your IT dept. is running things. But assuming you have an email address like the above, with multiple users behind it, you can do it so long as you can assign that email address to a User in Server.

                       

                      When you decide to use this kind of "broadcast Subscription" (for lack of a better term), you are basically affirming that you know that the information in it, as rendered by your custom User, is relevant and appropriate for all parties receiving it. So if you are using User Filters to show sales reps how they specifically are getting on towards their quota, this workaround isn't such a great idea. Likewise, if the different recipients of the email are all using their own Customized Views for the stuff that they care about, or if, like you said, they're passing in parameters (manually or via URL params), then the broadcast Subscription becomes less helpful.

                      1 of 1 people found this helpful