- •Contents
- •Notices
- •Trademarks
- •Preface
- •The team who wrote this book
- •Now you can become a published author, too!
- •Comments welcome
- •Stay connected to IBM Redbooks
- •Chapter 1. Introduction
- •1.1 The opportunity of the in-memory database
- •1.1.1 Disk databases cannot expand to memory
- •1.1.2 IBM solidDB IMDB is memory-friendly
- •1.1.3 Misconceptions
- •1.1.4 Throughput and response times
- •1.2 Database caching with in-memory databases
- •1.2.1 Databases are growing
- •1.2.2 Database caching off-loads the enterprise server
- •1.2.3 IBM solidDB Universal Cache
- •1.3 Applications, competition, and the marketplace
- •Chapter 2. IBM solidDB details
- •2.1 Introduction
- •2.2 Server architecture
- •2.2.1 Database access methods and network drivers
- •2.2.2 Server components
- •2.3 Data storage in solidDB
- •2.3.1 Main-memory engine
- •2.4 Table types
- •2.4.1 In-memory versus disk-based tables
- •2.4.2 Persistent versus non-persistent tables
- •2.4.3 Choosing between different table types
- •2.5 Transactionality
- •2.5.1 Concurrency control and locking
- •2.5.2 Isolation levels
- •2.5.3 Durability levels
- •2.6 solidDB SQL extensions
- •2.6.1 solidDB SQL standard compliance
- •2.6.2 Stored procedures
- •2.6.3 Triggers
- •2.6.4 Sequences
- •2.6.5 Events
- •2.6.6 Replication
- •2.7 Database administration
- •2.7.1 Configuration settings
- •2.7.2 ADMIN COMMAND
- •2.7.3 Data management tools
- •2.7.4 Database object hierarchy
- •Chapter 3. IBM solidDB Universal Cache details
- •3.1 Architecture
- •3.1.1 Architecture and key components
- •3.1.2 Principles of operation
- •3.2 Deployment models
- •3.3 Configuration alternatives
- •3.3.1 Typical configuration
- •3.3.2 Multiple cache nodes
- •3.3.3 SMA for collocation of data
- •3.3.4 solidDB HSB servers for high availability
- •3.4 Key aspects of cache setup
- •3.4.1 Deciding on the replication model
- •3.4.2 Defining what to replicate
- •3.4.3 Starting replication
- •3.5 Additional functionality for cache operations
- •3.5.1 SQL pass-through
- •3.5.2 Aging
- •3.5.3 Improving performance with parallelism
- •3.6 Increasing scale of applications
- •3.6.1 Scaling strategies
- •3.6.2 Examples of cache database applications
- •3.7 Enterprise infrastructure effects of the solidDB Universal Cache
- •3.7.1 Network latency and traffic
- •3.7.3 Database operation execution
- •Chapter 4. Deploying solidDB and Universal Cache
- •4.1 Change and consideration
- •4.2 How to develop applications that use solidDB
- •4.2.1 Application program structure
- •4.2.2 ODBC
- •4.2.3 JDBC
- •4.2.4 Stored procedures
- •4.2.5 Special considerations
- •4.3 New application development on solidDB UC
- •4.3.1 Awareness of separate database connections
- •4.3.2 Combining data from separate databases in a transaction
- •4.3.3 Combining data from different databases in a query
- •4.3.4 Transactionality with Universal Cache
- •4.3.5 Stored procedures in Universal Cache architectures
- •4.4 Integrate an existing application to work with solidDB UC
- •4.4.1 Programming interfaces used by the application
- •4.4.2 Handling two database connections instead of one
- •4.5 Data model design
- •4.5.1 Data model design principles
- •4.5.2 Running in-memory and disk-based tables inside solidDB
- •4.5.3 Data model design for solidDB UC configurations
- •4.6 Data migration
- •4.7 Administration
- •4.7.1 Regular administration operations
- •4.7.2 Information to collect
- •4.7.3 Procedures to plan in advance
- •4.7.4 Automation of administration by scripts
- •Chapter 5. IBM solidDB high availability
- •5.1 High availability (HA) in databases
- •5.2 IBM solidDB HotStandby
- •5.2.1 Architecture
- •5.2.2 State behavior of solidDB HSB
- •5.2.3 solidDB HSB replication and transaction logging
- •5.2.4 Uninterruptable system maintenance and rolling upgrades
- •5.3 HA management in solidDB HSB
- •5.3.1 HA control with a third-party HA framework
- •5.3.2 HA control with the watchdog sample
- •5.3.3 Using solidDB HA Controller (HAC)
- •5.3.4 Preventing Dual Primaries and Split-Brain scenarios
- •5.4 Use of solidDB HSB in applications
- •5.4.1 Location of applications in the system
- •5.4.2 Failover transparency
- •5.4.3 Load balancing
- •5.4.4 Linked applications versus client/server applications
- •5.5 Usage guidelines, use cases
- •5.5.1 Performance considerations
- •5.5.2 Behavior of reads and writes in a HA setup
- •5.5.3 Using asynchronous configurations with HA
- •5.5.4 Using default solidDB HA setup
- •5.5.5 The solidDB HA setup for best data safeness
- •5.5.6 Failover time considerations
- •5.5.7 Recovery time considerations
- •5.5.8 Example situation
- •5.5.9 Application failover
- •5.6 HA in Universal Cache
- •5.6.1 Universal Cache HA architecture
- •5.6.2 UC failure types and remedies
- •6.1 Performance
- •6.1.1 Tools available in the solidDB server
- •6.1.2 Tools available in InfoSphere CDC
- •6.1.3 Performance troubleshooting from the application perspective
- •6.2 Troubleshooting
- •Chapter 7. Putting solidDB and the Universal Cache to good use
- •7.1 solidDB and Universal Cache sweet spots
- •7.1.1 Workload characteristics
- •7.1.2 System topology characteristics
- •7.1.3 Sweet spot summary
- •7.2 Return on investment (ROI) considerations
- •7.2.1 solidDB Universal Cache stimulates business growth
- •7.2.2 solidDB server reduces cost of ownership
- •7.2.3 solidDB Universal Cache helps leverage enterprise DBMS
- •7.2.4 solidDB Universal Cache complements DB2 Connect
- •7.3 Application classes
- •7.3.1 WebSphere Application Server
- •7.3.2 WebLogic Application Server
- •7.3.3 JBoss Application Server
- •7.3.4 Hibernate
- •7.3.5 WebSphere Message Broker
- •7.4 Examining specific industries
- •7.4.1 Telecom (TATP)
- •7.4.2 Financial services
- •7.4.3 Banking Payments Framework
- •7.4.4 Securities Exchange Reference Architecture (SXRA)
- •7.4.5 Retail
- •7.4.6 Online travel industry
- •7.4.7 Media
- •Chapter 8. Conclusion
- •8.1 Where are you putting your data
- •8.2 Considerations
- •Glossary
- •Abbreviations and acronyms
- •Index
When configured as a read-write cache where the data ownership is shared, applications can update the same data in both the cache and in the back-end database at the same time. In this case, changes to the data can be propagated automatically in both directions. Conflicts are detected and resolved by using predefined conflict resolution methods. This configuration is especially useful when applications need to update the data in the back-end database while the data is also cached for read-write access.
3.3 Configuration alternatives
This section describes the configuration alternatives for the deployment options.
3.3.1 Typical configuration
A simple solidDB Universal Cache deployment might involve caching a single back-end database to a single cache database. The cache database related components and the back-end related components are installed on separated nodes, as are the Access Server and tooling. A typical node configuration is shown in Figure 3-4.
|
|
Cache Node |
Configuration node 1 |
|
solidDB Server |
solidDB Universal |
|
|
Cache tooling |
|
|
(e.g. Management |
|
solidDB replication |
Console) |
|
|
|
|
engine |
|
|
Access Server Node |
|
Firewall |
Access Server |
|
daemon |
|
|
Database Node |
|
|
|
|
Configuration node 2 |
|
RDBMS replication |
solidDB Universal |
|
|
|
engine |
|
Cache tooling |
|
|
(e.g. Management |
|
|
Console) |
|
|
|
|
RDBMS |
Figure 3-4 A simple solidDB Universal Cache deployment with a single cache node
46 IBM solidDB: Delivering Data with Extreme Speed
Note the following information:
Single cache node
The solidDB server and InfoSphere CDC for solidDB products are typically installed and configured on the same machine (“cache node”). This machine is often “closer” to the applications that use the data.
Collocation of the two servers minimizes the overhead when scraping the logs (solidDB as source) or applying updates (solidDB as target).
Single database node
The InfoSphere CDC for back end is typically installed and configured on the same machine on which the back-end RDBMS is running (“database node”).
This approach helps to minimize the overhead of communications between the replication engine and the database.
Single access node
The Access Server is typically deployed on a separate machine (“access node”). The advantage to installing it on a separate machine from “cache” and “database” nodes is to more easily configure the firewall, because solidDB Universal Cache tooling communicates with the Access Server, not with the InfoSphere CDC replication engines.
InfoSphere CDC Access Server is only required during the configuration of solidDB Universal Cache, or during the starting or stopping of caching (that is, subscriptions).
Configuration nodes
Any node from which solidDB Universal Cache tooling (Management Console, dmsubscriptionmanager, Access Server tools) is run can be considered a configuration node.
3.3.2Multiple cache nodes
Multiple solidDB servers (cache nodes) can be used, for example, for partitioning back-end data so that each cache node has only the data that is relevant to it. However, in such deployments, each solidDB server is autonomous and processes the application requests without accessing data in any of the other solidDB servers.
3.3.3 SMA for collocation of data
The shared memory access (SMA) feature of solidDB Universal Cache can boost application performance when accessing solidDB data. In place of costly network-based communication, such as TCP/IP, SMA uses direct function calls
Chapter 3. IBM solidDB Universal Cache details 47
to the solidDB server code. In the same time, the in-memory database is located in a shared memory segment available to all applications connected to the server with SMA. Multiple concurrent applications running in separate processes can utilize that access method to reduce significantly response times.
In a SMA setup, the application, the solidDB SMA server, and the InfoSphere CDC replication engine are located on the same node. In the setup phase, the following steps must be considered:
1.Configuring solidDB server to run as a SMA server
2.Configuring InfoSphere CDC for solidDB to use SMA for communication with solidDB server
3.(Optional) Configuring user applications to use SMA for communication with solidDB server
Configuring solidDB server to run as a SMA server
To use solidDB with SMA, the solidDB server is started with the solidsma executable, instead of the solid executable.
Configuring InfoSphere CDC to support SMA
SMA must be enabled during the creation of an InfoSphere CDC for solidDB instance. For example, in the GUI tool, the Enable SMA check box must be selected; see Figure 3-5.
Figure 3-5 Enabling SMA on an InfoSphere CDC for solidDB instance
48 IBM solidDB: Delivering Data with Extreme Speed
Configuring user application to support SMA
The SMA feature does not require any code changes to the applications themselves, except for ensuring that the solidDB connection is configured for SMA. The SMA connection is defined within the ODBC connection string or JDBC connection property. For example, when using ODBC, instead of connecting to solidDB using the connection string ‘tcp 2315’, the SMA connection is specified with the string ‘sma tcp 2315’ string. When using JDBC, the following connection property is used:
solid_shared_memory=yes
3.3.4 solidDB HSB servers for high availability
The solidDB HotStandby (HSB) solution allows for redundancy to be incorporated at each individual cache node, thus providing reliable access to data stored in the cache database.
Reliability in the cache database requires that the data pathways to and from the cache are capable of handling HSB failovers. The InfoSphere CDC for solidDB can be made aware of HSB deployments transparently, so that replication to and from the cache remains operational, after the primary solidDB server is down. If the primary solidDB server does go down, InfoSphere CDC simply redirects active subscriptions to use the new primary solidDB server and replication continues as normal.
The HSB support must be enabled explicitly when configuring the InfoSphere CDC for solidDB instance by defining the connection to the primary and secondary servers, as shown in Figure 3-6.
Figure 3-6 Enabling HotStandby in InfoSphere CDC for solidDB
Chapter 3. IBM solidDB Universal Cache details 49
