Is your feature request related to a problem? Please describe.
Right now API Server's HTTP component and metadata service broadcast a signal over conditional variable to inform the gRPC side to take actions.
Because the conditional variable does not have context, gRPC side need to blindly examine all three tables in SQLite, which 1) forces unnecessary complexity, also 2) makes the code harder to read, constantly increases the difficulty of making new changes.
Describe the solution you'd like
Create a channel with a common data structure, but having different types of operations.
With a type information, and a union of actual data needed for perform the action.
Are you on Kubernetes, if so, what version
N/A
Kernel version
N/A
Describe alternatives you've considered
Use Golang data structured with locks and share the locked data structure between different components.
Considering discoupling the process and code design, between the http serving and grpc request in tricorder api server, it's better to leverage a task queue.
Is your feature request related to a problem? Please describe. Right now API Server's HTTP component and metadata service broadcast a signal over conditional variable to inform the gRPC side to take actions.
Because the conditional variable does not have context, gRPC side need to blindly examine all three tables in SQLite, which 1) forces unnecessary complexity, also 2) makes the code harder to read, constantly increases the difficulty of making new changes.
Describe the solution you'd like Create a channel with a common data structure, but having different types of operations. With a type information, and a union of actual data needed for perform the action.
Are you on Kubernetes, if so, what version N/A
Kernel version N/A
Describe alternatives you've considered Use Golang data structured with locks and share the locked data structure between different components.
Additional context N/A