Single threaded vs. Multi threaded
Posted in 2011
Wow, it's been a while since I worked on Informix 5 :-) In Informix, Version 5, UNIX controlled everything. For each user that connected, a process was created and UNIX controlled process switching. This is a single-threaded architecture model. Due to the size of servers back when the release was available, a large number of users could not access the server at one time because the number of processes became very difficult to manage and performance suffered. In general, this model will not scale well to many users concurrently. In Informix Dynamic Server, Version 7 and higher, processes are still utilized by UNIX but they became virtual processes and handled thread switching. This is a multi-threaded model, and has been in place since the first release of Informix Dynamic Server, Version 7. In this case, the running thread is responsible to switch with the next thread prepared to run in the ready queue. The running thread switches when it yields. The running thread will yield under one of the following circumstances: 1. No more work to do 2. Waiting for resource 3. Waiting for I/O 4. To give another thread a chance to run