k-choices: manage v-servers #34

Closed
opened 2020-06-03 00:17:50 +02:00 by schmittlauch · 2 comments
Owner

Handle multiple (virtual) nodes per instance, needs refactoring of LocalNodeState.

Handle multiple (virtual) nodes per instance, needs refactoring of `LocalNodeState`.
schmittlauch added this to the k-choices load balancing milestone 2020-06-03 00:17:50 +02:00
schmittlauch added the
advanced features
refactoring
labels 2020-06-03 00:17:50 +02:00
schmittlauch added the
DHT
label 2020-06-03 00:19:58 +02:00
Author
Owner

Update: LocalNodeState can stay mostly unmodified, but RealNode manages links to all vservers (as an IntMap???)

  • at least 1 vserver active: if load targat == 0.00, then choose the lowest possible node
  • at start, sample possible nodes before joining
  • dispatch incoming requests/ responses to affect the correct node
Update: `LocalNodeState` can stay mostly unmodified, but `RealNode` manages links to all vservers (as an IntMap???) - at least 1 vserver active: if load targat == 0.00, then choose the lowest possible node - at start, sample possible nodes before joining - dispatch incoming requests/ responses to affect the correct node
Author
Owner

data structure refactoring

  • vservers are a map from node ID to LocalNodeStateSTM
  • move node cache to RealNode level to share it between vservers
  • first initialise the RealNode, then do a k-choices sampling before allocating VSes
    • intermediate step: still join exactly 1 vserver without sampling
  • make joinOnNewEntriesThread invoke k-choices fetch
  • dispatch incoming requests to correct VSes
  • decide which periodic background tasks need their own threads and which don't
### data structure refactoring - [x] vservers are a map from node ID to LocalNodeStateSTM - [x] move node cache to RealNode level to share it between vservers - [x] first initialise the RealNode, then do a k-choices sampling before allocating VSes - intermediate step: still join exactly 1 vserver without sampling - [x] make `joinOnNewEntriesThread` invoke k-choices fetch - [x] dispatch incoming requests to correct VSes - [x] decide which periodic background tasks need their own threads and which don't
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: schmittlauch/Hash2Pub#34
No description provided.