Hello,
I'd like to model a microservices-based app with bursty traffic via a
layered queuing network model.
To that end, I want to configure the inter arrival times for some of the
model Entries' via the Pareto distribution. But I can't understand how to
do that. I see that the Entry class only has an open arrival rate property https://github.com/imperial-qore/line-solver/blob/master/src/lang/Entry.m#L10,
which makes me suspect only Poisson is supported.
Is what I'm asking for (Pareto inter arrival times for LQN model)
supported? If not, how complicated is it to add support for that? If
necessary, I have the time to do that, under some guidance.
Apologies for the duplication, I had created the post via email but it wasn't being displayed, so I created another one directly on the forum, and then the email one got created.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I don't think it would be too hard to add but there is no good solver around other than a simulator for the resulting queueing networks that the LQN generates via decomposition if they have Pareto arrivals. At that point you may want to check if LQSIM (part of the LQNS suite) can simulate Pareto and feed the xml of the model manually.
We had a draft code support for arrivals in SolverLQNS but we wanted to change the interfaces. The old commit may work but I suspect LQNS won't handle Pareto anyway.
If your LQN has a single layer you could do model.ensemble{1}.jsimgView and simulate manually the Pareto in JMT.
Last edit: Giuliano Casale 2023-10-12
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
there is no good solver around other than a simulator for the resulting queueing networks that the LQN generates via decomposition if they have Pareto arrivals.
The simulator would work for me (assuming it supports Pareto).
The LQN tutorial ( http://www.sce.carleton.ca/rads/lqns/lqn-documentation/tutorialh.pdf ) describes a workaround to mimic open arrivals via a reference task that sends asynchronous requests with think time set appropriately (in my case it'd be Pareto-distributed). I will try that shortly. But I don't understand if the doubts you raised about whether LQSIM supports Pareto would apply even to this "workaround", or just to the explicit setting of Pareto open arrivals on an Entry.
Last edit: Matteo Olivi 2023-10-12
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Update: I haven't actually tried as I didn't even succeed in getting the simulator to work. But it appears to be a bug in lqsim rather than line: https://github.com/layeredqueuing/V6/issues/5 .
I'm investigating the issue in the hope of finding a quick fix.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I'd like to model a microservices-based app with bursty traffic via a
layered queuing network model.
To that end, I want to configure the inter arrival times for some of the
model Entries' via the Pareto distribution. But I can't understand how to
do that. I see that the Entry class only has an open arrival rate property
https://github.com/imperial-qore/line-solver/blob/master/src/lang/Entry.m#L10,
which makes me suspect only Poisson is supported.
Is what I'm asking for (Pareto inter arrival times for LQN model)
supported? If not, how complicated is it to add support for that? If
necessary, I have the time to do that, under some guidance.
I see that there's a past commit that added what I'm asking for
https://github.com/imperial-qore/line-solver/commit/07081b4619ac8e09015a0b4329cee280cf0123bd#diff-5de31c7064073529c86a800070db1908a8842abba7e7611376ea8df9363bd43dR39-R43,
but then that functionality was removed by this subsequent commit
https://github.com/imperial-qore/line-solver/commit/1eadb3a1aeb840782ce20d0b079ddcdc3ef8ab4f#diff-5de31c7064073529c86a800070db1908a8842abba7e7611376ea8df9363bd43dL39-L43.
Why was it removed? Are there ways to obtain the same behavior that was
removed in a different way?
Sorry if the question isn't clear or the answer should be obvious, I'm new
to queuing models/performance modeling in general.
Thanks,
Matteo.
This post is a duplicate of https://sourceforge.net/p/line-solver/discussion/help/thread/2e7b78194f/ .
Apologies for the duplication, I had created the post via email but it wasn't being displayed, so I created another one directly on the forum, and then the email one got created.
Thanks for using LINE.
Unfortunately LQN support is still incomplete. Open arrival rates in LayeredNetworks are in particular an open feature request for LN:
https://sourceforge.net/p/line-solver/feature-requests/96/
I don't think it would be too hard to add but there is no good solver around other than a simulator for the resulting queueing networks that the LQN generates via decomposition if they have Pareto arrivals. At that point you may want to check if LQSIM (part of the LQNS suite) can simulate Pareto and feed the xml of the model manually.
We had a draft code support for arrivals in SolverLQNS but we wanted to change the interfaces. The old commit may work but I suspect LQNS won't handle Pareto anyway.
If your LQN has a single layer you could do model.ensemble{1}.jsimgView and simulate manually the Pareto in JMT.
Last edit: Giuliano Casale 2023-10-12
Thanks for your reply (and for creating LINE!).
The simulator would work for me (assuming it supports Pareto).
The LQN tutorial ( http://www.sce.carleton.ca/rads/lqns/lqn-documentation/tutorialh.pdf ) describes a workaround to mimic open arrivals via a reference task that sends asynchronous requests with think time set appropriately (in my case it'd be Pareto-distributed). I will try that shortly. But I don't understand if the doubts you raised about whether LQSIM supports Pareto would apply even to this "workaround", or just to the explicit setting of Pareto open arrivals on an Entry.
Last edit: Matteo Olivi 2023-10-12
Update: I haven't actually tried as I didn't even succeed in getting the simulator to work. But it appears to be a bug in
lqsim
rather than line: https://github.com/layeredqueuing/V6/issues/5 .I'm investigating the issue in the hope of finding a quick fix.