You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
149892: asim: port over more asim changes from prototype r=tbg a=wenyihu6
**asim: correct data driven input command for example_fullfisk**
Previously, we started tracking logical bytes from follower replicas, which
increased the used store capacity. Since gen_cluster defaults to a 256 GiB
store_byte_capacity, this was no longer sufficient and resulted in a fraction
used over 100%. This commit updates the data driven input to match the current
prototype input.
Epic: none
Release note: none
---
**kvserver: track write bytes per sec properly**
Previously, we introduced write bytes per second as part of the store
descriptor's capacity. This commit updates the corresponding capacity tracking
logic in the production code properly, along with the gossip logic that handles
capacity change events. Note that the actual capacity info is not yet used by any
production logic in a meaningful way.
Epic: none
Release note: none
---
**asim: fix inconsistent range state**
Previously, capacity change events could be published while a range was still in
an inconsistent state (such as, after the leaseholder was removed but before a
new one was added). Without this fix, future commits that populate the node
capacity provider would trigger a panic: node capacity calls RangeUsageInfo to
aggregate CPU rate across replicas, which asserts on the range having a valid
leaseholder. In this inconsistent state, the leaseholder can't be found, leading
to a panic.
Epic: none
Release note: none
---
**asim: introduce NodeCapacityProvider**
Previously, we added state.NodeCapacity but didn’t implement the logic to
retrieve actual node capacity. This commit introduces a NodeCapacityProvider
interface, implemented by the asim’s state and Stores in production code.
Node capacity provider is saved as a field in StoreGossip. It will later be used
to populate node capacity of store descriptor before gossiping. Note that node
capacity provider remains nil in production to avoid changing existing behavior.
Epic: none
Release note: none
---
**asim: move store pool to be at the node level**
Previously, asim created a separate store pool per store, unlike production
code, which shares a single store pool among stores on the same node. This
commit updates asim to align with the behaviour.
Epic: none
Release note: none
---
**asim: introduce MMAllocator at node level**
This commit introduces construction of MMAllocator at the node level. Note that
the old allocator is still kept around at the store level since only MMA store
rebalancer would use MMAAllocator.
Epic: none
Release note: none
---
**asim: remove unused storepool field from store**
Previously, we moved the store pool from the store level to the node level and
removed the usage of store pool from the store. This commit cleans up the
now unused storePool field.
Epic: none
Release note: none
---
**asim: use cluster setting for some non-simulation settings**
Previously, we began populating cluster settings in the simulator to allow
direct use of non-simulation settings. This commit updates LoadThreshold,
kvserver.LBRebalancingObjective, and allocatorimpl.LoadRebalanceRequiredMinDiff
to use values from the populated cluster settings directly.
Epic: none
Release note: none
---
**asim: panic if ticket not found in store rebalancer**
This commit adds a panic assertion to ensure pending ticket exists in store
rebalancer asim since asim should not delete a ticket from controller.tickets.
Epic: none
Relese note: none
Co-authored-by: wenyihu6 <[email protected]>
0 commit comments