SlideShare a Scribd company logo
1 of 6
Download to read offline
TECHNICAL NOTE




SwiftKnowledge
Interactive Data Streaming ™
In-Memory Performance is
More than Just a Database Issue
TECHNICAL NOTE


    SwiftKnowledge
    Interactive Data
    Streaming



                       Executive Summary
                       A key component of a successful business intelligence (BI) implementation—defined as one that
                       promotes widespread adoption and continued usage—is creating a positive experience for a user audience
                       characterized by a wide variety of needs and spectrum of technical abilities. Regardless of the user’s
                       background, high performance—whether referring to the ability to analyze large data sets or provide
                       rapid responses to user requests or actions—is an important component of this positive user experience.

                       As a result, the concept of “in-memory” databases, or “caching,” recently has grown in popularity as BI
                       vendors tout the storage of data or metadata as the mechanism driving fast access and analysis. With
                       regards to BI, the concept refers to storing data or metadata in memory (i.e. RAM), rather than physically
                       on a disk, which enables users to more easily and readily access the data—or any manipulation of that
                       data—on-demand.

                       While this concept may not be a new one, its popularity continues to grow as the cost of hardware
                       memory decreases and CPU processing speed expands. Combine that scenario with the vast amounts of
                       data generated in businesses every day and the desire to find more valuable insight within that data, and
                       suddenly in-memory becomes a very appealing approach for many companies.

                       Yet caching of data in memory is just one of the many components that can help deliver high performance
                       in BI. If the rush to in-memory caching results in the neglect of other key areas of the solution, it’s likely
                       the gains achieved by such an approach will be offset and likely outweighed by the losses, resulting in
                       waning adoption and usage.

                       To address this concern, SwiftKnowledge advocates a multi-faceted, hybrid approach to high performance,
                       one that optimizes performance for end users throughout their entire experience in the BI solution.
                       We believe this approach provides specific advantages in the areas of connection pooling, session
                       state, query creation and data record set loading over a standard, database-centric, in-memory approach.

                       This tech note explains SwiftKnowledge’s approach to in-memory analytics—an approach powered by our
                       patented Interactive Data Streaming™ (IDS) technology—and the benefits it helps organizations realize.




2
TECHNICAL NOTE


                                                                                                             SwiftKnowledge
                                                                                                             Interactive Data
                                                                                                                   Streaming



A Better Approach to High Performance than In-Memory Analytics




                  SESSION CACHE

        Dictionary                   State


     Data Loading             Data Requesting                          PROPRIETARY
                                                                  ge                        MDMS
                                                               led        CACHE
    Page Generation          SK Metadata Cache              ow
                                                          Kn n
                                                       ift ctio
                                                     Sw ne               Metadata
                             • Query Generator         n
   Data Packet Engine                                Co ling
                             • Incremental Queries   Poo                                     RDMS
    “Load on Scroll”
                             • Page Request                                Data


Figure 1: Multiple facets of a hybrid approach.



Interactive Data Streaming is comprised of four essential elements: session cache, data loader, metadata
cache and connection pooling (Figure 1). The combination of all these elements ensures high performance
for an end user throughout any action or activity within the application, whether navigating through con-
tent, running complex queries or loading results for consumption.

Like other BI software applications, IDS also leverages the resident database management system
(DBMS)—Microsoft® SQL Server™ in the sample scenario above—to take advantage of any proprietary,
in-memory cache structures available for the data or metadata.

The SwiftKnowledge session cache operates in a manner similar to cookies for web browsers. Where a
cookie might help a web site determine if you have visited it before, who you are, which areas of the
site interested you, etc., the SwiftKnowledge session cache keeps track of your current state, which can
include the following:

         Currently active dashboard                         Group membership

         Currently active report                            Cube security, as defined at the group level

         Connection in use                                  Report save status


SwiftKnowledge uses its session cache to properly assign rights and cube security during user actions,
such as browsing the menu or accessing a report. Since SwiftKnowledge may reference this session infor-
mation frequently, it’s cached for performance enhancement reasons. As a result, as users move about
the application, content retrieval and loading is accelerated.




                                                                                                                                3
TECHNICAL NOTE


    SwiftKnowledge
    Interactive Data
    Streaming



                       Data Loader
                       The SwiftKnowledge approach to data loading benefits users with its speed of delivery. While there may
                       be several million rows of data available in memory, database or disk, it is impractical to return a full
                       data set to users because the request could overwhelm the browser. Even if the browser could manage
                       the request, users would likely be overwhelmed by the amount of data they receive since they only can
                       process and understand a finite amount of information at any one time. And, a user typically does not
                       need a full data set delivered to their browser if their intent only was to follow a specific path through the
                       data—perhaps tracking outliers or exceptions—to get to their answers.

                       The SwiftKnowledge data loader takes these elements into consideration and is largely responsible for
                       providing the high level of responsiveness SwiftKnowledge end users have come to expect. As a result,
                       SwiftKnowledge’s data loader and data packet engine interact with the query generator to present data
                       only if and when the user asks for it.

                       Equally important to the end user experience is what happens when additional, incremental data is
                       retrieved and displayed on a report page. To facilitate this experience, a SwiftKnowledge page generator
                       seamlessly delivers content only to the section of the page that demands it. The rest of the page remains
                       static, thus avoiding any overhead dealing
                       with modifications, until the user chooses to
                       interact with the rest of the page.

                       Figure 2 shows one example of the incre-
                       mental retrieval of data as executed within
                       SwiftKnowledge. In this case, it’s being
                       delivered in a report filter, 100 rows at a time
                       from a 4,171 row data set. As the user scrolls,
                       additional data packets load. This capability
                       is what we refer to as “load on scroll.” The
                       user can choose to act on the record set at
                       any point, retrieve the next data packet, (i.e.
                       select a value) or leave the filter entirely.

                       In Figure 3 (shown on the next page), after the
                       first data packet from a record set loads into
                       the grid (showing details at the state level), the
                                                                           Figure 2: SwiftKnowledge’s “load on scroll” capability.
                       user drills down on a specific member and
                       expands into another level of detail (cities within
                       a state), then continues that process several times until seeing specific bank information. In this situation,
                       an incremental query is created and generated, and then inserted without re-loading the existing data set.

                       In each case, at all levels of data, only the first packet loads for each new record set until the user
                       chooses to explore and load more data on demand. If the entire record set had to re-load each time,
                       the process would require much more time—resulting in the familiar fade-in and fade-out of pages many
                       users see with other applications—and user interest and their ability to seamlessly analyze data would
                       deteriorate, thus degrading adoption and use.

                       Metadata Cache
                       While retrieving the record set needed for a given report, it is likely other users, or the same user running
                       another query, may benefit from metadata already present in the SwiftKnowledge cache (while at the
                       same time adding to that cache), rather than running repeated requests for the same objects on every
                       user action.

4
TECHNICAL NOTE


                                                                                                                  SwiftKnowledge
                                                                                                                  Interactive Data
                                                                                                                        Streaming




Figure 3: Incremental queries with SwiftKnowledge.


SwiftKnowledge initially retrieves any necessary metadata needed for query generation and execution,
and then stores the hierarchy names, dimension names, level names and member data in its cache for
future use. The SwiftKnowledge metadata cache expands in content and value as more users explore
different areas of a given cube. This process creates greater efficiency for subsequent query generation
and execution as it becomes “smarter” with each executed query.

Connection Pooling
Creating a database connection on demand can be costly, from both a CPU and time perspective.
SwiftKnowledge alleviates this expense by efficiently managing and re-utilizing existing connections—
both within and across users—which decreases the overall number of new connections needed to meet
the needs of the user population.

Once a connection to a SwiftKnowledge-accessible data source is established, SwiftKnowledge can share
this connection with other users who need access to the same data source. As a result, any SwiftKnowledge
queries can be completed in sub-second times, providing ample opportunity to make this connection
available for another user. For example, a single connection serving one user’s request for a member list
when opening a filter box can be re-assigned to another user’s request to drill down in a grid report, from
a higher- to lower-level.

In fact, a single connection can serve two concurrent users interacting with multiple reports. For instance,
when a report first displays data on a page, there is a high likelihood that the user will spend a few, if not
several, seconds observing or consuming the output. During this time, another user may retrieve data
from a completely different report that accesses the same data source. This user may also spend time
digesting the output from their report while the first user decides to open a filter box and narrow the
range of their report to hone in the detail they need. As long as neither user requires a connection at the
exact same time, there may never be a need to create a second connection, especially considering that
many queries complete in milliseconds.


                                                                                                                                     5
TECHNICAL NOTE


   SwiftKnowledge
   Interactive Data
   Streaming



                                       Conclusion
                                       High performance BI requires more than just caching large data sets in memory. Important
                                       considerations include:

                                                       How to efficiently manage                                                               How to make large record sets available
                                                       connections in a pooled environment                                                     to users on demand, in the most effective
                                                                                                                                               manner possible
                                                       How to efficiently construct and
                                                       insert queries into existing record sets
                                                       with minimal overhead

                                       In addition to leveraging the in-memory caching available within standard data engines, SwiftKnowledge
                                       provides a high-performance user experience designed to promote maximum adoption and ongoing usage.

                                       SwiftKnowledge caches the entire user experience within its BI application, including cached information
                                       such as where they have been, their actions, and similarities between their actions and those of other
                                       users—similar to the “smart” web sites common in the retail industry.

                                       Regardless of whether in-memory data is available via a third-party vendor DBMS to SwiftKnowledge, our
                                       hybrid approach consisting of IDS and “intelligent” caching provides a clear performance advantage over
                                       other vendors attempting to match SwiftKnowledge’s “web time” user experience. And this advantage
                                       becomes particularly important when cost is a key consideration.

                                       With SwiftKnowledge, more users can analyze larger volumes of data, while minimizing the demand
                                       for expensive, back-end hardware.




                                       Find out more about how SwiftKnowledge IDS
                                       can be the differentiator to a more successful
                                       BI implementation.

                                       Contact us at 952.832.0166 or
                                       www.swiftknowledge.com.




11010 Prairie Lakes Drive, Suite 155
                                       SwiftKnowledge, LLC is a global software provider of powerful, patented business intelligence (BI) technology delivering a breakthrough experience for business users which
Eden Prairie MN 55344                  drives strategic metrics and enables better decision-making throughout an organization. The SwiftKnowledge BI platform enables a new era of easy-to-use BI applications offering
Tel: 952.832.0166                      a revolutionary, ad-hoc analysis experience in web time and with a zero-footprint web deployment; with its patented Interactive Data Streaming™ (IDS) and Component-Level
                                       Security™ (CLS), SwiftKnowledge provides unmatched performance, scalability and security. The company’s unique approach and support for cloud computing-based deployments
Fax: 952.832.0269
                                       and applications provides a robust yet sustainable solution for organizations integrating BI into operational applications; seeking an easy-to-use tool for heavy, ad-hoc BI workloads;
Toll free: 866.283.3405
                                       and operating within the limitations of constrained IT resources. For more information, visit www.swiftknowledge.com.
Email: info@swiftknowledge.com
                                       © 2010 SwiftKnowledge. SwiftKnowledge and the SwiftKnowledge logo are registered trademarks or trademarks of
www.swiftknowledge.com                 SwiftKnowledge, LLC in the USA and other countries. All other trade names are the property of their respective owner.

More Related Content

What's hot

SplunkLive! New York April 2013 - Enrich Machine Data with Structured Data
SplunkLive! New York April 2013 - Enrich Machine Data with Structured DataSplunkLive! New York April 2013 - Enrich Machine Data with Structured Data
SplunkLive! New York April 2013 - Enrich Machine Data with Structured Data
Splunk
 
Everything Self-Service:Linked Data Applications with the Information Workbench
Everything Self-Service:Linked Data Applications with the Information WorkbenchEverything Self-Service:Linked Data Applications with the Information Workbench
Everything Self-Service:Linked Data Applications with the Information Workbench
Peter Haase
 
Linked Data as a Service
Linked Data as a ServiceLinked Data as a Service
Linked Data as a Service
Peter Haase
 
Storage 2.0 (Unstructured Data)
Storage 2.0 (Unstructured Data)Storage 2.0 (Unstructured Data)
Storage 2.0 (Unstructured Data)
Vikas Deolaliker
 
Elastic Caching for a Smarter Planet - Make Every Transaction Count
Elastic Caching for a Smarter Planet - Make Every Transaction CountElastic Caching for a Smarter Planet - Make Every Transaction Count
Elastic Caching for a Smarter Planet - Make Every Transaction Count
Yakura Coffee
 
CYBER INFRASTRUCTURE AS A SERVICE TO EMPOWER MULTIDISCIPLINARY, DATA-DRIVEN S...
CYBER INFRASTRUCTURE AS A SERVICE TO EMPOWER MULTIDISCIPLINARY, DATA-DRIVEN S...CYBER INFRASTRUCTURE AS A SERVICE TO EMPOWER MULTIDISCIPLINARY, DATA-DRIVEN S...
CYBER INFRASTRUCTURE AS A SERVICE TO EMPOWER MULTIDISCIPLINARY, DATA-DRIVEN S...
ijcsit
 

What's hot (20)

S18 das
S18 dasS18 das
S18 das
 
Ch03
Ch03Ch03
Ch03
 
Tim Marston.
Tim Marston.Tim Marston.
Tim Marston.
 
SplunkLive! New York April 2013 - Enrich Machine Data with Structured Data
SplunkLive! New York April 2013 - Enrich Machine Data with Structured DataSplunkLive! New York April 2013 - Enrich Machine Data with Structured Data
SplunkLive! New York April 2013 - Enrich Machine Data with Structured Data
 
Everything Self-Service:Linked Data Applications with the Information Workbench
Everything Self-Service:Linked Data Applications with the Information WorkbenchEverything Self-Service:Linked Data Applications with the Information Workbench
Everything Self-Service:Linked Data Applications with the Information Workbench
 
Challenges Management and Opportunities of Cloud DBA
Challenges Management and Opportunities of Cloud DBAChallenges Management and Opportunities of Cloud DBA
Challenges Management and Opportunities of Cloud DBA
 
Cloudian at cassandra conference in tokyo
Cloudian at cassandra conference in tokyoCloudian at cassandra conference in tokyo
Cloudian at cassandra conference in tokyo
 
Linked Data as a Service
Linked Data as a ServiceLinked Data as a Service
Linked Data as a Service
 
Product overview 6.0 v.1.0
Product overview 6.0 v.1.0Product overview 6.0 v.1.0
Product overview 6.0 v.1.0
 
SnapLogic corporate presentation
SnapLogic corporate presentationSnapLogic corporate presentation
SnapLogic corporate presentation
 
BFC: High-Performance Distributed Big-File Cloud Storage Based On Key-Value S...
BFC: High-Performance Distributed Big-File Cloud Storage Based On Key-Value S...BFC: High-Performance Distributed Big-File Cloud Storage Based On Key-Value S...
BFC: High-Performance Distributed Big-File Cloud Storage Based On Key-Value S...
 
Cloud Computing Ambiance using Secluded Access Control Method
Cloud Computing Ambiance using Secluded Access Control MethodCloud Computing Ambiance using Secluded Access Control Method
Cloud Computing Ambiance using Secluded Access Control Method
 
CentreView 2010
CentreView 2010CentreView 2010
CentreView 2010
 
Myth Busters III: I’m Building a Data Lake, So I Don’t Need Data Virtualization
Myth Busters III: I’m Building a Data Lake, So I Don’t Need Data VirtualizationMyth Busters III: I’m Building a Data Lake, So I Don’t Need Data Virtualization
Myth Busters III: I’m Building a Data Lake, So I Don’t Need Data Virtualization
 
IRJET- Generate Distributed Metadata using Blockchain Technology within HDFS ...
IRJET- Generate Distributed Metadata using Blockchain Technology within HDFS ...IRJET- Generate Distributed Metadata using Blockchain Technology within HDFS ...
IRJET- Generate Distributed Metadata using Blockchain Technology within HDFS ...
 
Storage 2.0 (Unstructured Data)
Storage 2.0 (Unstructured Data)Storage 2.0 (Unstructured Data)
Storage 2.0 (Unstructured Data)
 
Data Vault and DW2.0
Data Vault and DW2.0Data Vault and DW2.0
Data Vault and DW2.0
 
Elastic Caching for a Smarter Planet - Make Every Transaction Count
Elastic Caching for a Smarter Planet - Make Every Transaction CountElastic Caching for a Smarter Planet - Make Every Transaction Count
Elastic Caching for a Smarter Planet - Make Every Transaction Count
 
A database management system
A database management systemA database management system
A database management system
 
CYBER INFRASTRUCTURE AS A SERVICE TO EMPOWER MULTIDISCIPLINARY, DATA-DRIVEN S...
CYBER INFRASTRUCTURE AS A SERVICE TO EMPOWER MULTIDISCIPLINARY, DATA-DRIVEN S...CYBER INFRASTRUCTURE AS A SERVICE TO EMPOWER MULTIDISCIPLINARY, DATA-DRIVEN S...
CYBER INFRASTRUCTURE AS A SERVICE TO EMPOWER MULTIDISCIPLINARY, DATA-DRIVEN S...
 

Viewers also liked

Twitter marketing 101
Twitter marketing 101Twitter marketing 101
Twitter marketing 101
Ivan Correces
 
Using videos to drive traffic
Using videos to drive trafficUsing videos to drive traffic
Using videos to drive traffic
Ivan Correces
 
Ο μικρός Βούδας λέει...
Ο μικρός Βούδας λέει...Ο μικρός Βούδας λέει...
Ο μικρός Βούδας λέει...
Ioannis Papanikolaou
 
Αθήνα:Παλιές φωτογραφίες
Αθήνα:Παλιές φωτογραφίεςΑθήνα:Παλιές φωτογραφίες
Αθήνα:Παλιές φωτογραφίες
Ioannis Papanikolaou
 
13002
1300213002
13002
ACN
 
ใบความรู้ Sugesstion
ใบความรู้ Sugesstionใบความรู้ Sugesstion
ใบความรู้ Sugesstion
Sopa
 

Viewers also liked (20)

Twitter marketing 101
Twitter marketing 101Twitter marketing 101
Twitter marketing 101
 
New Roles & Skills for the New Normal: The multi skilling academic librarian ...
New Roles & Skills for the New Normal: The multi skilling academic librarian ...New Roles & Skills for the New Normal: The multi skilling academic librarian ...
New Roles & Skills for the New Normal: The multi skilling academic librarian ...
 
Build Your Team
Build Your TeamBuild Your Team
Build Your Team
 
Prezentarea de la evenimentul ”Aradul meu”
Prezentarea de la evenimentul ”Aradul meu”Prezentarea de la evenimentul ”Aradul meu”
Prezentarea de la evenimentul ”Aradul meu”
 
Tame the Expense Beast
Tame the Expense BeastTame the Expense Beast
Tame the Expense Beast
 
Using videos to drive traffic
Using videos to drive trafficUsing videos to drive traffic
Using videos to drive traffic
 
worlds top strangest buildings!
worlds top strangest buildings!worlds top strangest buildings!
worlds top strangest buildings!
 
Neighborhood/Community Rebranding/Repositioning engagement
Neighborhood/Community Rebranding/Repositioning engagementNeighborhood/Community Rebranding/Repositioning engagement
Neighborhood/Community Rebranding/Repositioning engagement
 
Silicone Heel Pad
Silicone Heel PadSilicone Heel Pad
Silicone Heel Pad
 
Ο μικρός Βούδας λέει...
Ο μικρός Βούδας λέει...Ο μικρός Βούδας λέει...
Ο μικρός Βούδας λέει...
 
cool ads
cool adscool ads
cool ads
 
Best photos cnn photos
Best photos  cnn photosBest photos  cnn photos
Best photos cnn photos
 
Blog en Nord - Valenciennes
Blog en Nord - ValenciennesBlog en Nord - Valenciennes
Blog en Nord - Valenciennes
 
Great Photos 2012
Great Photos 2012Great Photos 2012
Great Photos 2012
 
Old america
Old americaOld america
Old america
 
Cassandra Community Webinar - Introduction To Apache Cassandra 1.2
Cassandra Community Webinar  - Introduction To Apache Cassandra 1.2Cassandra Community Webinar  - Introduction To Apache Cassandra 1.2
Cassandra Community Webinar - Introduction To Apache Cassandra 1.2
 
Q 150 ing
Q 150 ing Q 150 ing
Q 150 ing
 
Αθήνα:Παλιές φωτογραφίες
Αθήνα:Παλιές φωτογραφίεςΑθήνα:Παλιές φωτογραφίες
Αθήνα:Παλιές φωτογραφίες
 
13002
1300213002
13002
 
ใบความรู้ Sugesstion
ใบความรู้ Sugesstionใบความรู้ Sugesstion
ใบความรู้ Sugesstion
 

Similar to Interactive Data Streaming

Cloud Analytics Ability to Design, Build, Secure, and Maintain Analytics Solu...
Cloud Analytics Ability to Design, Build, Secure, and Maintain Analytics Solu...Cloud Analytics Ability to Design, Build, Secure, and Maintain Analytics Solu...
Cloud Analytics Ability to Design, Build, Secure, and Maintain Analytics Solu...
YogeshIJTSRD
 

Similar to Interactive Data Streaming (20)

ADV Slides: The Evolution of the Data Platform and What It Means to Enterpris...
ADV Slides: The Evolution of the Data Platform and What It Means to Enterpris...ADV Slides: The Evolution of the Data Platform and What It Means to Enterpris...
ADV Slides: The Evolution of the Data Platform and What It Means to Enterpris...
 
An Overview of Data Lake
An Overview of Data LakeAn Overview of Data Lake
An Overview of Data Lake
 
Maximizing Data Lake ROI with Data Virtualization: A Technical Demonstration
Maximizing Data Lake ROI with Data Virtualization: A Technical DemonstrationMaximizing Data Lake ROI with Data Virtualization: A Technical Demonstration
Maximizing Data Lake ROI with Data Virtualization: A Technical Demonstration
 
5 Steps for Architecting a Data Lake
5 Steps for Architecting a Data Lake5 Steps for Architecting a Data Lake
5 Steps for Architecting a Data Lake
 
Cloud Analytics Ability to Design, Build, Secure, and Maintain Analytics Solu...
Cloud Analytics Ability to Design, Build, Secure, and Maintain Analytics Solu...Cloud Analytics Ability to Design, Build, Secure, and Maintain Analytics Solu...
Cloud Analytics Ability to Design, Build, Secure, and Maintain Analytics Solu...
 
Silicon India Java Conference: Building Scalable Solutions For Commerce Silic...
Silicon India Java Conference: Building Scalable Solutions For Commerce Silic...Silicon India Java Conference: Building Scalable Solutions For Commerce Silic...
Silicon India Java Conference: Building Scalable Solutions For Commerce Silic...
 
Caching for Microservices Architectures: Session II - Caching Patterns
Caching for Microservices Architectures: Session II - Caching PatternsCaching for Microservices Architectures: Session II - Caching Patterns
Caching for Microservices Architectures: Session II - Caching Patterns
 
LinkedInSaxoBankDataWorkbench
LinkedInSaxoBankDataWorkbenchLinkedInSaxoBankDataWorkbench
LinkedInSaxoBankDataWorkbench
 
Case4 lego embracing change by combining bi with flexible information system 2
Case4  lego embracing change by combining bi with flexible  information system 2Case4  lego embracing change by combining bi with flexible  information system 2
Case4 lego embracing change by combining bi with flexible information system 2
 
ADV Slides: Comparing the Enterprise Analytic Solutions
ADV Slides: Comparing the Enterprise Analytic SolutionsADV Slides: Comparing the Enterprise Analytic Solutions
ADV Slides: Comparing the Enterprise Analytic Solutions
 
THE SURVEY ON REFERENCE MODEL FOR OPEN STORAGE SYSTEMS INTERCONNECTION MASS S...
THE SURVEY ON REFERENCE MODEL FOR OPEN STORAGE SYSTEMS INTERCONNECTION MASS S...THE SURVEY ON REFERENCE MODEL FOR OPEN STORAGE SYSTEMS INTERCONNECTION MASS S...
THE SURVEY ON REFERENCE MODEL FOR OPEN STORAGE SYSTEMS INTERCONNECTION MASS S...
 
Best Practices in the Cloud for Data Management (US)
Best Practices in the Cloud for Data Management (US)Best Practices in the Cloud for Data Management (US)
Best Practices in the Cloud for Data Management (US)
 
Estimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics PlatformEstimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics Platform
 
(Speaker Notes Version) Architecting An Enterprise Storage Platform Using Obj...
(Speaker Notes Version) Architecting An Enterprise Storage Platform Using Obj...(Speaker Notes Version) Architecting An Enterprise Storage Platform Using Obj...
(Speaker Notes Version) Architecting An Enterprise Storage Platform Using Obj...
 
Data Virtualization enabled Data Fabric: Operationalize the Data Lake (APAC)
Data Virtualization enabled Data Fabric: Operationalize the Data Lake (APAC)Data Virtualization enabled Data Fabric: Operationalize the Data Lake (APAC)
Data Virtualization enabled Data Fabric: Operationalize the Data Lake (APAC)
 
LEGO EMBRACING CHANGE BY COMBINING BI WITH FLEXIBLE INFORMATION SYSTEM
LEGO EMBRACING CHANGE BY COMBINING BI WITH FLEXIBLE INFORMATION SYSTEMLEGO EMBRACING CHANGE BY COMBINING BI WITH FLEXIBLE INFORMATION SYSTEM
LEGO EMBRACING CHANGE BY COMBINING BI WITH FLEXIBLE INFORMATION SYSTEM
 
Augmentation, Collaboration, Governance: Defining the Future of Self-Service BI
Augmentation, Collaboration, Governance: Defining the Future of Self-Service BIAugmentation, Collaboration, Governance: Defining the Future of Self-Service BI
Augmentation, Collaboration, Governance: Defining the Future of Self-Service BI
 
Big Data Fabric: A Necessity For Any Successful Big Data Initiative
Big Data Fabric: A Necessity For Any Successful Big Data InitiativeBig Data Fabric: A Necessity For Any Successful Big Data Initiative
Big Data Fabric: A Necessity For Any Successful Big Data Initiative
 
Redefining Data Analytics Through Search
Redefining Data Analytics Through SearchRedefining Data Analytics Through Search
Redefining Data Analytics Through Search
 
Capitalizing on the New Era of In-memory Computing
Capitalizing on the New Era of In-memory ComputingCapitalizing on the New Era of In-memory Computing
Capitalizing on the New Era of In-memory Computing
 

Interactive Data Streaming

  • 1. TECHNICAL NOTE SwiftKnowledge Interactive Data Streaming ™ In-Memory Performance is More than Just a Database Issue
  • 2. TECHNICAL NOTE SwiftKnowledge Interactive Data Streaming Executive Summary A key component of a successful business intelligence (BI) implementation—defined as one that promotes widespread adoption and continued usage—is creating a positive experience for a user audience characterized by a wide variety of needs and spectrum of technical abilities. Regardless of the user’s background, high performance—whether referring to the ability to analyze large data sets or provide rapid responses to user requests or actions—is an important component of this positive user experience. As a result, the concept of “in-memory” databases, or “caching,” recently has grown in popularity as BI vendors tout the storage of data or metadata as the mechanism driving fast access and analysis. With regards to BI, the concept refers to storing data or metadata in memory (i.e. RAM), rather than physically on a disk, which enables users to more easily and readily access the data—or any manipulation of that data—on-demand. While this concept may not be a new one, its popularity continues to grow as the cost of hardware memory decreases and CPU processing speed expands. Combine that scenario with the vast amounts of data generated in businesses every day and the desire to find more valuable insight within that data, and suddenly in-memory becomes a very appealing approach for many companies. Yet caching of data in memory is just one of the many components that can help deliver high performance in BI. If the rush to in-memory caching results in the neglect of other key areas of the solution, it’s likely the gains achieved by such an approach will be offset and likely outweighed by the losses, resulting in waning adoption and usage. To address this concern, SwiftKnowledge advocates a multi-faceted, hybrid approach to high performance, one that optimizes performance for end users throughout their entire experience in the BI solution. We believe this approach provides specific advantages in the areas of connection pooling, session state, query creation and data record set loading over a standard, database-centric, in-memory approach. This tech note explains SwiftKnowledge’s approach to in-memory analytics—an approach powered by our patented Interactive Data Streaming™ (IDS) technology—and the benefits it helps organizations realize. 2
  • 3. TECHNICAL NOTE SwiftKnowledge Interactive Data Streaming A Better Approach to High Performance than In-Memory Analytics SESSION CACHE Dictionary State Data Loading Data Requesting PROPRIETARY ge MDMS led CACHE Page Generation SK Metadata Cache ow Kn n ift ctio Sw ne Metadata • Query Generator n Data Packet Engine Co ling • Incremental Queries Poo RDMS “Load on Scroll” • Page Request Data Figure 1: Multiple facets of a hybrid approach. Interactive Data Streaming is comprised of four essential elements: session cache, data loader, metadata cache and connection pooling (Figure 1). The combination of all these elements ensures high performance for an end user throughout any action or activity within the application, whether navigating through con- tent, running complex queries or loading results for consumption. Like other BI software applications, IDS also leverages the resident database management system (DBMS)—Microsoft® SQL Server™ in the sample scenario above—to take advantage of any proprietary, in-memory cache structures available for the data or metadata. The SwiftKnowledge session cache operates in a manner similar to cookies for web browsers. Where a cookie might help a web site determine if you have visited it before, who you are, which areas of the site interested you, etc., the SwiftKnowledge session cache keeps track of your current state, which can include the following: Currently active dashboard Group membership Currently active report Cube security, as defined at the group level Connection in use Report save status SwiftKnowledge uses its session cache to properly assign rights and cube security during user actions, such as browsing the menu or accessing a report. Since SwiftKnowledge may reference this session infor- mation frequently, it’s cached for performance enhancement reasons. As a result, as users move about the application, content retrieval and loading is accelerated. 3
  • 4. TECHNICAL NOTE SwiftKnowledge Interactive Data Streaming Data Loader The SwiftKnowledge approach to data loading benefits users with its speed of delivery. While there may be several million rows of data available in memory, database or disk, it is impractical to return a full data set to users because the request could overwhelm the browser. Even if the browser could manage the request, users would likely be overwhelmed by the amount of data they receive since they only can process and understand a finite amount of information at any one time. And, a user typically does not need a full data set delivered to their browser if their intent only was to follow a specific path through the data—perhaps tracking outliers or exceptions—to get to their answers. The SwiftKnowledge data loader takes these elements into consideration and is largely responsible for providing the high level of responsiveness SwiftKnowledge end users have come to expect. As a result, SwiftKnowledge’s data loader and data packet engine interact with the query generator to present data only if and when the user asks for it. Equally important to the end user experience is what happens when additional, incremental data is retrieved and displayed on a report page. To facilitate this experience, a SwiftKnowledge page generator seamlessly delivers content only to the section of the page that demands it. The rest of the page remains static, thus avoiding any overhead dealing with modifications, until the user chooses to interact with the rest of the page. Figure 2 shows one example of the incre- mental retrieval of data as executed within SwiftKnowledge. In this case, it’s being delivered in a report filter, 100 rows at a time from a 4,171 row data set. As the user scrolls, additional data packets load. This capability is what we refer to as “load on scroll.” The user can choose to act on the record set at any point, retrieve the next data packet, (i.e. select a value) or leave the filter entirely. In Figure 3 (shown on the next page), after the first data packet from a record set loads into the grid (showing details at the state level), the Figure 2: SwiftKnowledge’s “load on scroll” capability. user drills down on a specific member and expands into another level of detail (cities within a state), then continues that process several times until seeing specific bank information. In this situation, an incremental query is created and generated, and then inserted without re-loading the existing data set. In each case, at all levels of data, only the first packet loads for each new record set until the user chooses to explore and load more data on demand. If the entire record set had to re-load each time, the process would require much more time—resulting in the familiar fade-in and fade-out of pages many users see with other applications—and user interest and their ability to seamlessly analyze data would deteriorate, thus degrading adoption and use. Metadata Cache While retrieving the record set needed for a given report, it is likely other users, or the same user running another query, may benefit from metadata already present in the SwiftKnowledge cache (while at the same time adding to that cache), rather than running repeated requests for the same objects on every user action. 4
  • 5. TECHNICAL NOTE SwiftKnowledge Interactive Data Streaming Figure 3: Incremental queries with SwiftKnowledge. SwiftKnowledge initially retrieves any necessary metadata needed for query generation and execution, and then stores the hierarchy names, dimension names, level names and member data in its cache for future use. The SwiftKnowledge metadata cache expands in content and value as more users explore different areas of a given cube. This process creates greater efficiency for subsequent query generation and execution as it becomes “smarter” with each executed query. Connection Pooling Creating a database connection on demand can be costly, from both a CPU and time perspective. SwiftKnowledge alleviates this expense by efficiently managing and re-utilizing existing connections— both within and across users—which decreases the overall number of new connections needed to meet the needs of the user population. Once a connection to a SwiftKnowledge-accessible data source is established, SwiftKnowledge can share this connection with other users who need access to the same data source. As a result, any SwiftKnowledge queries can be completed in sub-second times, providing ample opportunity to make this connection available for another user. For example, a single connection serving one user’s request for a member list when opening a filter box can be re-assigned to another user’s request to drill down in a grid report, from a higher- to lower-level. In fact, a single connection can serve two concurrent users interacting with multiple reports. For instance, when a report first displays data on a page, there is a high likelihood that the user will spend a few, if not several, seconds observing or consuming the output. During this time, another user may retrieve data from a completely different report that accesses the same data source. This user may also spend time digesting the output from their report while the first user decides to open a filter box and narrow the range of their report to hone in the detail they need. As long as neither user requires a connection at the exact same time, there may never be a need to create a second connection, especially considering that many queries complete in milliseconds. 5
  • 6. TECHNICAL NOTE SwiftKnowledge Interactive Data Streaming Conclusion High performance BI requires more than just caching large data sets in memory. Important considerations include: How to efficiently manage How to make large record sets available connections in a pooled environment to users on demand, in the most effective manner possible How to efficiently construct and insert queries into existing record sets with minimal overhead In addition to leveraging the in-memory caching available within standard data engines, SwiftKnowledge provides a high-performance user experience designed to promote maximum adoption and ongoing usage. SwiftKnowledge caches the entire user experience within its BI application, including cached information such as where they have been, their actions, and similarities between their actions and those of other users—similar to the “smart” web sites common in the retail industry. Regardless of whether in-memory data is available via a third-party vendor DBMS to SwiftKnowledge, our hybrid approach consisting of IDS and “intelligent” caching provides a clear performance advantage over other vendors attempting to match SwiftKnowledge’s “web time” user experience. And this advantage becomes particularly important when cost is a key consideration. With SwiftKnowledge, more users can analyze larger volumes of data, while minimizing the demand for expensive, back-end hardware. Find out more about how SwiftKnowledge IDS can be the differentiator to a more successful BI implementation. Contact us at 952.832.0166 or www.swiftknowledge.com. 11010 Prairie Lakes Drive, Suite 155 SwiftKnowledge, LLC is a global software provider of powerful, patented business intelligence (BI) technology delivering a breakthrough experience for business users which Eden Prairie MN 55344 drives strategic metrics and enables better decision-making throughout an organization. The SwiftKnowledge BI platform enables a new era of easy-to-use BI applications offering Tel: 952.832.0166 a revolutionary, ad-hoc analysis experience in web time and with a zero-footprint web deployment; with its patented Interactive Data Streaming™ (IDS) and Component-Level Security™ (CLS), SwiftKnowledge provides unmatched performance, scalability and security. The company’s unique approach and support for cloud computing-based deployments Fax: 952.832.0269 and applications provides a robust yet sustainable solution for organizations integrating BI into operational applications; seeking an easy-to-use tool for heavy, ad-hoc BI workloads; Toll free: 866.283.3405 and operating within the limitations of constrained IT resources. For more information, visit www.swiftknowledge.com. Email: info@swiftknowledge.com © 2010 SwiftKnowledge. SwiftKnowledge and the SwiftKnowledge logo are registered trademarks or trademarks of www.swiftknowledge.com SwiftKnowledge, LLC in the USA and other countries. All other trade names are the property of their respective owner.