prashant-r / Scalaris

DHT Chord Transaction
Apache License 2.0
0 stars 0 forks source link

Using integer values as keys leads to poor load balance. #26

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Start 50 nodes.
2. For key from 0 to n
3.   write(key, value)
4. Watch the load distribution.

What is the expected output? What do you see instead?

Load should be balanced throughout the nodes. Instead, only four nodes 
accumulate the load.

What version of the product are you using? On what operating system?

r536. Linux.

Please provide any additional information below.

Using stock configuration.

Original issue reported on code.google.com by natalija...@gmail.com on 31 Jan 2010 at 10:20

GoogleCodeExporter commented 8 years ago
The hashing for keys, which are integers, was disabled. We enabled it as of 
r537.

Original comment by schu...@gmail.com on 1 Feb 2010 at 8:39

GoogleCodeExporter commented 8 years ago
This fix essentially broke range_read for my application. In various places it 
is claimed that scalaris stores keys in lexicographical, is this feature only 
supported in scalarix?

Original comment by natalija...@gmail.com on 1 Feb 2010 at 12:53

GoogleCodeExporter commented 8 years ago
Also, read_range now generates a exception:

[error] Error: exception {{badmatch,
                      [{interval,0,12948471120580332749076610560115786980},
                       {interval,240657766445530432221868080498808070241,
                           255211775190703847597530955573826158592}]},
                  [{db_ets,get_range_with_version,2},
                   {cs_node,on,2},
                   {gen_component,loop,4},
                   {gen_component,start,4}]} during handling of {bulkowner_deliver,
                                                                 [{interval,
                                                                   0,
                                                                   12948471120580332749076610560115786980},
                                                                  {interval,
                                                                   240657766445530432221868080498808070241,
                                                                   255211775190703847597530955573826158592}],
                                                                 {bulk_read_with_version,
                                                                  {{127,0,0,1},
                                                                   14198,
                                                                   <8357.116.0>}}} in module cs_node in ({state,
...

Original comment by natalija...@gmail.com on 1 Feb 2010 at 1:01

GoogleCodeExporter commented 8 years ago
I fixed the badmatch problem. The open-source version does not support
lexicographical ordering.

Original comment by schu...@gmail.com on 1 Feb 2010 at 4:35