Contents
Performance must be designed into an application. It is not realistic to expect performance to be tested in at the end of the development cycle. A common sense approach is provided to design TIBCO StreamBase applications that perform. The key metrics and trade-offs that impact application performance are:
- 
                  
Scaling versus path length
 - 
                  
Horizontal versus vertical scaling
 - 
                  
Contention
 - 
                  
Latency versus through-put
 
TIBCO StreamBase features make high-performance applications possible. However, these features must be used where appropriate. Each of these TIBCO StreamBase features can have an impact on application performance. They must be used when appropriate.
- 
                  
Managed versus non-Managed objects.
 - 
                  
Transactional versus non-transactional code.
 - 
                  
Keys and indexes.
 - 
                  
Transactions versus Java monitors for concurrency control.
 - 
                  
High-availability (partitioned) Managed objects versus non-partitioned Managed objects.
 - 
                  
High-availability versus distribution.
 
Tuning a TIBCO StreamBase application involves both application architecture decisions and appropriate configuration of system parameters. The types of questions that must be answered are:
- 
                  
How should the JVM heap sizes be configured?
 - 
                  
How to ensure that the garbage collector does not impact the latency of running applications?
 - 
                  
What size of shared memory should be configured?
 - 
                  
Should System V or file mapped shared memory be used?
 - 
                  
How much disk space is needed?
 - 
                  
Should the application execute on single or multiple nodes?
 - 
                  
How should the application be deployed within a node?
 - 
                  
Should application data be partitioned across multiple nodes?
 - 
                  
When should distribution be used?