service-capacity-modeling 0.3.48__tar.gz → 0.3.49__tar.gz

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.
Files changed (95) hide show
  1. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/PKG-INFO +1 -1
  2. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/common.py +6 -0
  3. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/kafka.py +2 -0
  4. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling.egg-info/PKG-INFO +1 -1
  5. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/LICENSE +0 -0
  6. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/README.md +0 -0
  7. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/__init__.py +0 -0
  8. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/capacity_planner.py +0 -0
  9. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/__init__.py +0 -0
  10. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/__init__.py +0 -0
  11. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/pricing/aws/3yr-reserved_ec2.json +0 -0
  12. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/pricing/aws/3yr-reserved_zz-overrides.json +0 -0
  13. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/profiles.txt +0 -0
  14. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5.json +0 -0
  15. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5a.json +0 -0
  16. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5d.json +0 -0
  17. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5n.json +0 -0
  18. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6a.json +0 -0
  19. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6i.json +0 -0
  20. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6id.json +0 -0
  21. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7a.json +0 -0
  22. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7i.json +0 -0
  23. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m4.json +0 -0
  24. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5.json +0 -0
  25. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5n.json +0 -0
  26. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6a.json +0 -0
  27. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6i.json +0 -0
  28. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6id.json +0 -0
  29. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6idn.json +0 -0
  30. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6in.json +0 -0
  31. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m7a.json +0 -0
  32. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m7i.json +0 -0
  33. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r4.json +0 -0
  34. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r5.json +0 -0
  35. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r5n.json +0 -0
  36. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6a.json +0 -0
  37. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6i.json +0 -0
  38. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6id.json +0 -0
  39. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6idn.json +0 -0
  40. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6in.json +0 -0
  41. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r7a.json +0 -0
  42. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r7i.json +0 -0
  43. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_drives.json +0 -0
  44. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_instances.json +0 -0
  45. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_services.json +0 -0
  46. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/interface.py +0 -0
  47. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/__init__.py +0 -0
  48. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/headroom_strategy.py +0 -0
  49. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/__init__.py +0 -0
  50. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/__init__.py +0 -0
  51. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/aurora.py +0 -0
  52. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/cassandra.py +0 -0
  53. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/counter.py +0 -0
  54. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/crdb.py +0 -0
  55. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/ddb.py +0 -0
  56. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/elasticsearch.py +0 -0
  57. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/entity.py +0 -0
  58. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/evcache.py +0 -0
  59. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/graphkv.py +0 -0
  60. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/iso_date_math.py +0 -0
  61. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/key_value.py +0 -0
  62. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/postgres.py +0 -0
  63. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/rds.py +0 -0
  64. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/stateless_java.py +0 -0
  65. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/time_series.py +0 -0
  66. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/time_series_config.py +0 -0
  67. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/wal.py +0 -0
  68. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/org/netflix/zookeeper.py +0 -0
  69. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/models/utils.py +0 -0
  70. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/stats.py +0 -0
  71. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/tools/__init__.py +0 -0
  72. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/tools/auto_shape.py +0 -0
  73. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/tools/fetch_pricing.py +0 -0
  74. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/tools/generate_missing.py +0 -0
  75. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling/tools/instance_families.py +0 -0
  76. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling.egg-info/SOURCES.txt +0 -0
  77. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling.egg-info/dependency_links.txt +0 -0
  78. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling.egg-info/entry_points.txt +0 -0
  79. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling.egg-info/requires.txt +0 -0
  80. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/service_capacity_modeling.egg-info/top_level.txt +0 -0
  81. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/setup.cfg +0 -0
  82. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/setup.py +0 -0
  83. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_arguments.py +0 -0
  84. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_buffers.py +0 -0
  85. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_common.py +0 -0
  86. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_desire_merge.py +0 -0
  87. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_generate_scenarios.py +0 -0
  88. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_hardware.py +0 -0
  89. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_hardware_shapes.py +0 -0
  90. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_headroom_strategy.py +0 -0
  91. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_io2.py +0 -0
  92. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_model_dump.py +0 -0
  93. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_reproducible.py +0 -0
  94. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_simulation.py +0 -0
  95. {service_capacity_modeling-0.3.48 → service_capacity_modeling-0.3.49}/tests/test_working_set.py +0 -0
@@ -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
@@ -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