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
instrumentation script
select, plan and sample test data
testbed
- first only do a test run with 3 hardcoded nodes
- on success select random nodes, autogenerate testbed configuration and run tests
write a concurrent test program