service-capacity-modeling 0.3.48__py3-none-any.whl → 0.3.49__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of service-capacity-modeling might be problematic. Click here for more details.

@@ -374,6 +374,9 @@ def compute_stateful_zone( # pylint: disable=too-many-positional-arguments
374
374
  min_count: int = 0,
375
375
  adjusted_disk_io_needed: float = 0.0,
376
376
  read_write_ratio: float = 0.0,
377
+ # Max attached EBS volume size per node. Higher value here could allow
378
+ # for a lower instance count (allows more vertical scaling vs forcing horizontal)
379
+ max_attached_disk_gib: Optional[float] = None,
377
380
  ) -> ZoneClusterCapacity:
378
381
  # Datastores often require disk headroom for e.g. compaction and such
379
382
  if instance.drive is not None:
@@ -461,6 +464,9 @@ def compute_stateful_zone( # pylint: disable=too-many-positional-arguments
461
464
  # 1/3 the maximum volume size in one node (preferring more nodes
462
465
  # with smaller volumes)
463
466
  max_size = drive.max_size_gib / 3
467
+ if max_attached_disk_gib is not None:
468
+ max_size = max_attached_disk_gib
469
+
464
470
  if ebs_gib > max_size > 0:
465
471
  ratio = ebs_gib / max_size
466
472
  count = max(cluster_size(math.ceil(count * ratio)), min_count)
@@ -337,6 +337,8 @@ def _estimate_kafka_cluster_zonal( # pylint: disable=too-many-positional-argume
337
337
  # Sidecars and Variable OS Memory
338
338
  # Kafka currently uses 8GiB fixed, might want to change to min(30, x // 2)
339
339
  reserve_memory=lambda instance_mem_gib: base_mem + 8,
340
+ # allow up to 8TiB of attached EBS
341
+ max_attached_disk_gib=8 * 1024,
340
342
  )
341
343
 
342
344
  # Communicate to the actual provision that if we want reduced RF
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: service-capacity-modeling
3
- Version: 0.3.48
3
+ Version: 0.3.49
4
4
  Summary: Contains utilities for modeling capacity for pluggable workloads
5
5
  Author: Joseph Lynch
6
6
  Author-email: josephl@netflix.com
@@ -40,7 +40,7 @@ service_capacity_modeling/hardware/profiles/shapes/aws/manual_drives.json,sha256
40
40
  service_capacity_modeling/hardware/profiles/shapes/aws/manual_instances.json,sha256=i611n6d7hsjd7L8aSEDzfaTMS2jVs-Jc38-vl-NKfs4,18013
41
41
  service_capacity_modeling/hardware/profiles/shapes/aws/manual_services.json,sha256=h63675KKmu5IrI3BORDN8fiAqLjAyYHArErKbC7-T30,776
42
42
  service_capacity_modeling/models/__init__.py,sha256=XK7rTBW8ZXQY5L9Uy2FwjuFN_KBW3hKw7IrhG1piajs,13567
43
- service_capacity_modeling/models/common.py,sha256=MkiR8P1aXKRFeouFfN31PsGhmdS_cK-LSh7M6_7cDy4,33063
43
+ service_capacity_modeling/models/common.py,sha256=J7fnGYM3F9KouTZmX60oA5hFdMNe8VthYlPF5w-ZpRI,33367
44
44
  service_capacity_modeling/models/headroom_strategy.py,sha256=QIkP_K_tK2EGAjloaGfXeAPH5M0UDCN8FlAtwV9xxTA,651
45
45
  service_capacity_modeling/models/utils.py,sha256=Y9xwSzLuGQ7Tn4BCkbdMtR7_fjEQ9PKQ52JlHVtdEtY,1567
46
46
  service_capacity_modeling/models/org/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -55,7 +55,7 @@ service_capacity_modeling/models/org/netflix/entity.py,sha256=M0vzwhf8UAbVxnXspA
55
55
  service_capacity_modeling/models/org/netflix/evcache.py,sha256=Po2U7pxQ5Mdr9ZtIUGdzUL5Dk67l0SZdxF_lZH7fVFQ,25281
56
56
  service_capacity_modeling/models/org/netflix/graphkv.py,sha256=EVRo-1OCDvvotqPgIdP2_JXMfZUsG7KZxRMmlgYc3CI,8558
57
57
  service_capacity_modeling/models/org/netflix/iso_date_math.py,sha256=CPGHLmbGeNqkcYcmCkLKhPZcAU-yTJ2HjvuXdnNyCYc,996
58
- service_capacity_modeling/models/org/netflix/kafka.py,sha256=V8dJjfVD1mLWyWUSGXRYnyY7ACK7Bg4QnaD0ifkG5P8,22662
58
+ service_capacity_modeling/models/org/netflix/kafka.py,sha256=wtvsfKjmKSF5NDCaFRmpwEi9RNYcfAPzoZ2ESgYufqU,22745
59
59
  service_capacity_modeling/models/org/netflix/key_value.py,sha256=yL5moU0SJD4ocBU9zeGhPYE4KY7oSSq5yqfVWd_Ot2g,9336
60
60
  service_capacity_modeling/models/org/netflix/postgres.py,sha256=R3Tog-ZW1Yx6gO3AKqI_wquSm30s01QX9yWR7Jvgk9A,4055
61
61
  service_capacity_modeling/models/org/netflix/rds.py,sha256=z9egFBg4Ltqyuz_WHk-_hw-xL-EQNzl1JopJoWdNli8,10768
@@ -69,9 +69,9 @@ service_capacity_modeling/tools/auto_shape.py,sha256=Rk5Fjrw2susVL8It_J2KUADoMGB
69
69
  service_capacity_modeling/tools/fetch_pricing.py,sha256=SHOtFaPr61op2bnY9i_g_1-d-Nz2rV8c7Jwsye2R49s,3763
70
70
  service_capacity_modeling/tools/generate_missing.py,sha256=WN7Y0iPjelJu9d2Yq5dcu_EBIQPX2VxKgOou4NMNOM4,2860
71
71
  service_capacity_modeling/tools/instance_families.py,sha256=e9JWSIdljSmHI8Nb2MI5Ld9JqQ7WdOtPtV7g3oR7ZiU,7764
72
- service_capacity_modeling-0.3.48.dist-info/licenses/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
73
- service_capacity_modeling-0.3.48.dist-info/METADATA,sha256=LCvgL1zxzHhrYSa82vg6va-PYzDWVWsSKb3U1s_zfqE,9590
74
- service_capacity_modeling-0.3.48.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
75
- service_capacity_modeling-0.3.48.dist-info/entry_points.txt,sha256=ZsjzpG5SomWpT1zCE19n1uSXKH2gTI_yc33sdl0vmJg,146
76
- service_capacity_modeling-0.3.48.dist-info/top_level.txt,sha256=H8XjTCLgR3enHq5t3bIbxt9SeUkUT8HT_SDv2dgIT_A,26
77
- service_capacity_modeling-0.3.48.dist-info/RECORD,,
72
+ service_capacity_modeling-0.3.49.dist-info/licenses/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
73
+ service_capacity_modeling-0.3.49.dist-info/METADATA,sha256=gHePa4OZg72XRXErTRHNUEDXdtCRnhTHBGkxh48X9dQ,9590
74
+ service_capacity_modeling-0.3.49.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
75
+ service_capacity_modeling-0.3.49.dist-info/entry_points.txt,sha256=ZsjzpG5SomWpT1zCE19n1uSXKH2gTI_yc33sdl0vmJg,146
76
+ service_capacity_modeling-0.3.49.dist-info/top_level.txt,sha256=H8XjTCLgR3enHq5t3bIbxt9SeUkUT8HT_SDv2dgIT_A,26
77
+ service_capacity_modeling-0.3.49.dist-info/RECORD,,