Git Product home page Git Product logo

Comments (3)

murphyjacob4 avatar murphyjacob4 commented on July 21, 2024

Would this be purely quality of life, or would this be like an "atomic reload" where the clients would not see disruption in module commands?

We might get atomic reload for free if we just do the UNLOAD and LOAD synchronously on the main thread. I can see this being useful for operators to upgrade modules without needing to failover, supposing module LOAD and UNLOAD are quick.

from valkey.

madolson avatar madolson commented on July 21, 2024

We might get atomic reload for free if we just do the UNLOAD and LOAD synchronously on the main thread. I can see this being useful for operators to upgrade modules without needing to failover, supposing module LOAD and UNLOAD are quick.

You can do that today with multi + load + unload. Not sure we need a command for that. It's worth mentioning that UNLOAD was basically a QoL feature at the time. I don't know anyone that actually unloads in production. Adding RELOAD does allow one use case, which is allows reloading modules that can't unload (for example, modules that register a type can't be unloaded).

You could potentially also allow state handover. This would allow more efficient upgrades. There was other discussions about setting module private data, which could then be handed over.

from valkey.

artikell avatar artikell commented on July 21, 2024

RELOAD is an interesting idea, but I think it is more difficult to implement. In our production process, a very troublesome point is how to roll the instances of the module.

Due to many restrictions of unload, such as type, usedby, etc., in the production environment, the instances must be restarted to realize the rolling of the module, which will trigger the reload operation of the rdb.

At this stage, a better way is to implement the division of the module according to the function, such as the API module and the Data module. At this time, we can achieve the RELOAD capability by cutting the flow + UNLOAD + LOAD operation.

So, maybe what we need more is the best practice of how to design a Module, rather than a RELOAD method?

from valkey.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.