From 82a5d047db72d3f68a5867a0f719366d0f3cc563 Mon Sep 17 00:00:00 2001 From: Ram Srivatsa Kannan Date: Fri, 22 Mar 2024 15:41:38 -0700 Subject: [PATCH] Revert "Merge pull request #87 from Netflix-Skunkworks/ramsrivatsak/default-disk-size" --- .../models/org/netflix/cassandra.py | 7 +-- tests/netflix/test_cassandra.py | 50 +------------------ tests/netflix/test_cassandra_uncertain.py | 3 +- tests/netflix/test_key_value.py | 2 +- tests/netflix/test_time_series.py | 2 +- 5 files changed, 5 insertions(+), 59 deletions(-) diff --git a/service_capacity_modeling/models/org/netflix/cassandra.py b/service_capacity_modeling/models/org/netflix/cassandra.py index d3dd6e8..4661445 100644 --- a/service_capacity_modeling/models/org/netflix/cassandra.py +++ b/service_capacity_modeling/models/org/netflix/cassandra.py @@ -314,12 +314,7 @@ def _estimate_cassandra_cluster_zonal( ), # C* requires ephemeral disks to be 25% full because compaction # and replacement time if we're underscaled. - required_disk_space=lambda x: x * 2 - if instance.drive is None - or "local" in instance.drive.drive_type.name - or required_cluster_size is None - or (x / required_cluster_size) < 1000 - else x + (1000 * required_cluster_size), + required_disk_space=lambda x: x * 4, # C* clusters cannot recover data from neighbors quickly so we # want to avoid clusters with more than 1 TiB of local state max_local_disk_gib=max_local_disk_gib, diff --git a/tests/netflix/test_cassandra.py b/tests/netflix/test_cassandra.py index a781a00..ba20089 100644 --- a/tests/netflix/test_cassandra.py +++ b/tests/netflix/test_cassandra.py @@ -199,7 +199,7 @@ def test_high_write_throughput(): assert ( 300_000 > high_writes_result.count * high_writes_result.attached_drives[0].size_gib - >= 70_000 + >= 100_000 ) cluster_cost = cap_plan.candidate_clusters.annual_costs["cassandra.zonal-clusters"] @@ -353,51 +353,3 @@ def test_plan_certain(): lr_clusters = cap_plan[0].candidate_clusters.zonal[0] assert lr_clusters.count == 8 assert lr_clusters.instance.cpu == 16 - - -def test_plan_certain_disk_space(): - """ - Disk space is adjusted based on EBS and ephemeral. Takes lesser vCPUs. Correct - adjustment of disk space attributes to lower node density and hence provides - lower vCPUs. - """ - cluster_capacity = CurrentClusterCapacity( - cluster_instance_name="i4i.8xlarge", - cluster_instance_count=Interval(low=32, mid=32, high=32, confidence=1), - cpu_utilization=Interval(low=2.96, mid=4.36, high=7.47, confidence=1), - ) - - worn_desire = CapacityDesires( - service_tier=1, - current_clusters=CurrentClusters(zonal=[cluster_capacity]), - query_pattern=QueryPattern( - access_pattern=AccessPattern(AccessPattern.latency), - estimated_read_per_second=Interval( - low=583, mid=933, high=2790, confidence=0.98 - ), - estimated_write_per_second=Interval( - low=11310, mid=16491, high=20501, confidence=0.98 - ), - ), - data_shape=DataShape( - estimated_state_size_gib=Interval( - low=71734.83, mid=72232.16, high=72385.33, confidence=0.98 - ), - estimated_compression_ratio=Interval(low=1, mid=1, high=1, confidence=1), - ), - ) - cap_plan = planner.plan_certain( - model_name="org.netflix.cassandra", - region="us-east-1", - num_results=3, - num_regions=4, - desires=worn_desire, - extra_model_arguments={ - "current_asg_size": 3, - "max_disk_used_gib": 2520.8339739371695, - "max_local_disk_gib": 16384, - "required_cluster_size": 32, - }, - ) - lr_clusters = cap_plan[0].candidate_clusters.zonal[0] - assert lr_clusters.instance.cpu < 32 diff --git a/tests/netflix/test_cassandra_uncertain.py b/tests/netflix/test_cassandra_uncertain.py index a258675..d7c4e1b 100644 --- a/tests/netflix/test_cassandra_uncertain.py +++ b/tests/netflix/test_cassandra_uncertain.py @@ -101,7 +101,7 @@ def test_increasing_qps_simple(): if lr.instance.drive is None: assert sum(dr.size_gib for dr in lr.attached_drives) >= 100 else: - assert lr.instance.drive.size_gib >= 60 + assert lr.instance.drive.size_gib >= 100 result.append( (lr_family, lr_cpu, lr_cost, cap_plan.least_regret[0].requirements.zonal[0]) @@ -147,7 +147,6 @@ def test_worn_dataset(): extra_model_arguments={ "max_regional_size": 200, "copies_per_region": 2, - "require_attached_disks": True, }, ) diff --git a/tests/netflix/test_key_value.py b/tests/netflix/test_key_value.py index c23f188..33fcfa4 100644 --- a/tests/netflix/test_key_value.py +++ b/tests/netflix/test_key_value.py @@ -53,7 +53,7 @@ def test_kv_increasing_qps_simple(): if zlr.instance.drive is None: assert sum(dr.size_gib for dr in zlr.attached_drives) >= 100 else: - assert zlr.instance.drive.size_gib >= 60 + assert zlr.instance.drive.size_gib >= 100 zonal_result.append( ( diff --git a/tests/netflix/test_time_series.py b/tests/netflix/test_time_series.py index 8e226c3..a3df787 100644 --- a/tests/netflix/test_time_series.py +++ b/tests/netflix/test_time_series.py @@ -108,7 +108,7 @@ def test_timeseries_increasing_qps_simple(): if zlr.instance.drive is None: assert sum(dr.size_gib for dr in zlr.attached_drives) >= 100 else: - assert zlr.instance.drive.size_gib >= 60 + assert zlr.instance.drive.size_gib >= 100 zonal_result.append( (