- •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
2.7 Database administration
This section describes the main principles of database administration with solidDB.
2.7.1 Configuration settings
Most solidDB configuration settings are defined using configuration parameters that are stored in a solid.ini configuration file. The solid.ini file is not mandatory; if no configuration file exists, the factory values are used. Also, all parameters do not need to be present in the solid.ini file; if a parameter is not present in the solid.ini file or if the value for a particular parameter is not set, the factory value is used.
Generally, the factory values offer good performance and operability but in some cases modifying some parameter values can improve performance. You might also need to set configuration parameters to enable or disable certain functionality.
You can set the configuration parameter values by editing the solid.ini file manually or, in most cases, using ADMIN COMMANDs, a set of solidDB proprietary SQL statements.
Parameters are defined as parameter name value pairs. The parameters are grouped according to section categories. In the solid.ini file, each section category starts with a section name inside square brackets, for example:
[Logging]
LogEnabled=yes
Tip: In documentation, parameters are typically referred to in the format section.parameter, for example, Logging.LogEnabled.
Some parameter settings, such as durability level, can also be overridden per session or per transaction by using the SQL commands SET or SET TRANSACTION, or by defining the settings per connection with the ODBC connection attributes or JDBC connection properties. The precedence hierarchy is as follows (from high precedence to low):
SET TRANSACTION: transaction-level settings
SET: session-level settings
ODBC connection attributes and JDBC connection properties
Parameter settings specified by the value in the solid.ini configuration file
Factory value for the parameter
36 IBM solidDB: Delivering Data with Extreme Speed
Additionally, you can control some solidDB server operations with the following options:
solidDB command line options at solidDB startup
environment variables
ODBC client connect string arguments
2.7.2ADMIN COMMAND
The ADMIN COMMAND is a SQL extension specific to solidDB and that executes administrative commands.
The ADMIN COMMANDs are used for operations such as creating backups of the database, invoking performance monitoring, or displaying information about users connected to the database. The ADMIN COMMANDs can also be used for changing certain configuration settings dynamically.
2.7.3 Data management tools
IBM solidDB provides a set of utilities for performing various database tasks.
solidDB SQL Editor (solsql)
solidDB SQL Editor (solsql) is a console tool used to issue SQL statements and solidDB ADMIN COMMANDs at the command prompt, or by executing a script file that contains the SQL statements.
Tip: When using solsql, ADMIN COMMANDs and SQL statements must be terminated with a semicolon (;) character. Note that if you are not using solsql, terminating SQL statements with a semicolon leads to a syntax error.
solidDB Console (solcon)
solidDB Console (solcon) is a console tool used to issue solidDB ADMIN COMMANDs at the command prompt, or by executing a script file that contains the commands. Only users with administrator rights can access solcon; if only solcon is deployed at a production site, the administrators cannot accidentally execute SQL statements that could change the data.
Chapter 2. IBM solidDB details 37
Tools for exporting and loading data
solidDB provides the following tools for exporting and loading data:
solidDB Speed Loader (solloado or solload) loads data from external files into a solidDB database.
solidDB Export (solexp) exports data from a solidDB database to files. It also creates control files used by solidDB Speed Loader (solloado or solload) to perform data load operations.
solidDB Data Dictionary (soldd) exports the data dictionary of a database. It produces an SQL script that contains data definition statements that describe the structure of the database.
2.7.4Database object hierarchy
solidDB uses catalogs and schemas to organize data. solidDB’s use of schemas conforms to the SQL standard but solidDB's use of catalogs is an extension to the SQL standard.
The solidDB syntax for database object hierarchy is as follows:
catalog_name.schema_name.database_object
Catalogs are the highest (broadest) level of the hierarchy. A catalog can be seen as a logical database, and two or more catalogs can be used in the same time with the help fully qualified table names. Schema names are the mid-level of the hierarchy; specific database objects, such as tables, are the lowest (narrowest) level. Thus, a single catalog may contain multiple schemas, and each of those schemas may contain multiple tables.
Object names must be unique within a catalog, but they do not have to be unique across catalogs.
The default catalog name is the system catalog name that was specified during database creation. The default schema name is the user name. Objects can be created without specifying the catalog and schema name; by default, the server uses the system catalog and the user name of the object creator to determine which object to use.
38 IBM solidDB: Delivering Data with Extreme Speed
