Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
October 08, 2016 weighted round robin | ||||
---|---|---|---|---|
| ||||
Hi, Can some one guide me on how to implement the weighted round robin, below is what i tried or any other better ways to do it Main Requirement : Incoming socket connection has to be sent to 3 servers in the weighted round robin fashion. Prog:1 import std.stdio; import std.range; import std.range.primitives; void main() { auto a = [1,2,3]; // E.g :Server Array auto b = [1,2,3,4,5]; // E.g: Socket Array auto r = roundRobin(a, b); writeln(r); } OUTPUT : [1, 1, 2, 2, 3, 3, 4, 5] Requirement : [1, 1, 2, 2, 3, 3,1,4,2,5] From, Vino |
October 10, 2016 Re: weighted round robin | ||||
---|---|---|---|---|
| ||||
Posted in reply to vino | On Saturday, 8 October 2016 at 22:48:53 UTC, vino wrote:
> Hi,
>
> Can some one guide me on how to implement the weighted round robin, below is what i tried or any other better ways to do it
>
> Main Requirement : Incoming socket connection has to be sent to 3 servers in the weighted round robin fashion.
>
> Prog:1
> import std.stdio;
> import std.range;
> import std.range.primitives;
>
> void main()
> {
> auto a = [1,2,3]; // E.g :Server Array
> auto b = [1,2,3,4,5]; // E.g: Socket Array
> auto r = roundRobin(a, b);
> writeln(r);
> }
> OUTPUT : [1, 1, 2, 2, 3, 3, 4, 5]
> Requirement : [1, 1, 2, 2, 3, 3,1,4,2,5]
auto r = roundRobin(a.cycle, b.cycle);
Beware though that this yields an infinite range. If you just need one round, you can use:
import std.algorithm.comparison : max;
writeln(r.take(max(a.length, b.length)));
|
October 11, 2016 Re: weighted round robin | ||||
---|---|---|---|---|
| ||||
Posted in reply to Marc Schütz | On Monday, 10 October 2016 at 09:18:16 UTC, Marc Schütz wrote:
> On Saturday, 8 October 2016 at 22:48:53 UTC, vino wrote:
>> Hi,
>>
>> Can some one guide me on how to implement the weighted round robin, below is what i tried or any other better ways to do it
>>
>> Main Requirement : Incoming socket connection has to be sent to 3 servers in the weighted round robin fashion.
>>
>> Prog:1
>> import std.stdio;
>> import std.range;
>> import std.range.primitives;
>>
>> void main()
>> {
>> auto a = [1,2,3]; // E.g :Server Array
>> auto b = [1,2,3,4,5]; // E.g: Socket Array
>> auto r = roundRobin(a, b);
>> writeln(r);
>> }
>> OUTPUT : [1, 1, 2, 2, 3, 3, 4, 5]
>> Requirement : [1, 1, 2, 2, 3, 3,1,4,2,5]
>
> auto r = roundRobin(a.cycle, b.cycle);
>
> Beware though that this yields an infinite range. If you just need one round, you can use:
>
> import std.algorithm.comparison : max;
> writeln(r.take(max(a.length, b.length)));
Hi Marc,
Thank you, I have made a small update as the Server Array is fixed length and the Socket array would be dynamic so made the below changes as now it is working as expected
Prog:1
import std.stdio;
import std.range;
import std.range.primitives;
import std.algorithm.comparison : max;
void main()
{
auto a = [1,2,3]; // E.g :Server Array
auto b = [1,2,3,4,5,6,7,8,9,10,11,12]; // E.g: Socket Array
auto r = roundRobin(a.cycle, b.cycle);
writeln(r.take(max(a.length, b.length * 2)));
}
From,
Vino.B
|
October 12, 2016 Re: weighted round robin | ||||
---|---|---|---|---|
| ||||
Posted in reply to vino | On Tuesday, 11 October 2016 at 06:28:10 UTC, vino wrote:
> On Monday, 10 October 2016 at 09:18:16 UTC, Marc Schütz wrote:
>> [...]
>
> Hi Marc,
>
> Thank you, I have made a small update as the Server Array is fixed length and the Socket array would be dynamic so made the below changes as now it is working as expected
> Prog:1
> import std.stdio;
> import std.range;
> import std.range.primitives;
> import std.algorithm.comparison : max;
>
> void main()
> {
> auto a = [1,2,3]; // E.g :Server Array
> auto b = [1,2,3,4,5,6,7,8,9,10,11,12]; // E.g: Socket Array
> auto r = roundRobin(a.cycle, b.cycle);
> writeln(r.take(max(a.length, b.length * 2)));
> }
>
> From,
> Vino.B
In your first post you mention it should be weighted, but I see no weights anywhere.
|
October 18, 2016 Re: weighted round robin | ||||
---|---|---|---|---|
| ||||
Posted in reply to Erikvv | On Wednesday, 12 October 2016 at 13:44:59 UTC, Erikvv wrote:
> On Tuesday, 11 October 2016 at 06:28:10 UTC, vino wrote:
>> On Monday, 10 October 2016 at 09:18:16 UTC, Marc Schütz wrote:
>>> [...]
>>
>> Hi Marc,
>>
>> Thank you, I have made a small update as the Server Array is fixed length and the Socket array would be dynamic so made the below changes as now it is working as expected
>> Prog:1
>> import std.stdio;
>> import std.range;
>> import std.range.primitives;
>> import std.algorithm.comparison : max;
>>
>> void main()
>> {
>> auto a = [1,2,3]; // E.g :Server Array
>> auto b = [1,2,3,4,5,6,7,8,9,10,11,12]; // E.g: Socket Array
>> auto r = roundRobin(a.cycle, b.cycle);
>> writeln(r.take(max(a.length, b.length * 2)));
>> }
>>
>> From,
>> Vino.B
>
> In your first post you mention it should be weighted, but I see no weights anywhere.
Hi Marc,
I am at the initial stage of implementing the round robin algorithm and still not reached the next part of weighted , if you have the code then please send me at present i am trying to implement this algorithm in my Server socket program and i would require few more days to complete it.
|
October 19, 2016 Re: weighted round robin | ||||
---|---|---|---|---|
| ||||
Posted in reply to vino | On Tuesday, 18 October 2016 at 16:43:19 UTC, vino wrote:
> On Wednesday, 12 October 2016 at 13:44:59 UTC, Erikvv wrote:
>> In your first post you mention it should be weighted, but I see no weights anywhere.
>
> Hi Marc,
>
> I am at the initial stage of implementing the round robin algorithm and still not reached the next part of weighted , if you have the code then please send me at present i am trying to implement this algorithm in my Server socket program and i would require few more days to complete it.
Note that I'm not the one you wrote the above comment ;-)
|
Copyright © 1999-2021 by the D Language Foundation