Revamp benchmarks to use fio JSON format #143

Closed
opened 2021-10-02 00:36:51 -04:00 by JoshuaBoniface · 6 comments
JoshuaBoniface commented 2021-10-02 00:36:51 -04:00 (Migrated from git.bonifacelabs.ca)

When implementing Benchmarks I used a convoluted analysis and storage of certain aspects of the terse output format. However, this lost a lot of information, and it turns out that fio already had an in-built JSON output format. So we should switch to that instead.

This is a multipart migration:

  1. Add a DB field in the Benchmark table to track the test version. 0 by default, 1 with the new version.

  2. Return the test version field in the output of the API calls.

  3. Reimplement the client formatting to handle whichever result is returned. That way clients can still see the legacy-formatted tests as well as new-formatted tests.

  4. Add a --format output option to storage benchmark info to either format or dump the output.

  5. Update to test format 1 and new options for tests including the new output version and some other tweaks.

While this is a fair bit of work for, admittedly, little benefit outside of the few clusters I already run, I don't think keeping the old codepaths is that big of a deal and the new version field will allow future format changes as well (for instance if we add new test types).

When implementing Benchmarks I used a convoluted analysis and storage of certain aspects of the `terse` output format. However, this lost a lot of information, and it turns out that `fio` already had an in-built JSON output format. So we should switch to that instead. This is a multipart migration: 1. Add a DB field in the Benchmark table to track the test version. `0` by default, `1` with the new version. 2. Return the test version field in the output of the API calls. 3. Reimplement the client formatting to handle whichever result is returned. That way clients can still see the legacy-formatted tests as well as new-formatted tests. 4. Add a `--format` output option to `storage benchmark info` to either format or dump the output. 5. Update to test format 1 and new options for tests including the new output version and some other tweaks. While this is a fair bit of work for, admittedly, little benefit outside of the few clusters I already run, I don't think keeping the old codepaths is that big of a deal and the new version field will allow future format changes as well (for instance if we add new test types).
JoshuaBoniface commented 2021-10-02 00:58:34 -04:00 (Migrated from git.bonifacelabs.ca)

changed the description

changed the description
JoshuaBoniface commented 2021-10-02 00:59:16 -04:00 (Migrated from git.bonifacelabs.ca)

changed the description

changed the description
JoshuaBoniface commented 2021-10-02 01:30:23 -04:00 (Migrated from git.bonifacelabs.ca)

1, 2, 3 and 4 are (mostly) implemented. The completion of 3 requires 5 to be completed so we know how to format it.

1, 2, 3 and 4 are (mostly) implemented. The completion of 3 requires 5 to be completed so we know how to format it.
JoshuaBoniface commented 2021-10-02 01:30:23 -04:00 (Migrated from git.bonifacelabs.ca)

mentioned in commit 5b27e438a9

mentioned in commit 5b27e438a9903085d23e8fed5bab010b2aa79b68
JoshuaBoniface commented 2021-10-02 01:31:00 -04:00 (Migrated from git.bonifacelabs.ca)

changed the description

changed the description
JoshuaBoniface commented 2021-10-03 22:33:39 -04:00 (Migrated from git.bonifacelabs.ca)

closed

closed
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: parallelvirtualcluster/pvc#143
No description provided.