- relaxes some version constraints as dirty update quickfix
- removes hie integration as that project is abandoned, todo: switch to
haskell-languageserver instead
- in preparation for periodical rebalancing
- makes it possible to look up the next vserver for iterating through
it, after refreshing the map in-between
- added some necessary RingMap functions
- mostly refactored the checks into its own function
- now additionally check the vserver number limit
- refactoring to pass that limit to the checking function invocations
- closes#74
- performance improvement: avoid unnecessary representation and
conversion from/to Integer
- part of hot path: with k-choices, all possible IDs are regularly
generated and checked
- preparation for #74
- closes#77
- when k-choices (#2) joining, try addressing each possible node ID of
the bootstrap node until success
- bugfix: include correct target ID of node that shall respond in
QueryID requests
large commit, contains a number of things:
- k-choices #2 cost calculation
- k-choices parameters
- adjusting ASN.1 network messages to contain all values required for
cost calculation #71
- adjusting stats to contain required values
- k-choices node and vserver join functions
- placeholder/ dummy invocation of k-choices join
As a querying node does not always know the lower bound of the queried
segment – determined by the predecessor – let the currently responsible
node provide that bound instead.
affects #71
- define data type for load representation
- this representation can be queried from any Service (closes#72)
- loads are periodically calculated from measured rates (contributes to #2)
reason: `appendFile` combined with lazy evaluation lead to exhaustion of
open file descriptors, as each file is opened again for each write and
due to lazy evaluation is kept open multiple times.