-
Notifications
You must be signed in to change notification settings - Fork 66
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
A grpc kernel that stores everything in a remote grpc kernel service #148
Comments
Will the binary be part of |
Yes, of course. I hate to operate a bunch of different binaries too. |
This can be started after #167 |
I am interested in this job, I need some time to learn the details first, and the give my design. |
@PatrickNicholas Thanks for your interest. It sounds good to me. The job may not be easy, so let me make it more clear:
This can be done in one or two PRs. Note that this job is included in v0.2, and we aim to release that on Dec 17. So please let me know if you meet any problems. And I may take over if there is no progress until Dec 11. |
@huachaohuang Thanks. |
It is sad that this issue was automatically closed, due to the closing keywords set in previous PR. Shall I reopen it? |
@PatrickNicholas aha. I think the next time you can use |
This closes engula#148.
I think it's more meaningful to allow users to start independent kernel/journal/storage servers and connect them together even for v0.2. The kernel/journal/storage services are already landed, so I think we can deliver such kind of flexibility in v0.2. For example, we can support the following commands:
Ref #177, @PatrickNicholas what do you think? /cc @tisonkun I saw your #177 (comment), is this the way you expect? |
In this way, each server is independent, so do we still need to support standalone server, eg: a grpc kernel but with mem journal and mem storage. |
I think a standalone server is not necessary then. Just let users do whatever they want. |
@huachaohuang Yes. This CLI design looks reasonable. @PatrickNicholas for composition topics, we should discuss with a deployment photo to make things clear. "A grpc kernel" data structure is different from "a kernel server". I think if a pod runs a kernel server, generally it doesn't run a memory journal colocated. |
Yes. We prodvides basic blocks, and a standalone server launching script can be a upper-level script, possibly not bundled by the release. |
Ok, I am glad to add a binary to start journal & storage server too. So #177 have to be delayed until I submit PRs to support both journal & storage server ctl. |
@PatrickNicholas Great, I will add a file kernel once #185 is merged. And I may update the local kernel a little bit. We may have some little conflicts here. So you can prepare for the binary beforehand or wait until I finish other stuff. |
I will add storage server first, then add journal server once #185 is merged, so we should be able to do it in parallel. |
@PatrickNicholas My job is done here. It's your turn now :) |
@huachaohuang Like Journal and Storage, Kernel may be Mem or File. At the same time, Kernel can also connect to Journal Server and Storage Server. In this case, which type the Manifest should be, Mem or File? |
How about
Not sure if it is too complicated than necessary. |
It's very complicated, that means we have to define types:
Maybe we should use dynamic dispatching rather than generic... |
Oh, I see. Seems these compositions don't play well together. Maybe dynamic dispatching for non-performance-critical types is reasonable. But let's try to work around it for v0.2. I think we only need the following to implement the said commands?
|
@huachaohuang There is still a problem. A grpc client of |
@PatrickNicholas Let's keep it simple for v0.2. We can add RPCs to the kernel service to get stream/bucket locations. The kernel service simply returns the journal/storage service address and then the kernel client can talk to the journal/storage service to read/write stream/bucket directly. |
This closes engula#148.
This closes engula#148.
A grpc kernel integrates a grpc journal, storage, etc. It consists of a client and a server part. We need to provide a binary to start the kernel server.
The text was updated successfully, but these errors were encountered: