Configuring Report Server Clusters

InetSoft's reporting software is based on javascript and allows users to configure report server clusters in order to optimize the speed and performance of the application. View the example below to learn more about the Style Intelligence solution.

Each cluster node will run only the repository servlet (servlet class: inetsoft.sree.web.ServletRepository). One node may additionally run the admin servlet as well, if desired. All cluster nodes must share a common registry directory which is specified as an init parameter in the deployment descriptor file (web.xml).

Any change made in the Enterprise Manager (e.g., enabling/disabling security) after the cluster is set up and started will only be reflected when the nodes are restarted. Before deployment of a cluster node, ensure that the node has an installation of the desired InetSoft software, or that the servlet repository is deployed on any appserver on the node.

#1 Ranking: Read how InetSoft was rated #1 for user adoption in G2's user survey-based index Read More

A web.xml file such as the following should be created.

<servlet>
   <servlet-name>Cluster</servlet-name>
   <servlet-class>inetsoft.sree.web.ServletRepository
   </servlet-class>
      <init-param>
      <param-name>sree.home</param-name>
      <param-value>\\share\sreehome</param-value>
      </init-param>
      <init-param>
      <param-name>replet.cache.registry</param-name>
      <param-value>{nodehome}\temp</param-value>
      </init-param>
</servlet>
<servlet-mapping>
   <servlet-name>Cluster</servlet-name>
   <url-pattern>/Reports</url-pattern>
</servlet-mapping>

Currently, all reports must be stored in the home directory of the web application of each cluster node (e.g:, WEB-INF/classes). You should also add an init-param called replet.cache.directory for each node. This allows each node to set the directory in which the cached reports are stored, which should be a local directory on the node machine itself.

It is also possible to use a database data space, where all configuration files and report templates are stored together in a database.

why select InetSoft
“We evaluated many reporting vendors and were most impressed at the speed with which the proof of concept could be developed. We found InetSoft to be the best option to meet our business requirements and integrate with our own technology.”
- John White, Senior Director, Information Technology at Livingston International

How Does InetSoft's Reporting Platform Automatically Balance Loads Among Cluster Servers?

InetSoft's reporting platform, like many other enterprise-grade reporting and analytics solutions, typically employs various strategies to automatically balance loads among cluster servers. Load balancing is crucial for ensuring optimal performance, scalability, and reliability in distributed environments.:

  1. Round Robin: This is one of the simplest load balancing algorithms where requests are distributed among servers in a cyclic manner. Each server in the cluster gets an equal share of incoming requests over time. While easy to implement and understand, it may not always result in the most efficient distribution, especially if servers have varying capacities or workloads.

  2. Least Connection: In this approach, new requests are sent to the server with the fewest active connections. This helps to evenly distribute the workload based on the current load on each server. It's particularly useful when the servers have different capacities or when there are variations in the complexity of requests.

  3. Weighted Round Robin: Similar to the Round Robin approach, but with the capability to assign different weights to servers based on their capacity or capabilities. Servers with higher weights receive more requests compared to those with lower weights. This allows for more fine-grained control over load distribution, enabling administrators to prioritize certain servers over others.

  4. Dynamic Load Balancing: Some advanced load balancers continuously monitor the health and performance of servers in the cluster. They dynamically adjust the load distribution based on real-time metrics such as CPU usage, memory utilization, and response times. Servers that are under heavy load or experiencing issues may receive fewer requests until they become available again.

  5. Session Affinity (Sticky Sessions): For applications that require maintaining session state, such as web-based reporting platforms, it's essential to ensure that subsequent requests from the same user are routed to the same server. Session affinity mechanisms, such as cookies or IP-based routing, are used to achieve this, thereby maintaining consistency and preventing issues related to session data.

  6. Content-Based Routing: Load balancers can inspect incoming requests and route them to specific servers based on predefined rules or content characteristics. For example, requests for specific types of reports or data can be directed to servers optimized for processing such requests, ensuring efficient resource utilization.

  7. Health Checks and Failover: Load balancers continuously monitor the health and availability of servers. If a server becomes unresponsive or fails, the load balancer automatically redirects traffic to healthy servers, ensuring high availability and reliability of the reporting platform.

Overall, a combination of these techniques, along with robust monitoring and management capabilities, enables InetSoft's reporting platform to effectively balance loads among cluster servers, ensuring optimal performance and scalability for users.

demo
Read how InetSoft saves money and resources with deployment flexibility.

How Does InetSoft Employ Spark for Report Server Clustering?

InetSoft, like many other modern reporting and analytics platforms, may leverage Apache Spark as part of its clustering architecture to enhance scalability, performance, and fault tolerance. Apache Spark is a powerful open-source distributed computing framework that provides an in-memory processing engine for processing large-scale data sets with speed and efficiency. Here's how InetSoft employs Spark for report server clustering:

  1. Data Processing and Analysis: One of the primary use cases for Spark in a reporting platform is for data processing and analysis. Spark can efficiently handle large volumes of data, perform complex transformations, aggregations, and computations in parallel across a cluster of machines. InetSoft's reporting platform could utilize Spark to preprocess and analyze data before generating reports, enabling faster insights and more responsive reporting capabilities.

  2. Distributed Data Storage: Spark comes with built-in support for distributed data storage through its resilient distributed dataset (RDD) abstraction or more modern DataFrame and Dataset APIs. InetSoft's reporting platform could store intermediate data, cached results, or data extracts in Spark's distributed memory or on disk, ensuring high availability and fault tolerance.

  3. Parallel Report Generation: By leveraging Spark's parallel processing capabilities, InetSoft's report server could distribute report generation tasks across multiple nodes in the Spark cluster. This allows the platform to scale out horizontally to handle increased workloads and serve a larger number of concurrent users without sacrificing performance. Each node in the cluster can independently process a subset of report requests, leading to faster response times and improved throughput.

  4. Fault Tolerance and Resilience: Spark provides fault tolerance mechanisms such as lineage tracking and RDD/Dataset/Distributed DataFrame lineage graph. InetSoft's reporting platform can benefit from these features to ensure resilience against node failures or data loss during report processing. Spark automatically recomputes lost data partitions or tasks in case of failures, ensuring consistent and reliable report generation even in the face of hardware or software failures.

  5. Integration with Big Data Ecosystem: InetSoft's reporting platform may integrate with other components of the big data ecosystem, such as Hadoop Distributed File System (HDFS), Apache Hive, Apache HBase, or cloud-based storage services. Spark's compatibility with these systems allows seamless data access, transformation, and analysis across diverse data sources, enabling comprehensive reporting and analytics capabilities.

  6. Streaming and Real-time Analytics: Spark Streaming and Structured Streaming modules enable real-time data processing and analytics. InetSoft's reporting platform could leverage these capabilities to support real-time reporting and monitoring, enabling users to visualize and analyze streaming data sources or receive up-to-the-minute insights through live dashboards and reports.

  7. Resource Management and Optimization: Spark provides sophisticated resource management and scheduling mechanisms through its built-in standalone cluster manager, Apache Mesos, or integration with Apache Hadoop YARN. InetSoft's reporting platform could dynamically allocate resources based on workload demands, optimizing resource utilization and maximizing cluster efficiency.