Home | Previous Page | Next Page   DataBlade Module Concepts > DataBlade Modules and the Database Server >

Internal Architecture of the Database Server

If you want to add user-defined routines to your Informix database server, you must understand the internal architecture of the database server and how DataBlade module routines can affect the database system. The following aspects of the internal architecture of your Informix database server are affected the most by DataBlade modules:

DataBlade Modules and Virtual Processors

The internal architecture of your Informix database server contains virtual processors. Virtual processors are operating system tasks that execute requests.

Virtual processors are separated into virtual processor classes. Each of the virtual processor classes provided in the database server handles a different type of task, such as executing queries and routines, fetching data from disk, and administering network connections. You can create user-defined virtual processors to handle tasks you define.

One of the critical virtual processors is the CPU VP, which acts as a router and handles basic administrative tasks, processes certain user requests, and delegates other requests to the appropriate processor. Tasks thus participate in a highly distributed environment that is optimized for performance and scalability.

By default, all user-defined routines execute in the CPU VP; however, if your DataBlade module routine makes use of certain system services, you must assign it to a user-defined virtual processor. A user-defined VP is created by the system administrator and executes only those routines assigned to it. For more information about the system services that require a user-defined VP, see the IBM Informix: Dynamic Server Administrator's Guide and the IBM Informix Developer Zone at www.ibm.com/software/data/developer/informix.

DataBlade Module Memory Allocation

Another important aspect of the internal architecture of your Informix database server is that virtual processors communicate with one another through shared memory. Therefore, when you write code for user-defined routines, you cannot use standard memory allocation functions. To manage memory for DataBlade modules, you must use the memory management functions provided by the DataBlade API or the JDBC 2.0 API.

See the IBM Informix: DataBlade API Programmer's Guide or the IBM Informix: J/Foundation Developer's Guide manual for complete information.

Java Virtual Machine

Dynamic Server executes UDRs written in Java in its specialized virtual processors, called a Java virtual processor (JVP). A JVP embeds a Java virtual machine (JVM) in its code.

The JVPs are responsible for executing all UDRs written in Java. Although the JVPs are mainly used for Java-related computation, they have the same capabilities as a user-defined VP, and they can process all types of SQL queries. This embedded VM architecture avoids the cost of shipping Java-related queries back and forth between CPU VPs and JVPs.

For more information on how the database server handles Java code, see the IBM Informix: J/Foundation Developer's Guide manual.

Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]