[erlang-questions] fast tuple sorting

Dmitry Kolesnikov dmkolesnikov@REDACTED
Fri May 30 18:02:49 CEST 2014


gb_trees is even slower then lists. I am getting 50K data points and appends them two lists in 13ms + sorting 60ms. Same size job of gb_trees construction takes about 132ms. 

ETS is a good point, I overlook it and this seems to be a good replacement for NIF burden. However, I need to run up to 2500 concurrent requests on single very powerful node. I guess a single ETS would be bottleneck especially when you need evicts data. ETS table per request sound an interesting approach ;-)    
- Dmitry

On 30 May 2014, at 18:35, Bob Ippolito <bob@REDACTED> wrote:

> Why does it have to be a list? Why not store it in a gb_tree instead, this way it's sorted as you build it. Another alternative would be to use an ordered_set ets table.
> On Fri, May 30, 2014 at 8:15 AM, Dmitry Kolesnikov <dmkolesnikov@REDACTED> wrote:
> Hello,
> I need to sort a list of tuples {integer(), float()} within 6 ms. the lists:keysort(1, X) is not fast enough for me. I am able to meet the hard requirement only if the list size about 10K tuples. However, my application needs to sort lists of 50K tuples or so.
> I doubt that any other sort algorithm implemented in Erlang would solve my issue. Parallel sort would not help at all because production system would run parallel requests of lists sorting. I am starting to think of offloading the sorting to NIF.
> Any thought?
> Best Regards,
> Dmitry
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140530/4862da7e/attachment.htm>

More information about the erlang-questions mailing list