-
Notifications
You must be signed in to change notification settings - Fork 9
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
Distributed mode phase 1 #98
Conversation
this returns http status 404 to me. |
@rsw-a hmm, could you check this one? https://github.com/iandyh/shibuya/actions/runs/7137516355/job/19437626599 |
yep, it works! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@iandyh
I've reviewed all changes. please check my comments.
one another question based on RFP, you've illustrated that shibuya release will be done by jenkins-aas pipeline based on helm introduced based on these changes. however, I was not able to see any details from ghe repos (shibuya-ci). is there any new changes for that? or you plan to do that at next phase?
shibuya/controller/cmd/main.go
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've thought there would be no data integrity issues caused by race condition based on this separation, tho. coz all processing is about to wipe out unnecessary resources. do you have any concerns in terms of multi-threaded processing on the controller?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm, that depends on how to define mutli-threaded support.
If we look at the whole system(controller, api, etc), I don't have concern as this will be the same as before just process/threads are running either as a whole(multi-thread) or separately(multi process). The underlying logic does not change.
If we look at just the controller, it should not have multiple threads/process because essentially it's just a checker with a forever loop and getting the states from either the DB or a k8s cluster. If we have another checker(by using multi-threading), we need to implementing something like worker queue to split the work, which right now it does not exist. So having another checker will essentially doing the same work and it could be problematic so we should avoid that.
In terms of the scalability of the controller, I don't have great concern for it for now because I expect it to be a light weight component(most of its time is likely spending on IO operations anyway)
Hopefully I answered your questions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
understood. and i'm 80% sure what you've described above. but not 100%. so, it's better to visualize all operations which controller and api have provided (especially goroutines). otherwise it's a bit difficult to see entire picture. I'm about to do that on the confluence page, tho. it's a bit time-consuming and will take some time until illustrating everything. I'll make a review request to you piece by piece.
0938de9
to
1d17ce2
Compare
@rsw-a I've either resolved the comment or replied to your comment. Please check. Thx. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good to me.
NOTE: however, shibuya doesn't work at local env (macOS arm64 m1pro chip). because some components don't take arm64 architecture into account. (e.g., mariadb container image, build.sh)
it works over ubuntu VM after fixing those issues. anyway, we can address those issues later.
@rsw-a yes. I think I am a fix in my local branch and I’ll send it out later. |
This implements the issue described here: #19
In particular, this PR focuses on two main points mentioned here: #19 (comment)
We essentially split the monolith into two: api and controller.
helm pull xxx
to get the install charts.The GitHub Action build can be seen here: https://github.com/iandyh/shibuya/actions/runs/7137516355/job/1943762659