Commit graph

323 commits

Author SHA1 Message Date
Trolli Schmittlauch 12dfc56a73 fediChordInit returns a RealNode, manages vservers as map
- contributes to #34
2020-09-19 23:01:55 +02:00
Trolli Schmittlauch 9bf7365a2c include target ID in request to address individual vserver
- necessary for dispatching the request to a certain vserver
- also refactored request sending to use a common `mkRequest`
- contributes to #2
2020-09-19 20:41:58 +02:00
Trolli Schmittlauch 5e745cd035 only specify upper key bound when querying load
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
2020-09-19 15:37:41 +02:00
Trolli Schmittlauch 30bf0529ed send load query request, parse result and represent it
- sending side of #71
- introduces SegmentLoadStats to hold the response data
- contributes to #2
2020-09-19 02:05:29 +02:00
Trolli Schmittlauch 576ea2c3f6 calculate service load rates, interface for querying loads
- 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)
2020-09-18 20:36:46 +02:00
Trolli Schmittlauch 7dd7e96cce conversion of RingMap to key-value list 2020-09-18 20:36:35 +02:00
Trolli Schmittlauch a1cfbbac48 bump nixpkgs revision 2020-09-18 20:36:35 +02:00
Trolli Schmittlauch af27cded19 adjust payload parser naming for consistency and clarity 2020-09-18 20:36:35 +02:00
Trolli Schmittlauch 41aaa8ff70 parse ASN.1 representation of load querying
includes tests
contributes to #71
2020-09-18 20:36:35 +02:00
Trolli Schmittlauch ddea599022 extend ASN.1 schema for requesting load information
contributes to #71
2020-09-18 01:26:42 +02:00
Trolli Schmittlauch b48b7a7bba Merge branch 'measurement_logging' into mainline
closes #11, implements #60
2020-09-17 02:19:04 +02:00
Trolli Schmittlauch eee40ce4fb add log messages for failed relays as well 2020-09-17 02:17:57 +02:00
Trolli Schmittlauch 556b69d887 increase subscription lease to 1 (simulated) day for achieving higher subscriber numbers 2020-09-16 16:07:39 +02:00
Trolli Schmittlauch f5de7601bb do not store published posts for reducing memory consumption 2020-09-16 13:49:26 +02:00
Trolli Schmittlauch a2f268d374 improve logging: line buffering, time stamps
contributes to #60
2020-09-16 01:54:50 +02:00
Trolli Schmittlauch bb17b136d6 increase stabilise interval 2020-09-16 01:54:40 +02:00
Trolli Schmittlauch c036dea7f9 periodically purge expired subscriptions 2020-09-14 15:49:44 +02:00
Trolli Schmittlauch a0e7142a7d report number of subscriptions 2020-09-14 14:57:25 +02:00
Trolli Schmittlauch 3c28cde942 catch and print all Socket bind exceptions 2020-09-12 15:45:03 +02:00
Trolli Schmittlauch 1fc264a226 manage logging via file handle
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.
2020-09-12 12:37:41 +02:00
Trolli Schmittlauch da579a0756 decrease logging verbosity 2020-09-11 00:39:14 +02:00
Trolli Schmittlauch e12d8ef70a properly format stats log numbers: no e-notation 2020-09-11 00:39:14 +02:00
Trolli Schmittlauch 0f9727c05a log the post rates instead of the absolute sums 2020-09-10 22:41:06 +02:00
Trolli Schmittlauch 34ecdd66e1 make stats measurement delay configurable, take speedup into account 2020-09-10 21:23:33 +02:00
Trolli Schmittlauch 8f917130c4 tag normalisation includes lower case conversion 2020-09-10 13:14:48 +02:00
Trolli Schmittlauch 3ac89d301c bugfix: subscribe as default if not subscribed yet, when posting to a tag 2020-09-10 13:14:23 +02:00
Trolli Schmittlauch 3c76544afb launch background worker threads 2020-09-10 12:00:17 +02:00
Trolli Schmittlauch f8d30d0cc4 report post fetches to statistics 2020-09-09 19:55:34 +02:00
Trolli Schmittlauch 620e998876 report incoming relay posts to statistics 2020-09-09 19:25:48 +02:00
Trolli Schmittlauch 85d10f6773 report published posts to statistics 2020-09-09 18:50:55 +02:00
Trolli Schmittlauch e3a8912360 process incoming posts in parallel 2020-09-09 18:50:45 +02:00
Trolli Schmittlauch 12fcd13754 annotate the PostService server/ request-handler functions 2020-09-09 18:01:51 +02:00
Trolli Schmittlauch 72eca0f4fe log metrics to file
contributes to #60
2020-09-09 17:22:20 +02:00
Trolli Schmittlauch 0ffe9effc0 refactor relay processing to STM-retry instead of busy-wait 2020-09-09 14:24:34 +02:00
Trolli Schmittlauch 2b39648a77 actually implement simple relaying of posts
was still missing for #41
2020-09-09 11:51:09 +02:00
Trolli Schmittlauch df479982fa make RingMap instance of Functor and Foldable 2020-09-08 08:46:36 +02:00
Trolli Schmittlauch c536994afe re-format Servant client pattern matching 2020-09-07 16:35:59 +02:00
Trolli Schmittlauch 5c338b9cd7 split up stats summing and evaluating, launch threads 2020-09-07 16:27:56 +02:00
Trolli Schmittlauch c823e6357a accumulate all statistic/ measurement events to a measurement summary
- RingMap can now be mapped over
2020-09-07 13:00:15 +02:00
Trolli Schmittlauch 6b166ac4ca fixup! Merge branch 'measurement_logging' into mainline 2020-09-07 10:32:58 +02:00
Trolli Schmittlauch 4d2d6faf1b Merge pull request 'Improve general readability' (#69) from Hecate/Hash2Pub:readability into mainline
brings several readability enhancements:

- Text is always unqualified
- The Servant API declaration is moved to its own file
- Redundant imports are removed
2020-09-05 16:27:23 +02:00
Hécate 7d833e064b Improve readability 2020-09-05 15:45:47 +02:00
Trolli Schmittlauch fa78c6fc43 clarify different nix-shell environments in readme 2020-09-05 15:01:46 +02:00
Hécate d3e5eac5c5 Unsused imports and syntax error 2020-09-05 12:41:18 +02:00
Trolli Schmittlauch 60f5780742 Merge branch 'measurement_logging' into mainline
more values are parametrised through FediChordConfig
2020-09-05 12:31:40 +02:00
Trolli Schmittlauch c9b0e66110 scale request timeout with speedup and pass it directly to function 2020-09-05 12:30:31 +02:00
Trolli Schmittlauch 4f08d33d2e make all delays configurable and scale them according to a speedup factor 2020-09-05 12:30:31 +02:00
Trolli Schmittlauch 20050654bc make passing bootstrap information optional
reason: allow the first node to start without having to wait for a
timeout
part of #58
2020-09-03 11:20:38 +02:00
Trolli Schmittlauch 59beb3441f instrumentation script executes the prepared schedule
- reads CSV schedule from file
- sends the given schedule of post events
- not thoroughly tested yet

implements #59
2020-09-02 21:37:01 +02:00
Trolli Schmittlauch 1aee41db88 enable compiler optimisation 2020-08-31 13:37:40 +02:00