refactorRingMap
This PR likely enables too many LanguageExtensions and could possibly be simplified, see 63.
Merging this for now though as tests run through fine.
refactorRingMap
refactorRingMap
Simplify class, instance and type hierarchy around RingMap
verify instance IP address
Caching layer for DHT node responsibility resolution
Caching layer for DHT node responsibility resolution
-
input: key ID to look up
-
output: hostname, servicePort
- returning the whole RemoteNodeState would be more future proof in case some other information like node ID were needed
- but this helps providing a clean interface cut and enforce connection via hostname only
-
caching behaviour:
- for concurrency: similar to NodeCache handling
- data structure: tree map (Data.Map.Strict)
- cache hit: check age, if expired trigger new lookup in DHT (
requestQueryID
) and schedule update, else return cached entry - cache miss: trigger new lookup (
requestQueryID
) and insert result into cache - cleaning: periodic cleaning is needed against atttacker triggering a cache fill up by requesting a large number of random hashtags just once
- check on each access vs. short cleaning duration
planning of experiments
proper measurement logging