NVlabs / FPSci

Aim Training Experiments
Other
70 stars 23 forks source link

User session status split #365

Closed bboudaoud-nv closed 2 years ago

bboudaoud-nv commented 2 years ago

This branch splits the per-session written user status (sessions completed) from the remainder of the user status file. The new per-session status file format supports an iterative write approach and therefore serializes to disk faster. This file uses a CSV format with user ID, session ID formatting for each line. It is read in once from disk at startup to recover the user session status for all users.

The old user status file still contains the currentUser field (and potentially adding new users) which requires write-back when the user changes/is added but otherwise should be written far less frequently.

Custom session status log names can be specified using the new completedLogFilename configuration parameter in the top-level of the user status file.

Merging this branch closes #355

bboudaoud-nv commented 2 years ago

This might interact w/ #348, perhaps we should attempt a fix for that issue in this branch

jspjutNV commented 2 years ago

I checked out this branch and it fails to build. I'm not sure what's going on yet, but the error happens outside of the code from this PR, but doesn't happen on the master branch. I'm investigating.

jspjutNV commented 2 years ago

73f8b05 fixed the build error.

jspjutNV commented 2 years ago

There appears to be a remaining bug, or at least weird behavior if allowRepeat is on, and the user selects sessions out of order. We sort of cover this in the readme, and allowRepeat is intended to be only used when the user can't select session order, so I think we can consider this documented behavior. I'll clarify a little in the docs.