Je. Neilson et al., SOFTWARE BOTTLENECKING IN CLIENT-SERVER SYSTEMS AND RENDEZVOUS NETWORKS, IEEE transactions on software engineering, 21(9), 1995, pp. 776-782
Software bottlenecks are performance constraints caused by slow execut
ion of a software task. In typical client-server systems a client task
must wait in a blocked state for the server task to respond to its re
quests, so a saturated server will slow down all its clients. A Rendez
vous Network generalizes this relationship to multiple layers of serve
rs with send-and-wait interactions (rendezvous), a two-phase model of
task behavior, and to a unified model for hardware and software conven
tion. software bottlenecks have different symptoms, different behavior
when the system is altered, and a different cure from the conventiona
l bottlenecks seen in queueing network models of computer systems, cau
sed by hardware limits. The differences are due to the ''push-back'' e
ffect of the rendezvous, which spreads the saturation of a server to i
ts clients. The paper describes software bottlenecks by examples, give
s a definition, shows bow they can be located and alleviated, and give
s a method for estimating the performance benefit to be obtained. Ulti
mately, if all the software bottlenecks can be removed, the performanc
e limit will be due to a conventional hardware bottleneck.