knix-microfunctions / knix

Serverless computing platform with process-based lightweight function execution and container-based application isolation. Works in Knative and bare metal/VM environments.

Home Page:https://knix.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

riak and DLService scaling

iakkus opened this issue · comments

Currently, the riak and DLService components cannot scale automatically due to their static configuration: when the DLService is started, it is passed the riak nodes as well as other DLService nodes as a parameter. However, these values are never updated after the components start. As a result, scaling up the services (e.g., add another riak replica, add another DLService node) does not update already started components.

We should make the DLService update its view of the available riak nodes dynamically during runtime. When a riak node is added to or removed from the platform, this should be reflected on the DLService node's view.

Similarly, DLService should also learn whether other DLService nodes are added or removed at runtime. With the new design for caching (#10), this might not be necessary.

Also, check out @manuelstein's comments on the PR #74.

I am not sure whether we should actually spend the effort on making the DLService scale as such. We might end up putting it into the sandbox, depending on the outcome of the Redis caching related issue #10.

But now that I think about it, perhaps it's good to have a mechanism that will update the view of the available riak nodes, regardless where that mechanism runs (e.g., in the sandbox, on the node).