Embedded database technology becomes increasingly important for AdvancedTCA system applications

Internet and Worldwide Web connectivity has become standard fare with AdvancedTCA systems. Most of these systems have the ability to be remotely configured through a command line and/or browser interface. Having a fast, embedded database for storage of configuration information as well as runtime data is a critical part of an effective and useful AdvancedTCA system.

The importance of embedded database technology is further demonstrated by the recent acquisition of Solid Information Technology by IBM.

This column takes a look at Solid’s solidDB 6 product and how this product works in today’s new multicore and multiblade environments.

Where is the fit for embedded databases in AdvancedTCA?

AdvancedTCA systems form the standardized hardware platforms upon which myriad equipment can be built. Ultimately, these systems find their way into the enterprise and the communications networks with which these enterprises connect. The old business operational paradigm is to keep important company information in a central location and to require physical access to that location or remote access to the mainframe database in order to access the information. Today’s companies and their workforces are scattered around the world in many cases. To optimize business operations, the proper information needs to be distributed, shared, and protected with the global workforce. The company workforce is connected in a variety of different ways, from desktops to laptops to mainframes to cell phones to PDAs.

The technology behind information dissemination from a cen-tral location throughout the workforce to a variety of wired and wireless devices lies in flexible and efficient database storage and access. That is where a product such as Solid’s solidDB enters. Solid’s database product can be deployed in a client/server configuration, or as a linked library embedded directly in the application. It is built for fast access and efficient communication between remote devices. Many AdvancedTCA systems are also remotely configurable through a Web browser or Command Line Interface (CLI). In these instances, this configuration information is typically stored in a database. But an AdvancedTCA system comprises multiple controllers with multiple blades, each requiring access and storage services from the database. Another dimension of database product requirements comes from the ability to store and provide access to information within an AdvancedTCAsystem while also being able to share this information with other remote devices.

A dual-engine approach

The solidDB 6 is a relational database designed to meet the needs of the mission critical embedded system within a larger distributed environment. The database technology can perform strictly as an in-memory database or in combination with its on-disk engine. The disk-based or in-memory capabilities are both accessiblevia the same SQL interface. This dual-engine approach allows the product to be optimized for the specific needs of the application while still being transparent to the programmer.

AdvancedTCA systems and the AdvancedTCA architecture (blade controllers working in concert with multiple special-purpose blades) parallel the distributed system targeted by Solid’s database products. Today’s controller blades comprise multiprocessor and/ormulticore elements. So even within a single AdvancedTCA controller card, there exists another distributed system and parallel processing environment. Of course, the AdvancedTCA system is a multiprocessor environment involving multiple blades within each system. The solidDB 6 product takes advantage of these parallel multiprocessor/multicore environments by using a highly multithreaded implementation and an advanced cost-based optimizer. The product has been shown to be linearly scalable from two to 16 cores. The Telecom One (TM1) benchmark has been used to demonstrate the scalability of solidDB 6. The Telecom One Benchmark simulates a Home Location Register (HLR). HLRs store relevant information about subscribers, including phone number, services subscribed to, access privileges, and current location of the subscriber’s device. The solidDB 6 database uses this benchmark to generate measured database workload by issuing a set of predefined transactions against the database under test.

The solidDB 6 product can also be configured as a redundant primary/secondary database system to achieve 6-nines data availability (99.9999 percent) with no single point of failure. This two-node architecture can also be used for load-balancing, increasing throughput by up to 100 percent. The solidDB 6 is capable of several high availability configuration options that specify how the primary and secondary database servers are synchronized. Options can be selected at the system, session, and transaction levels. This provides the ability to balance throughput, durability, and recovery time with unprecedented flexibility.

The redundant system can be configured to perform synchronous or asynchronous database replication. There is also a tool to monitor and manage database fail-over, as Figure 1 shows.

Figure 1

A more detailed view of solidDB

When solidDB is deployed in a client/server model, the server process manages the database files and connections to the database as well as carrying out the actions defined by the client requests. A CLI or GUI front-ends the client process. Applications can also directly link with a solidDB AcceleratorLib library. It has the same capabilities of the client/server based solidDB configuration, but eliminates the overhead of the network access. The application can access the data stored in solidDB in the same process context as the application itself.

The client and server can be on the same host or on different hosts. Each client can be simultaneously connected to multiple servers over the network using different networks and communications protocols.

The server uses drivers to communicate with clients. Clients make driver function calls, and the driver handles the communication details with the server. The solidDB programmer’s guide provides details on how clients communicate with the Open Database Connectivity (ODBC) driver and Java Database Connectivity (JDBC) driver.

The connectivity drivers or AcceleratorLib library provide calls to initialize a database by name. The user selects a catalog name along with a user name and password to initialize the database. Once the database is created, applications can connect to the database by name using the proper username and password configured when the database was created.

Once connected, the application can perform table queries using the connectivity drivers or library.

For embedded system applications, the AcceleratorLib option is an attractive one. Applications using the AcceleratorLib library directly link in the server application and use the standard ODBC interface to make function calls directly to the server application. Even if an application uses this approach, the solidDB server is still available to remote users too.

The AcceleratorLib library includes three APIs:

  • Solid Control API (SSC API). This API includes a thread-safe interface that controls task scheduling within the solidDB environment. This API is primarily responsible for making use of multiprocessor and/or multicore environments.
  • Solid ODBC driver functions that allow for direct communication with the server library, without going through the network. This API provides a standards-compliant interface to access data of a local or remote solidDB database.
  • Solid SA API library. This library is a C-language API that provides access to Solid data management services. The library contains more than 90 functions that provide mechanisms for connecting the database and performing operations on the database tables.

Remote applications can also use the Solid JDBC and ODBC APIs.

The overall architecture of the solidDB system when using the AcceleratorLib library is shown in Figure 2. You will notice that the network layer block provides remote access to the solidDB database files using an external application.

Figure 2

Example applications

One particularly relevant application for solidDB within an AdvancedTCA system is in next generation services products. Network component manufacturers are building network infra-structure components on standards-based blade or rack-mount server form factors. These standard communications components are populated with hot swappable controller cards and various server blade functions. These standards-based hardware platforms create the baseline for a variety of communications products, VoIP products, wireless network products, Web servers for data centers, and numerous other functions.

All these network components are built upon standards-based form factor platforms. So the true product differentiation lies in the software.

In Solid’s "Building Next Generation Network Services" white paper, they describe a push-to-talk messaging application and how this service is implemented within the network. Software in the handset and General Packet Radio Service (GPRS) service node creates and isolates the push-to-talk traffic, which is then forwarded through the IP network to the push-to-talk application server. The server is a multi-tier application consisting of software components running on redundant controller cards and blades. The server is likely also a managed object, which adds another level of complexity. The server may also be involved with other operational aspects, linking the push-to-talk feature to other business operations such as billing. When this simple additionof a push-to-talk feature is looked at in light of the entire wire-less system, the data and control flows can become very complexvery quickly.

The data management solution used within the context of this network environment must meet carrier grade requirements. It was for this kind of distributed, high availability environmentthe Solid database products were created. The Solid database products feature automatic recovery from machine failures, syn-chronization with redundant databases, and fast data retrieval.

The solidDB is based on industry standards SQL-92, ODBC, and JDBC, so the learning curve to use the product is small for people already familiar with these standards. The footprint may be assmall as 3 MB, yet still guarantees data integrity, even when thedata is shared by multiple applications. Solid mentions that solidDB is embedded into core and edge routers’ management framework and is also a component within the HP OpenView family of network management products.

As referenced, solidDB also offers advanced options tailored for these distributed high availability systems. It can be configured to create and maintain a pair of identical databases. All data is committed to both databases before the operation is completed. It also makes system maintenance easier by allowing the administrator to take down the blade running one of the databases for maintenance while the system is still fully operational using the other. Once maintenance has completed, both databases can synchronize and continue redundant operation. In addition to having a fail-over server, both servers can also be used to balance database transactions during peak database access times.

The solidDB is also able to link together loosely coupled cooperative databases and automatically share data between them under the guidance of integrity and security rules controlled by the administrator. It uses the concept of a replica. A database master employs the replica to publish data allowed to be accessible by other objects in the system. A replica can also act as a master, publishing its own set of replicas. This creates the opportunity to construct a multi-tier hierarchy with the ability for various applications to efficiently access data subsets without providing unnecessary or unpermitted access to other database objects.

Replicas also synchronize with their masters. This transaction involves the replica passing the transactions it processed since the last synchronization. These transactions are tagged with business information that helps the master manage these transactions at its level. The master has the ability to undo an action performed by a replica and will inform the replica, overriding values in the replica database. Managing data quality at the master offers the best of both worlds: the replica has the ability to autonomously perform independent actions on the database while still having centralized control at the master for data consistency and integrity.

As noted earlier, one unique feature of solidDB is dual-engine capability, which allows some tables to be defined as in-memory while others are still in the on-disk persistent storage. Dual-engine capability can be deployed together within a single system and ideally serves applications with configuration in-formation that needs to be stored on-disk through power-on/reset and other tables that are not important to store across equipment power cycles. This innovation allows the developer finer granularity to system optimization than was previously possible.


The company‚Äôs Website (www.solidDB.com) offers access to all user documentation as well as product downloads for hands-on evaluation of the solidDB product line. Flexible data storage and access technology that can be scaled from enterprise systems down to mobile devices is an important piece of the right information now requirements of today‚Äôs business climate. Solid‚Äôs database products feature the embedded characteristics needed for these multiple environments while still providing a fully reliable, fast-access database solution. For more information, contact Curt at [email protected].