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

Roadmap v0.2 - Background #66

Closed
7 tasks
huachaohuang opened this issue Nov 3, 2021 · 9 comments
Closed
7 tasks

Roadmap v0.2 - Background #66

huachaohuang opened this issue Nov 3, 2021 · 9 comments
Milestone

Comments

@huachaohuang
Copy link
Contributor

huachaohuang commented Nov 3, 2021

Tasks:

  • Design document
  • Background traits
  • A local background implementation
  • A remote background implementation
    • Background client
    • Background service
  • Integrate the background service with microunit
@huachaohuang huachaohuang mentioned this issue Nov 3, 2021
10 tasks
@huachaohuang huachaohuang changed the title Background Engula v0.2 - kernel/background Nov 3, 2021
@huachaohuang huachaohuang changed the title Engula v0.2 - kernel/background Roadmap v0.2 - Background Nov 9, 2021
@huachaohuang huachaohuang added this to the Version 0.2 milestone Dec 1, 2021
@huachaohuang
Copy link
Contributor Author

Background is still a dark corner for v0.2. I will try to solve it after we get other things done.

@tisonkun
Copy link
Contributor

tisonkun commented Dec 7, 2021

@huachaohuang we should first decide what's delivered in v0.2. Basically, I can imagine that this module is used for compaction. But full-featured compaction cannot be finished in such an early version IMO.

@sticnarf & @you06 may be interested in manipulating background tasks according to their experiences from yatp. But the functionality/requirement is still unclear.

@huachaohuang
Copy link
Contributor Author

We only need to implement a simple compaction strategy in the hash engine for v0.2. But the hard part is not about compaction. It's about the abstraction to run background jobs. Depending on the environment, a background job may mean a user function, an external command, or a docker image. So it is not very clear what abstraction Kernel should provide to Engine to cover all these use cases.

@huachaohuang
Copy link
Contributor Author

I think I am wrong about Background. It is not a part of Kernel, it is a part of Engine. Background is also a user of Kernel. For example, a compaction job running in Background needs to access Kernel to update metadata.

@huachaohuang
Copy link
Contributor Author

Every engine defines its own set of background jobs. Background simply helps to run those jobs.

@tisonkun
Copy link
Contributor

tisonkun commented Dec 9, 2021

@huachaohuang we may review the definition of Kernel now or later. It seems that so far the kernel goes into a situation where the previous manifest stands.

@huachaohuang
Copy link
Contributor Author

I am also considering renaming Background to Jobpool or Taskpool or something, Background doesn't seem like a good name.
@tisonkun I think the Kernel definition is fine so far, it handles all the stateful operations. Specifically, Kernel manages the underlying Journal, Storage, and Manifest. Although some code doesn't play nicely for now. But I will fix that too.

@huachaohuang
Copy link
Contributor Author

I am considering dropping this in v0.2 too. Engual 0.2 simply showcases how an engine can be used. Users don't need to know about these background jobs anyway.

@tisonkun
Copy link
Contributor

Agree.

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

No branches or pull requests

2 participants