Skip to content

Commit

Permalink
Fix indendation
Browse files Browse the repository at this point in the history
  • Loading branch information
akashdeepgoel committed Jun 3, 2024
1 parent 065069a commit 5734f51
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 13 deletions.
36 changes: 25 additions & 11 deletions service_capacity_modeling/models/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ def compute_stateless_region(


# pylint: disable=too-many-locals
# pylint: disable=too-many-statements
def compute_stateful_zone(
instance: Instance,
drive: Drive,
Expand Down Expand Up @@ -230,9 +231,8 @@ def compute_stateful_zone(
cluster_size: Callable[[int], int] = lambda x: x,
min_count: int = 0,
adjusted_disk_io_needed: float = 0.0,
read_write_ratio: float = 0.0
read_write_ratio: float = 0.0,
) -> ZoneClusterCapacity:

# Normalize the cores of this instance type to the latency reference
needed_cores = math.ceil(
max(1, needed_cores // (instance.cpu_ghz / core_reference_ghz))
Expand Down Expand Up @@ -273,16 +273,30 @@ 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 = 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
instance_read_iops = (
instance.drive.read_io_per_s
if instance.drive.read_io_per_s is not 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 is not 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))

count = max(
count, math.ceil(adjusted_disk_io_needed / instance_adjusted_io)
)

count = max(cluster_size(count), min_count)
cost = count * instance.annual_cost
Expand Down
6 changes: 4 additions & 2 deletions service_capacity_modeling/models/org/netflix/evcache.py
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,8 @@ def reserve_memory(instance_mem_gib):
read_disk_io_needed = reads_per_sec * read_size
write_disk_io_needed = writes_per_sec * write_size
adjusted_disk_io_needed = read_disk_io_needed + write_disk_io_needed
# Giving headroom for cachewarming and region squeeze
adjusted_disk_io_needed = 1.4 * adjusted_disk_io_needed
read_write_ratio = reads_per_sec / (reads_per_sec + writes_per_sec)

cluster = compute_stateful_zone(
Expand All @@ -261,8 +263,8 @@ def reserve_memory(instance_mem_gib):
# Sidecars and Variable OS Memory
reserve_memory=lambda x: base_mem,
core_reference_ghz=requirement.core_reference_ghz,
adjusted_disk_io_needed = adjusted_disk_io_needed,
read_write_ratio = read_write_ratio
adjusted_disk_io_needed=adjusted_disk_io_needed,
read_write_ratio=read_write_ratio,
)
# Communicate to the actual provision that if we want reduced RF
params = {"evcache.copies": copies_per_region}
Expand Down

0 comments on commit 5734f51

Please sign in to comment.