Sizing Introduction

What is the StreamBase Runtime?

Spotfire Streaming is implemented by means of the StreamBase Runtime, which is an in-memory transactional application server that provides scalable high-performance transaction processing with durable object management and replication. The StreamBase Runtime allows organizations to develop highly available, distributed, transactional applications using the standard Java POJO programming model.

The StreamBase Runtime provides these capabilities:

  • Transactions - high performance, distributed All-or-None ACID work.

  • In-Memory Durable Object Store - ultra low-latency transactional persistence.

  • Transactional High Availability - transparent memory-to-memory replication with instant fail-over and fail-back.

  • Distributed Computing - location transparent objects and method invocation allowing transparent horizontal scaling.

  • Integrated Hotspot JVM - tightly integrated Java execution environment allowing transparent low latency feature execution.

System Requirements

To optimize the performance of Spotfire Streaming applications, the appropriate system resources must be allocated. The system resources that must be considered are:

  • System memory

  • Number and clock speed of processing units

  • Disks

  • Network speed and interfaces

  • High availability and the number of machines

System memory

The total amount of physical memory in a system must be determined. Spotfire Streaming applications derive a large percentage of their performance from caching as much as possible in memory. Spotfire Streaming applications use both shared memory to cache Managed Objects and JVM heap space for allocation of non-Managed Java objects.

Processors

The Spotfire Streaming transactional environment provides scaling across multiple processing units in a single system. The total number of processors in a system directly impacts the total throughput of a Spotfire Streaming application. The clock speed of the processing units has a direct impact on the cost of a single execution path in an application. The faster the clock speed, the lower the latency when running non-contested application logic.

Disk

In general, Spotfire Streaming applications cache application data in shared memory. However, the size and number of disks must be determined to accommodate any application specific logging that is required.

Network speed

The total aggregate message throughput of a Spotfire Streaming application is impacted by the network bandwidth. The network bandwidth must be large enough to not limit the number of requests and responses that can be processed by a Spotfire Streaming application and to support the communication for distributed, mirrored and replicated objects.

Number of machines

Multiple machines are allocated to Spotfire Streaming applications to support throughput scaling and also redundancy for highly available applications.