community.borland.com

Article #25330: InterBase's use of Multiple Processors

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