PRESENTED BY
Alan Eldridge
Sales Consultant
Tableau Software Australia
What we will cover…
• Architecture
• Scalability & Availability
• Caching
©2011 Tableau Software Inc. All rights reserved.
Overview
©2011 Tableau Software Inc. All rights reserved.
extract
Information
consumers
(Tableau Reader)
connect
live
Tableau Desktop
Self-service visual
data analysis
Repository
Presentation
connect
live
Data
Server
Cache
extract
Security
Management/Automation
Tableau Server
Rapid fire business intelligence
Web & mobile
users
(Tableau Server
interactors)
Architecture
©2011 Tableau Software Inc. All rights reserved.
Terminology
• Process – an instance of a computer program that is being
executed. It has its own set of resources (e.g. memory) that
are not shared with other processes.
• Thread – a process may run multiple threads to perform
instructions in parallel. Threads within a process share
resources (e.g. memory).
• Server – a program running to serve the requests of other
programs. The term is also used to refer to a physical
computer dedicated to run one or more services.
©2011 Tableau Software Inc. All rights reserved.
Tableau Server
Data
Relational
OLAP
Files
Tableau Server
Data
Tableau Server
Clients
Relational
Browser/Mobile
OLAP
Files
Tableau Desktop
Command Line
Tools
Data
Relational
Receives incoming client requests and
directs them to the appropriate service for
action
Acts as a load balancer, routing traffic
round-robin to service instances
Single-process; multi-threaded
Files
Gateway/Load Balancer
Returns HTML responses to client
OLAP
Clients
Tableau Server
Browser/Mobile
Tableau Desktop
Command Line
Tools
Data
Relational
Clients
Tableau Server
Processes logins, content searches,
user/group/permission management, and
other tasks not related to visualizing data
Works in conjunction with data stored in
the Repository
Gateway/Load Balancer
Multi-server; multi-process; multi-threaded
OLAP
Browser/Mobile
Tableau Desktop
App
Server
Files
Command Line
Tools
Data
Clients
Tableau Server
Stores Tableau Server metadata: users,
group assignments, permissions, projects,
etc.
Relational
Also stores flat files used as data sources
Gateway/Load Balancer
Responds to queries from other services
when they need metadata
Has a SQL interface so external applications
can connect (read-only)
OLAP
Repository
Browser/Mobile
Tableau Desktop
App
Server
Command Line
Tools
Files
Active Directory
If used, verifies authentication in
conjunction with the App Server and
Repository
Data
Clients
Tableau Server
Provides same functionality as Tableau Desktop,
processing requests related to data visualisation
Includes built-in caching (more on this later…)
Relational
Multi-server; multi-process; multi-threaded
Repository
VizQL
Server
Gateway/Load Balancer
Data Source Drivers
OLAP
Native drivers need to be installed for each data
source (32-bit)
Browser/Mobile
Tableau Desktop
App
Server
Command Line
Tools
Files
Active Directory
Data
Clients
Tableau Server
Relational
Data Extract
Host
Gateway/Load Balancer
Data Source Drivers
OLAP
VizQL
Server
Browser/Mobile
Tableau Desktop
Invoked when a
visualisation including a
data extract is published
Stores and processes data
extracts
Repository
Multi-threaded; 64-bit
App
Server
Command Line
Tools
Files
Active Directory
Data
Clients
Tableau Server
Relational
Backgrounder
VizQL
Server
Controls tasks that ensure
Tableau Server is running
smoothly and efficiently
When the Data Extract Host
is used, also handles
scheduled data refreshes
Repository
Multi-server; multi-process
Gateway/Load Balancer
Data Source Drivers
OLAP
Data Extract
Host
Browser/Mobile
Tableau Desktop
App
Server
Command Line
Tools
Files
Active Directory
Data
Invoked when a data source is published
via Tableau Desktop
Data
Server
Serves as proxy between requests for
data and individual data sources
Relational
Backgrounder
Data Extract
Enables centralized metadata
Host
management for data sources and an
additional layer of access control
Allows centralized driver deployment
Allows multiple workbooks to us the
same data extract
VizQL
Server
Multi-server; multi-process; multithreaded; 32-bit
Repository
Gateway/Load Balancer
Data Source Drivers
OLAP
Clients
Tableau Server
Browser/Mobile
Tableau Desktop
App
Server
Command Line
Tools
Files
Active Directory
Data
Clients
Tableau Server
Data
Server
Relational
Backgrounder
VizQL
Server
Repository
Gateway/Load Balancer
Data Source Drivers
OLAP
Data Extract
Host
Browser/Mobile
Tableau Desktop
App
Server
Command Line
Tools
Files
Active Directory
Server Monitoring
What you see running…
©2011 Tableau Software Inc. All rights reserved.
Scalability & Availability
©2011 Tableau Software Inc. All rights reserved.
Terminology
• Scalability – scalability is about supporting multiple
simultaneous actions, not about making a single action faster.
• Availability – the ability of a solution to be resistant to
component failures. Increasing the availability of a solution will
increase the cost.
©2011 Tableau Software Inc. All rights reserved.
Terminology
• Scale Up – adding more resources (CPU, RAM, etc) to a
single server.
• Scale Out – adding more resources (CPU, RAM, etc) by
adding more servers in a “cluster”.
• Multi-Process – adding more throughput by running multiple
instances of a process or service. These can be on a single
server or can be distributed across multiple servers.
• Multi-Threaded – within a process, being able to perform
multiple tasks simultaneously across multiple CPUs.
©2011 Tableau Software Inc. All rights reserved.
Terminology
• Single Point of Failure – within a solution, a component that
if it fails will cause the solution to fail as a whole.
• Active/Active – when all instances of a multi-process service
will process requests.
• Active/Passive – when only some instances of a multiprocess service will process requests and the other instances
are only activated in the event of a component failure.
©2011 Tableau Software Inc. All rights reserved.
Server Scalability
Service
Multi-Process
Multi-Threaded
High Availability
VizQL Server
Yes
Yes
Active/Active
Data Server
Yes
Yes
Active/Active
Application Server
Yes
Yes
Active/Active
Backgrounder
Yes
No
Active/Active
Data Extract Host
No
Yes
Active/Passive
Repository
No
No
Active/Passive
Gateway
No
No
Manual Failover
©2011 Tableau Software Inc. All rights reserved.
Server Scalability
Primary Node
Gateway
Web Server
Application Server
2
VizQL Server
2
Data Server
2
Backgrounder
2
Active Extract Host
Active
Repository
Starting with a single server – everything is installed on one machine…
Server Scalability
Primary Node
Gateway
Web Server
Application Server
↑
VizQL Server
↑
Data Server
↑
Backgrounder
↑
Active Extract Host
Active
Repository
Scale up - add more resources and run more service instances if required.
Server Scalability
Server Scalability
Primary Node
Worker Node
Gateway
2
Application Server
2
VizQL Server
2
VizQL Server
2
Data Server
2
Data Server
2
Backgrounder
2
Backgrounder
2
Web Server
Web Server
Application Server
Active Extract Host
Active
Repository
Scale out – add a worker node running some or all of the services.
Server Scalability
Server Scalability
Primary Node
Worker Node
Gateway
2
Application Server
2
VizQL Server
2
VizQL Server
2
Data Server
2
Data Server
2
Backgrounder
2
Backgrounder
2
Web Server
Web Server
Application Server
Active Extract Host
Standby Extract Host
Active
Repository
Standby
Repository
Scale out – add a worker node running some or all of the services.
Server Scalability
Primary Node
Worker Node
Gateway
2
Application Server
2
VizQL Server
2
VizQL Server
2
Data Server
2
Data Server
2
Backgrounder
2
Backgrounder
2
Web Server
Web Server
Application Server
Failed Extract Host
Standby Extract Host
Failed
Repository
Standby
Repository
If the extract host or the repository fail…
Server Scalability
Primary Node
Worker Node
Gateway
2
Application Server
2
VizQL Server
2
VizQL Server
2
Data Server
2
Data Server
2
Backgrounder
2
Backgrounder
2
Web Server
Web Server
Application Server
Failed Extract Host
Active Extract Host
Failed
Repository
Active
Repository
… the standby will take over as the active.
Server Scalability
Primary Node
Worker Node
Gateway
2
Application Server
2
VizQL Server
2
VizQL Server
2
Data Server
2
Data Server
2
Backgrounder
2
Backgrounder
2
Web Server
Web Server
Application Server
Standby Extract Host
Active Extract Host
Standby
Repository
Active
Repository
When the failure is repaired, it starts up in standby mode.
Server Scalability
Primary Node
Worker Node
Gateway
2
Application Server
2
VizQL Server
2
VizQL Server
2
Data Server
2
Data Server
2
Web Server
Web Server
Application Server
Standby Extract Host
Active Extract Host
Standby
Repository
Active
Repository
Web Server
Backgrounder
↑
Worker Node
Worker nodes don’t need all the services – e.g. handling lots of extract refreshes…
Server Scalability
Primary Node
Worker Node
Web Server
Gateway
Worker Node
2
Application Server
2
VizQL Server
2
VizQL Server
2
Data Server
2
Data Server
2
Backgrounder
2
Backgrounder
2
Web Server
Web Server
Application Server
Standby Extract Host
Active Extract Host
Standby
Repository
Active
Repository
Separate the gateway and now our architecture starts to have HA properties…
Server Scalability
Primary Node
Worker Node
Worker Node
Web Server
Gateway
Web Server
Server
Down
Application Server
2
VizQL Server
2
Data Server
2
Backgrounder
2
Active Extract Host
Active
Repository
We can survive a total server failure of any worker node.
Server Scalability
Primary Node
Worker Node
Web Server
Active Gateway
Worker Node
2
Application Server
2
VizQL Server
2
VizQL Server
2
Data Server
2
Data Server
2
Backgrounder
2
Backgrounder
2
Web Server
Web Server
Web Server
Application Server
Standby Extract Host
Active Extract Host
Standby
Repository
Active
Repository
Failover Gateway
For full HA, we require a failover gateway server.
Server Scalability
Worker Node
Server
Down
Worker Node
2
Application Server
2
VizQL Server
2
VizQL Server
2
Data Server
2
Data Server
2
Backgrounder
2
Backgrounder
2
Web Server
Web Server
Web Server
Application Server
Standby Extract Host
Active Extract Host
Standby
Repository
Active
Repository
Failover Gateway
In the event of a gateway failure…
Server Scalability
Worker Node
Server
Down
Worker Node
2
Application Server
2
VizQL Server
2
VizQL Server
2
Data Server
2
Data Server
2
Backgrounder
2
Backgrounder
2
Web Server
Web Server
Web Server
Application Server
Standby Extract Host
Active Extract Host
Standby
Repository
Active
Repository
Active Gateway
Primary Node
… we activate the failover gateway, but this is not automatic.
Caching
©2011 Tableau Software Inc. All rights reserved.
Terminology
• Performance – the speed with which a single process can be
completed, assuming no contention for resources.
• Caching – a transparent store of values that have been
calculated so that future requests for the same data can be
serviced more quickly.
©2011 Tableau Software Inc. All rights reserved.
Caching
Dashboard
Gateway
1. Image Tile
Cache
VizQL
Server
Data Source
©2011 Tableau Software Inc. All rights reserved.
Image Tile Cache
• Dashboards are delivered to
the client as a series of
image “tiles” – these are
assembled to show the
complete dashboard.
• We can use this cache if:
• Same dashboard (duh!)
• No per-user security
• Same dashboard size
• Handled by the gateway
service, one per VizQL
worker node
©2011 Tableau Software Inc. All rights reserved.
Image Tile Cache
• There is one single, simple
step you can take to
maximise the reuse of image
tiles…
• Fixed size dashboards!
©2011 Tableau Software Inc. All rights reserved.
If We Miss the Image Tile Cache…
Dashboard
Gateway
1. Tile Cache
VizQL
Server
Data Source
2. Model
Cache
©2011 Tableau Software Inc. All rights reserved.
Model Cache
• When re-rendering the
dashboard we check to see
if computations have already
be done
• calculated fields, table
calculations, reference
lines, trend lines, etc
• We can use this cache if:
• No change to data
• No change to calcs
• Model cache is RAM based
per VizQL server instance
©2011 Tableau Software Inc. All rights reserved.
If We Miss the Model Cache…
Dashboard
Gateway
1. Tile Cache
VizQL
Server
2. Model
Cache
3. Query
Result Cache
Data Source
©2011 Tableau Software Inc. All rights reserved.
Query Result Cache
• The query result cache
holds the results from
queries we have sent to data
sources
• We can use this cache if:
• Dimensions and measures
are the same
• Filters are the same – this
means no per user security
• Cache has not expired or is
not explicitly bypassed
• Query result cache is RAM
based per VizQL server
instance
©2011 Tableau Software Inc. All rights reserved.
Managing Caching
©2011 Tableau Software Inc. All rights reserved.
Managing Caching
• Model cache
• vizqlserver.modelcachesize:30
• The number of models to cache, where there is one model per
viz instance in a workbook
• Query result cache
• vizqlserver.querycachesize:64
• The size in megabytes of query results to cache
©2011 Tableau Software Inc. All rights reserved.
Managing Caching
• Distributing components is a scalability strategy, not a
performance strategy
• Caching is per-process
• Distribution can hurt performance due to missing the cache
©2011 Tableau Software Inc. All rights reserved.
One Last Layer…
Dashboard
Gateway
1. Tile Cache
VizQL
Server
2. Model
Cache
3. Query
Result Cache
Data Extract
Data Source
©2011 Tableau Software Inc. All rights reserved.
Extracts
• Also can be used as a form
of cache to improve user
response times
• Using aggregated extracts
can improve performance
even further (at the sacrifice
of granularity)
• Can be scheduled to refresh
fully or incrementally
• Using the Data Server they
can be shared across
multiple workbooks
©2011 Tableau Software Inc. All rights reserved.
Extracts
©2011 Tableau Software Inc. All rights reserved.
Summary
• Tableau Server provides a flexible, scalable architecture that
(in general) can look after itself.
• Growing a Tableau Server installation to support more users
and data is simple and does not require deep technical skills.
• By understanding how Tableau Server’s caching mechanisms
work, we can design our dashboards for optimal performance.
• Unless you have a reason not to, make all dashboards fixed
size.
©2011 Tableau Software Inc. All rights reserved.
Q&A
©2011 Tableau Software Inc. All rights reserved.