Commit graph

37 commits

Author SHA1 Message Date
9bc96f79af Remove trailing slash in internal measurements 2023-10-22 01:50:19 +02:00
2bf939186d Remove stddev and direction columns 2023-10-22 01:50:19 +02:00
2d255f2e06 Fix runner counting files as directories 2023-08-17 19:37:30 +02:00
fa9cf9d1c5 Avoid excessive amount of data in large repos 2023-08-17 19:37:30 +02:00
b59b4f8463 Mention server in worker log messages 2023-08-17 17:30:48 +02:00
3af90a8edf Make error message more useful 2023-08-17 17:28:48 +02:00
99b6a0d4a5 Restructure internal measurements 2023-08-17 17:16:34 +02:00
f12da915a9 Switch from tracing to log crate 2023-08-17 03:09:24 +02:00
a54e842478 Restructure config file 2023-08-17 00:28:58 +02:00
6050415fce Fix warnings 2023-08-16 02:57:32 +02:00
470449f36e Stop logging in internal runner 2023-08-16 01:20:59 +02:00
d32e30eb77 Fix internal runner crash on binary files 2023-08-16 01:20:41 +02:00
3cf444ffc2 Remove todos 2023-08-14 17:51:48 +02:00
1ec72c92d5 Allow worker to specify bench method as string 2023-08-14 16:47:00 +02:00
01124d719b Add optional run end time override 2023-08-14 14:15:38 +02:00
6b8ae19ba5 Use advance() instead of split_to() 2023-08-14 14:01:34 +02:00
36f275c290 Use / as separator character instead of . 2023-08-13 23:02:18 +02:00
2fee0a618c Count file stats by dir 2023-08-13 23:02:18 +02:00
55ea5af779 Count file stats ordered by file name 2023-08-13 22:59:45 +02:00
058ed2e85c Move typed paths to separate module 2023-08-13 19:30:52 +02:00
3d5a277234 Use typed paths in worker 2023-08-13 16:13:59 +02:00
08e240d7db Fix and add documentation 2023-08-13 01:16:12 +02:00
0bad08eca9 Perform runs with internal bench logic 2023-08-12 21:40:14 +02:00
0196709a64 Make RunInProgress fields private 2023-08-12 21:23:36 +02:00
b7c0443005 Ask servers for runs and perform them 2023-08-12 21:23:36 +02:00
eaca373a6a Prevent status update race condition 2023-08-12 21:23:36 +02:00
e644f2be65 Send actual runner status to server 2023-08-12 21:23:36 +02:00
c7a89867a7 Restructure shared types and db columns
Now, the server sends the runner pretty much all run metadata. This way,
the reservation the server makes for the runner is accurate, providing
the runner responds with the same metadata it was sent. It also means
that only the server's system clock is relevant for tie breakers, and a
run's duration spans from the moment it is reserved to the moment it is
saved.

Also, the bench method is now always called `bench_method` and a
human-readable description is stored in the database for each run.
2023-08-12 21:23:36 +02:00
53be0338f2 Launch idle thread for each server 2023-08-12 21:23:36 +02:00
4f63b02509 Fix and simplify tar downloads 2023-08-12 19:19:43 +02:00
81328fcf04 Start reimplementing worker 2023-08-12 19:19:43 +02:00
416e3e6aa1 Implement internal runner 2023-08-12 14:21:48 +02:00
d15d6588f7 Improve and fix runner API
- The server now also signals abort_work if the commit is no longer in
  the queue.
- The server now immediately reserves the work it gives to the worker,
  so other idle workers won't get the same work.
- The server now chooses a run id, not the worker. The worker can still
  submit work under arbitrary run ids when no id is known, for example
  when importing runs from another database.
2023-08-12 13:19:16 +02:00
9fc7c22ae8 Dispatch based on bench method 2023-08-12 02:26:15 +02:00
b23fc6460f Start runs and coordinate with server 2023-08-12 02:16:05 +02:00
cc87171f62 Download and unpack tars 2023-08-12 02:16:05 +02:00
6f4793bcf2 Rename runners to workers 2023-08-11 02:12:38 +02:00