Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Job system for activity tracking #5284

Draft
wants to merge 5 commits into
base: dev
Choose a base branch
from
Draft

Conversation

eric-hughes-tiledb
Copy link
Contributor

Add a job system, a set of base classes for jobs. The job system is generic, with a mixin class to add application-specific behavior. The mixin class for the library deals with StorageManager and ContextResources, etc. There's only one remaining StorageManager member variable; it's in the mixin class. The storage_manager() accessor functions are also in the same place.

Add a registry system centered on class Registry. The system supports automatic first-pass registration at construction time. This registry is the basic for the tree structure in the job system.

class JobRoot is now a base class of class Context, now split into ContextBase and Context so that the storage manager member variable is available for the JobRoot constructor. class JobBranch is now a base class of class Query and class Consolidator, among others. Rework all the constructors to take a single JobParent argument rather than separate arguments for resources, cancellation sources, and storage managers.

JobParent::make_cancellation_source is now the sole source of CancellationSource objects. Add Context::cancel_all_tasks(), currently as a proxy for the same function in StorageManager. This allowed removal of the accessor storage_manager() in the context C API handle. Remove now-unused tiledb_ctx_handle_t::make_cancellation_source().


TYPE: IMPROVEMENT
DESC: Job system for activity tracking

Add a registry system centered on `class Registry`. The system supports automatic first-pass registration at construction time.
Add a job system, a set of base classes for jobs. The job system is generic, with a mixin class to add application-specific behavior. The mixin class for the library deals with `StorageManager` and `ContextResources`, etc. There's only one remaining `StorageManager` member variable; it's in the mixin class. The `storage_manager()` accessor functions are also in the same place.
`class JobRoot` is now a base class of `class Context`, now split into `ContextBase` and `Context` so that the storage manager member variable is available for the `JobRoot` constructor.
`class JobBranch` is now a base class of `class Query` and `class Consolidator`, among others. Rework all the constructors to take a single `JobParent` argument rather than separate arguments for resources, cancellation sources, and storage managers.
`JobParent::make_cancellation_source` is now the sole source of `CancellationSource` objects.
Add `Context::cancel_all_tasks()`, currently as a proxy for the same function in `StorageManager`. This allowed removal of the accessor `storage_manager()` in the context C API handle. Remove now-unused `tiledb_ctx_handle_t::make_cancellation_source()`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant