March 30, 2009
    One of the frequently asked questions I receive is regarding queuing theory and how it applies to computing infrastructures. I think a good way to explain how computer systems have evolved to address queuing issues is through a burger joint analogy.When I was a kid, there were numerous "mom and pop" burger joints along the roads. If you wanted a burger, you drove in, went up to the window, placed your order and paid your money. The people inside cooked up what you requested while you stood there.

    At more popular burger joints, too many people had to wait because it was a one-in, one-out business model. The busier ones came up with the idea that they would have an "order" window and a "pick-up" window. This permitted multiple orders to be processed concurrently, reducing the line waiting to be served. The problem was that the order went in quickly, but during busy periods, people queued up at the "pick-up" window instead of the "order" window.

    Then large chains used analysis tools (some computer-based) to determine the distribution of orders based on time-of-day and day-of-week. Based on their analyses, management adjusted manpower schedules and scheduled making up orders in advance. Heat lamps kept the food hot. At peak times, the burger joints could quickly satisfy demand, keeping order and pick-up queues low. Even if there was wasted food, it was acceptable because they were providing faster service and attracting a greater number of customers. The additional volume and associated profits more than offset the rare losses.

    Computer technology addressing queuing issues has matured in similar fashion. Old computers using the DOS operating system could only process one job at a time. Then Multiple Virtual operating systems came about. Multiple jobs could be run, however they would vie for the same resources, causing queuing (thus elongated wait times).

    With the advent of cheap memory in data storage (disk) controllers, you could fix data in storage at different points in time so that it was readily available and sped the execution of jobs. Read-ahead technology was developed at the same time, further reducing job execution times. Current technologies use a wide variety of the above solutions to speed execution of jobs and transactions.So as you can see, burger joints and computer queuing have a lot in common!

    Until the next time


    Category: uncategorized