Skip to content
Snippets Groups Projects
  • Yaroslav Dynnikov's avatar
    955aa02e
    feature: topology module · 955aa02e
    Yaroslav Dynnikov authored
    It encapsulates the logics of a JoinRequest batch processing.
    
    Topology module will be quite important in picodata. This first version
    misses a lot of features, but a few commits later it's going to
    implement quite a lot of logics.
    
    When a new instance is joined - there's one complex thing: raft leader
    has to decide where this new instance is going to be emplaced, i.e. what
    replicaset should it join. There're many different parameters have an
    influence - `repliction_factor`, `failure-domain`, and of course the
    existing topology. So, this new `topology` module must make the decision.
    
    This patch only refactors the current Picodata behavior, and doesn't
    bring new features for its users. Instead, it opens the door to a future
    development.
    
    Also, this patch provides a unit-testing basis for the future features.
    Verified
    955aa02e
    History
    feature: topology module
    Yaroslav Dynnikov authored
    It encapsulates the logics of a JoinRequest batch processing.
    
    Topology module will be quite important in picodata. This first version
    misses a lot of features, but a few commits later it's going to
    implement quite a lot of logics.
    
    When a new instance is joined - there's one complex thing: raft leader
    has to decide where this new instance is going to be emplaced, i.e. what
    replicaset should it join. There're many different parameters have an
    influence - `repliction_factor`, `failure-domain`, and of course the
    existing topology. So, this new `topology` module must make the decision.
    
    This patch only refactors the current Picodata behavior, and doesn't
    bring new features for its users. Instead, it opens the door to a future
    development.
    
    Also, this patch provides a unit-testing basis for the future features.
This project manages its dependencies using Cargo. Learn more