Skip to content

Commit

Permalink
Fix typecasting and adjust disk io
Browse files Browse the repository at this point in the history
  • Loading branch information
akashdeepgoel committed May 29, 2024
1 parent 6203f1a commit 73c85e6
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
16 changes: 9 additions & 7 deletions service_capacity_modeling/models/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -229,8 +229,8 @@ def compute_stateful_zone(
# Some stateful clusters have preferences on per zone sizing
cluster_size: Callable[[int], int] = lambda x: x,
min_count: int = 0,
adjusted_disk_io_needed: Optional[float] = 0.0,
read_write_ratio: Optional[float] = 0.0
adjusted_disk_io_needed: float = 0.0,
read_write_ratio: float = 0.0
) -> ZoneClusterCapacity:

# Normalize the cores of this instance type to the latency reference
Expand Down Expand Up @@ -273,11 +273,13 @@ def compute_stateful_zone(
disk_per_node = min(max_local_disk_gib, instance.drive.size_gib)
count = max(count, math.ceil(needed_disk_gib / disk_per_node))
if adjusted_disk_io_needed != 0.0:
instance_read_iops = drive.read_io_per_s
instance_write_iops = drive.write_io_per_s
instance_adjusted_io = (read_write_ratio * instance_read_iops + \
(1.0 - read_write_ratio) * instance_write_iops) * \
drive.block_size_kib * 1024.0
instance_read_iops = instance.drive.read_io_per_s if instance.drive.read_io_per_s != None else 0
assert (isinstance(instance_read_iops, int))
instance_write_iops = instance.drive.write_io_per_s if instance.drive.write_io_per_s != None else 0
assert (isinstance(instance_write_iops, int))
instance_adjusted_io = (read_write_ratio * float(instance_read_iops) + \
(1.0 - read_write_ratio) * float(instance_write_iops)) * \
instance.drive.block_size_kib * 1024.0
if instance_adjusted_io != 0.0:
count = max(count, math.ceil(adjusted_disk_io_needed / instance_adjusted_io))

Expand Down
3 changes: 1 addition & 2 deletions service_capacity_modeling/models/org/netflix/evcache.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,8 +242,7 @@ def reserve_memory(instance_mem_gib):
write_size = desires.query_pattern.estimated_mean_write_size_bytes.mid
read_disk_io_needed = reads_per_sec * read_size
write_disk_io_needed = writes_per_sec * write_size
adjusted_disk_io_needed = (reads_per_sec * read_disk_io_needed + writes_per_sec * write_disk_io_needed) / \
(reads_per_sec + writes_per_sec)
adjusted_disk_io_needed = read_disk_io_needed + write_disk_io_needed
read_write_ratio = reads_per_sec / (reads_per_sec + writes_per_sec)

cluster = compute_stateful_zone(
Expand Down

0 comments on commit 73c85e6

Please sign in to comment.