Add cell execution tracking during notebook execution#587
Open
agupta01 wants to merge 6 commits intojupyter-server:mainfrom
Open
Add cell execution tracking during notebook execution#587agupta01 wants to merge 6 commits intojupyter-server:mainfrom
agupta01 wants to merge 6 commits intojupyter-server:mainfrom
Conversation
for more information, see https://pre-commit.ci
andrii-i
reviewed
Aug 29, 2025
Collaborator
There was a problem hiding this comment.
Great work @agupta01, thank you. This PR adds cell execution tracking feature in a high-quality and clean manner, db schema changes are done properly and therefore backwards-compatible.
Refactors of validate() and supported_features() to be classmethods makes sense to me and is a clear improvement / cleaner design since both methods don't need instance state.
Two concerns prevent immediate merge:
- Enabling cell tracking by default makes every cell execution trigger a database write. This could impact production deployments, especially for users with large notebooks and limited compute and networking resources / configurations. Making this feature opt-in / disabled by default would remedy this.
- Classmethod refactor breaks backwards compatibility for any custom
ExecutionManagerimplementations and therefore is a breaking change. Refactoring these changes into a separate PR that would be merged after the final2.xrelease would remedy this.
Happy to merge once these changes are made. The cell tracking feature will be a great addition to Jupyter Scheduler.
Author
|
@andrii-i thanks for your feedback. I have made the requested changes:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
References
Resolves #586
Code changes
This PR adds a
completed_cellsfield to the Job model to track the number of cells executed during notebook execution in real-time. The implementation includes:Model Changes:
completed_cellscolumn to the Job table in ORM (jupyter_scheduler/orm.py)jupyter_scheduler/models.py)Execution Tracking:
JobFeature.track_cell_executionfeature flag to enable/disable cell trackingDefaultExecutionManagerto use nbconvert's nativeon_cell_executedhook. Note that this was found to be cleaner than the subclassing approach defined in Track completed cell progress during notebook execution #586.User-facing changes
/jobs/{job_id}now returns the current count of completed cells/jobs/{job_id}accepts completed_cells updates for manual correctionsBackwards-incompatible changes
None