2011/6/22 Robert Klemme <shortcutter / googlemail.com>: > Hm... Now I am not sure any more whether you need a associative > container at all. Now we have three steps. From what I understand > you do: > > 1. items are collected > 2. items are ordered by priority (what you call second container above) > 3. items are ordered by some randomization algorithm > > I'm obviously missing other access operations out here. So far I > don't see any need for a Hash or similar structure. What else is it > that you need to do with these items? What properties do they have? Step 1) I get data (DNS SRV records), which is an array with entries like this: #<EventMachine::Udns::RR_SRV:0x00000001ea4970 @domain="domain.org", @priority=1, @weight=50, @port=5062> Each entry is a SRV record. It has a priority (lowest value is the best) and weight (higher value means more probability to choose it). The client getting such array of SRV records wants to connect to a server based on SRV priorities/weight, which works as follows: - SRV records with best priority must be used first. - If there are various SRV records with same priority, then the probability of choosing each one depends on its weight value (random with weight). - If the chosen SRV record fails to connect (i.e. server down) next one (based on same priority/weight rules) must be tryed. -- Iaki Baz Castillo <ibc / aliax.net>