Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Queuing Theory for controlling resources

Options
  • 22-02-2010 11:14am
    #1
    Registered Users Posts: 9,579 ✭✭✭


    Bit of a long shot but....


    I'm involved with a large system written in C# that accepts messages, processes and gives an output. One component of the system requires significant resources (Involves scientific calculations).
    Different instances of this component can be used depending on the availability of resources in the system. So some algorithm is required to step down as resources become scarce.

    A separate thread is started for each instance of this component.

    Now, I've done a bit on Queuing theory in telecommunications. I'm wondering if the same principles can be used here.

    The threads that run the components can be seen as the "servers" and you've an incoming data that I'd imagine is poisson distributed.

    I don't think the threads can be seen as having a deterministic service time.
    The input rate of data from each system is probably periodic enough.

    Just wondering if anyone has used it for such things like this?


Comments

  • Registered Users Posts: 1,916 ✭✭✭ronivek


    What is it exactly you're looking to do? Dynamically determine which instance to route requests to based on the available resources when the request is received? Do you want to just throttle incoming requests when the system load exceeds some threshold?

    Queuing theory will help you to model and possibly analyse the system but it's hardly a trivial exercise. Is it a time/safety critical system? If not I would suggest you could probably build a decent protocol around a throttling queue type component which would help here; and use empirical measurements to determine what resources you need to deploy it and so on.


Advertisement