Embedding IDS overview
- Embedding IDS
- Key Benefits- selected tab,
- Real World Experiences
- Resources
Embedding IDS overview
A solution comprising of IDS embedded within an application can be configured and programmed proactively to shield itself from potential issues. In addition, it can be configured to reactively and automatically respond to specific events if they should occur. This ensures that the entire system can run smoothly and in a self-sufficient way, with virtually zero administration overhead. With IDS embedded as a database server, there is minimal to zero effort required after deployment. This enables many solutions to act independent of administrator supervision without sacrificing the capabilities of an enterprise-level database server.
To find out more about IDS benefits and how you can devise an embedded solution click on the links above.
Simplified and Automated Administration
- Automated statistics gathering: Statistics are now automatically evaluated to determine if they need to be updated, and are updated if necessary, on a nightly basis. This is performed using the two built-in Auto Update Statistics (AUS) scheduler tasks.
Besides this, IDS automatically collects index statistics when a B-tree index is created on a UDT column of an existing table, or if a functional or Virtual Index Interface (VII) index is created on a column of an existing table. These features improve the performance of the database server by regularly providing the query optimizer with updated table statistics as the basis for efficient query plans. Furthermore, they reduce the need for DBAs to manually perform UPDATE STATISTICS. - RTO_SERVER_RESTART: A recovery time objective (RTO) policy can be created to set the amount of time, in seconds, that Informix Dynamic Server has to recover from a problem after restart of the server. This is possible using a new configuration parameter, RTO_SERVER_RESTART. This feature dynamically adjusts to workload changes and maintains buffer pool flushing and checkpoint frequency.
- AUTO_CKPTS: AUTO_CKPTS allows the server to trigger checkpoints more frequently to avoid transaction blocking. These provide better management in limited resource environments. Automatic checkpoints can be dynamically enabled or disabled by using onmode -wm or onmode -wf.
- AUTO_LRU_TUNING: The database server automatically tunes LRU flushing when the AUTO_LRU_TUNING configuration parameter is on and certain conditions arise. Automatic adjustments to LRU flushing helps maintain better cache hit ratios automatically.
- Auto re-prepare: AUTO_REPREPARE automatically re-optimizes SPL routines and re-prepares prepared objects after the schema of a table referenced by the SPL routine or by the prepared object has been changed. Enabling AUTO_REPREPARE can avoid many errors and can reduce the number of re-prepare and re-optimize operations that users must perform manually after the schema of a table is modified.
- Dynamic memory allocation and tuning: The database server monitors the virtual portion of the shared memory segments and automatically adds additional memory when needed.
- Auto configure AIOVPs: AUTO_AIOVPS configuration parameter enables the database server to automatically increase the number of AIO VPs and page cleaner threads when the database server detects that the AIO virtual processors are not keeping up with the I/O workload. You can dynamically enable or disable the automatic increase of AIO VPs and page cleaner threads by using onmode -wm or onmode -wf.
- DYNAMIC_LOGS: The DYNAMIC_LOGS parameter controls the dynamic allocation of transaction log files.
- Dynamic increase of lock list: The LOCKS parameter provides an initial number of locks to configure in the system. If IDS runs out of locks during the execution of transactions, it will allocate additional locks in the system to continue operating.
- Monitor storage spaces and partitions: You can now set the threshold level and time interval for alarms that are raised when storage spaces or partitions become full.
- Performance advisory: The IDS data server can detect a configuration that is less than optimal. It displays this suboptimal configuration with a performance advisory message, as well as provides tuning recommendations. This performance advisory message also appears in the message log. The onstat -g ckp option prints checkpoint history and displays configuration recommendations if a suboptimal configuration is detected.
- Control over shared-memory dump file size: By using the new options for the DUMPSHMEM configuration parameter and the onstat utility, you can control how much memory is written to a dump file. These options exclude the buffer pool in the resident memory, which can result in a much smaller file. You can dynamically change the value of DUMPSHMEM with onmode -wm or onmode -wf. Use the new nobuffs option for the onstat -o command to write the contents of shared memory without the buffer pool to a specified file.
Efficient and Reliable
- Install footprint: One of the key features in the IDS installer is the ability to support an easy customization of the IDS install options and components. The Deployment Wizard empowers independent software vendors as well as DBAs in adjusting the IDS install footprint based on the functional requirements of their applications. The Deployment Wizard, as part of the IDS custom install process, supports an IDS server-only installation footprint below 90 MB. In some instances, it may be necessary to install IDS in a tight footprint-constrained environment. For those usage scenarios, a 90 MB install footprint (for the database server executables alone) can be too large. By following a few extra steps it is possible to reduce the IDS footprint to a much smaller size of about 50 MB.
- Optimized configuration: The Instance Configuration Wizard on UNIX and MS Windows allows your instance to be automatically configured at install time based on detected hardware resources and an expected number of users. Template server and bundle response files can be found in the IDS media named server.ini and bundle.ini which enable the silent install. They can be edited manually with instance-specific details or created by recording an interactive installation using the record argument to the ids_install (bundle installation) or the installserver (IDS installation) executables. The install process can be captured in this manner and replayed on a number of servers during deployment. An installed manifest file tracks what functionality has been installed or uninstalled and can add or subtract features without re-installing the entire binary set. When upgrading to a new version of one feature, the wizard automatically updates all other required features. The underlying utility is found in $INFORMIXDIR/bin/genonconfig.
- Data compression: IDS offers data compression technology in the Storage Optimization Feature. There’s full online support for turning on storage optimization and compressing existing table data while applications continue to use the table. Customers have been able to achieve up to 80 percent savings in storage, depending on their data characteristics. This has also resulted in lesser time to complete backup and restore operations. Moreover, customers have experienced up to a 20 percent performance improvement in their applications due to less I/O and improved buffer pool utilization.
- Enhanced connection management for High-Availability clusters: In a High-Availability Cluster environment, the new Connection Manager dynamically routes client application connection requests to the most appropriate server in a high-availability cluster. Connection Manager connects to each of the servers in the cluster and gathers statistics about the type of server, the unused workload capacity, and the current state of the server. From this information, the Connection Manager redirects the connection to the appropriate server.
- Stable environment: IDS ensures it's stability by leveraging multiple data replication technologies, such as High-Availability Data Replication (HDR), which provides hot-standby capabilities, and Enterprise Replication (ER), which provides fine-grained data replication. HDR also supports multiple secondary nodes that provide read access to the database and can take over transaction processing. Furthermore, multiple shared disk secondary servers can be setup where many copies of IDS share the same set of disks and a single copy of the data.
Secure
- Resilient against denial of service attacks: IDS has multiple listener threads (listen_authenticate) to limit denial-of-service (DOS) attacks. These threads authenticate client requests, while the main listener thread only accepts the incoming requests and forks new threads for authentication. Using the parameter MAX_INCOMPLETE_CONNECTIONS, the number of the threads authenticating at any point in time can be configured. And with the parameter LISTEN_TIMEOUT, the timeout value for incomplete connections can be configured.
- Encryption between client and server, at column level and between HDR pairs: The communication between the IDS client and server is encrypted, leveraging the technology from OpenSSL. The communication between HDR and ER pairs are encrypted as well. Within a database table, column level encryption is provided. Data can be stored in an encrypted format. SQL functions are available to encrypt and decrypt the data. Data is encrypted using either Triple-DES or AES. The encryption of data is under the control of the application. At the session level, a data encryption password can be set or reset with the SET ENCRYPTION PASSWORD SQL statement.
- Advanced access control through Label-Based Access Control (LBAC): LBAC implements Mandatory Access Control, a security requirement on information management systems that handle sensitive or classified information. This feature provides mechanisms by which a hierarchy of security labels can be defined and assigned to database objects and to users of the database server. With LBAC, read permissions can be different from write permissions.
- Secure local connection: The SECURITY_LOCALCONNECTION configuration parameter enables a database server administrator (DBSA) to set up security checking for local connections with the same host. IDS checks that the ID of the local user who is running a program is the same ID as the user who is trying to access the database server.
Enhanced Developer Productivity
- SQL administration API: A new SQL Administration API enables the DBSA to perform administrative tasks remotely by issuing SQL statements. The DBSA can accomplish administrative tasks by invoking new built-in admin( ) or task( ) functions with arguments that emulate command-line arguments to the corresponding utility.
- SQL admin API commands to configure High-Availability clusters: You can now configure High-Availability clusters using the SQL Administration API. The solution can utilize the API to perform the equivalent of onmode -d commands.
- Automate administration: Diagnostics data such as long running queries, SQL access paths, space usage and more can be obtained from the system databases. This allows a program or user to query any aspect of the system status by coding SQL scripts. Utilizing this capability, IDS can be administrated entirely from within a program.
- VP class for CPUVPs: You can add or drop virtual processors in a user-defined VP class or in the CPU VP class while the database server is online. Use onmode -p to add virtual processors to the class.
- Dynamic allocation of dbspaces: Dbspaces can be created while IDS is online and are available as soon as they are created. The same applies to new chunks added to dbspaces.
- Physical log: The Physical log can be modified while IDS is online. There's no requirement to bring the engine to quiescent mode.
- Control external directives for a session: You can now use the new EXTDIRECTIVES session environment option of the SET ENVIRONMENT statement to control whether external directives are enabled, disabled, or have default behavior during a session. Specify the default directives behavior with the EXT_DIRECTIVES configuration parameter and the client-side IFX_EXTDIRECTIVES environment variable.
- Backup and Restore to directories: You can use the ontape utility to backup and restore data from a file system without interactive prompts. To enable this feature, set the TAPEDEV and LTAPEDEV configuration parameter to a valid directory name of a local or remote mounted file system. The ontape utility generates file names automatically and performs physical and log backups.
- Enhanced server startup: You can customize startup scripts and automate startup with the new -w option for the oninit utility. The -w option forces the server to wait until it successfully initializes before returning a shell prompt.
- Session configuration routines: New built-in SPL procedures enable the Database Administrator to execute SQL and SPL statements automatically when a user connects to or disconnects from the database server. These built-in procedures can be useful in setting the session environment, sending alerts, begin auditing, or in automating operations that need to be performed after the application terminates.If the DBA specifies the login ID of a user as the owner of a procedure whose name is sysdbopen() or sysdbclose(), IDS executes that procedure when the specified user connects to or disconnects from the database server. The owner can also be PUBLIC.
- Failover configuration: In a High-Availability Cluster environment, the Connection Manager Arbitrator provides automatic failover logic for High-Availability clusters. Using a configuration file, you specify which secondary server takes over if the primary server fails. You can also specify the name of a script to run when a database server transitions from a secondary server to a primary server or from a secondary server to a standard server using the FAILOVER_CALLBACK configuration parameter.
- Online reconfiguration: IDS has several configuration parameters that can be set dynamically using the onmode -w command. Furthermore, routine administration tasks such as allocating disk space, adding logs, and checking data consistency without manual intervention are available through the SQL administration API.
- Schedule administrative tasks: The new Admin Scheduler allows a solution to run maintenance tasks, monitoring activities, and perform administrative tasks at predefined times or as determined internally by the server.
- Dynamic change of Enterprise Replication configuration parameters and environment variables: You can amend in-memory values for Enterprise Replication configuration parameters and environment variables while the server is running. This is done using new commands:
- cdr add onconfig: to add a value
- cdr change onconfig: to change an existing value
- cdr remove onconfig: to remove an existing value
- Dynamic renaming of Enterprise Replication columns, tables, and databases: Use the RENAME statement to rename a column, table, or database on every participant in the replicate.
- Administration mode: When you move the database server from off-line to administration mode, you move the server into a mode that only administrators can use to perform database server functions and maintenance functions.
- Remote/automatic administration and management: There are numerous options available to administer the database server remotely or from within the application.
- OpenAdmin Tool, Server Studio, Sentinel
- Ability to query system information via SQL
- Cluster management API Start/Stop, Add/Remove, Configure
- Administrative tasks within application via SQL
- Admin API open for use by any user interface program
- SQL API, with direct database commands from within SQL statements
- A set of User-Defined Routines (UDRs) to administer IDS
