Target architecture

The SMP environment product is intended for machines with the following features:

Adaptive Server consists of one or more cooperating processes (execution environments scheduled onto physical CPUs by the operating system, also called engines), all of which run the server program in parallel. An engine is a process running an Adaptive Server that communicates with the other Adaptive Server processes via shared memory. An engine can be thought of as one CPU’s worth of processing power. It does not represent a particular CPU. Also referred to as a

See Figure 5-1.

Figure 5-1: SMP environment architecture

Image of the achiecture of an SMP environment. On the top level are the clients, cpu’s, and disks. The next level is the operating system. The next level is the engines. Beneath this is the shared execurable, consisting of the program memory, and at the bottom level is the shared memory.

When clients connect to Adaptive Server, connections are assigned to engines in a round-robin fashion, so all engines share the work of handling network I/O for clients. All engines are peers, and they communicate via shared memory.

The server engines perform all database functions, including updates and logging. Adaptive Server, not the operating system, dynamically schedules client tasks onto available engines. Tasks are execution environments within the Adaptive Server scheduled onto engines by Adaptive Server.

The operating system schedules the engine processes onto physical processors. Any available CPU is used for any engine; there is no engine affinity. The processing is called symmetric because any Adaptive Server engine can pick up any Adaptive Server task, unless it is deliberately configured otherwise.

Affinity is a process in which a certain Adaptive Server task runs only on a certain engine (task affinity), a certain engine handles network I/O for a certain task (network I/O affinity), or a certain engine runs only on a certain CPU (engine affinity)