Problem: Does InterBase take advantage of multiple processors? Solution: Performance Gains For InterBase Classic (All versions prior to v4.2 except Netware): ------------------------------------------------------------------------------------------------------------------- The classic model uses a process-per-client architecture. For each client that connects to the server, an associated process is started on the server. All database interactions for this client occur through this process on the server. Systems with multiple processors will see a slight performance gain for InterBase. Each client's associated server process can run on a different processor which will result in a performance gain. Performance Gains For InterBase SuperServer (WI-V4.2.1, NW-V4.0A(4), V5.x) ------------------------------------------------------------------------------------------------------------------- InterBase SuperServer Architecture is now a thread-based server. This means that there is one InterBase server process and multiple threads to support database attachments. Each new database attachment will use one of the available worker threads to service its requests. For multiprocessor systems there will be a performance gain due to the fact that each of these InterBase threads can be scheduled on a different processor. Why InterBase performance is NOT proportional to the number of CPUs ------------------------------------------------------------------------------------------------------------------ InterBase has several key areas that are single access. These areas only allow one thread to be in this particular area at any one time. For instance the lock table is an area that is single access. Only one thread may be using the lock table at any given time. The lock table is the area where locks are stored for all database objects. Each attachment must have the appropriate lock before it can access any database object. Until these areas of the InterBase server allow multiple concurrent access InterBase performance will never be directly proportional to the number of CPUs on the system.
Last Modified: 17-OCT-00