service-capacity-modeling 0.3.80__tar.gz → 0.3.82__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 (103) hide show
  1. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/PKG-INFO +1 -1
  2. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/interface.py +3 -0
  3. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/__init__.py +2 -0
  4. service_capacity_modeling-0.3.82/service_capacity_modeling/models/org/netflix/control.py +146 -0
  5. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling.egg-info/PKG-INFO +1 -1
  6. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling.egg-info/SOURCES.txt +1 -0
  7. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/LICENSE +0 -0
  8. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/README.md +0 -0
  9. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/__init__.py +0 -0
  10. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/capacity_planner.py +0 -0
  11. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/__init__.py +0 -0
  12. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/__init__.py +0 -0
  13. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/pricing/aws/3yr-reserved_ec2.json +0 -0
  14. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/pricing/aws/3yr-reserved_zz-overrides.json +0 -0
  15. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/profiles.txt +0 -0
  16. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5.json +0 -0
  17. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5a.json +0 -0
  18. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5d.json +0 -0
  19. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5n.json +0 -0
  20. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6a.json +0 -0
  21. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6i.json +0 -0
  22. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6id.json +0 -0
  23. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7a.json +0 -0
  24. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7i.json +0 -0
  25. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c8i.json +0 -0
  26. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_i3en.json +0 -0
  27. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_i4i.json +0 -0
  28. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_i7i.json +0 -0
  29. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m4.json +0 -0
  30. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5.json +0 -0
  31. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5n.json +0 -0
  32. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6a.json +0 -0
  33. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6i.json +0 -0
  34. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6id.json +0 -0
  35. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6idn.json +0 -0
  36. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6in.json +0 -0
  37. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m7a.json +0 -0
  38. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m7i.json +0 -0
  39. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m8i.json +0 -0
  40. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r4.json +0 -0
  41. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r5.json +0 -0
  42. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r5n.json +0 -0
  43. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6a.json +0 -0
  44. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6i.json +0 -0
  45. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6id.json +0 -0
  46. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6idn.json +0 -0
  47. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6in.json +0 -0
  48. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r7a.json +0 -0
  49. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r7i.json +0 -0
  50. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r8i.json +0 -0
  51. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_drives.json +0 -0
  52. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_instances.json +0 -0
  53. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_services.json +0 -0
  54. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/__init__.py +0 -0
  55. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/common.py +0 -0
  56. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/headroom_strategy.py +0 -0
  57. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/__init__.py +0 -0
  58. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/aurora.py +0 -0
  59. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/cassandra.py +0 -0
  60. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/counter.py +0 -0
  61. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/crdb.py +0 -0
  62. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/ddb.py +0 -0
  63. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/elasticsearch.py +0 -0
  64. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/entity.py +0 -0
  65. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/evcache.py +0 -0
  66. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/graphkv.py +0 -0
  67. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/iso_date_math.py +0 -0
  68. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/kafka.py +0 -0
  69. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/key_value.py +0 -0
  70. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/postgres.py +0 -0
  71. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/rds.py +0 -0
  72. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/stateless_java.py +0 -0
  73. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/time_series.py +0 -0
  74. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/time_series_config.py +0 -0
  75. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/wal.py +0 -0
  76. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/org/netflix/zookeeper.py +0 -0
  77. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/models/utils.py +0 -0
  78. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/stats.py +0 -0
  79. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/tools/__init__.py +0 -0
  80. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/tools/auto_shape.py +0 -0
  81. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/tools/fetch_pricing.py +0 -0
  82. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/tools/generate_missing.py +0 -0
  83. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling/tools/instance_families.py +0 -0
  84. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling.egg-info/dependency_links.txt +0 -0
  85. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling.egg-info/entry_points.txt +0 -0
  86. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling.egg-info/requires.txt +0 -0
  87. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/service_capacity_modeling.egg-info/top_level.txt +0 -0
  88. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/setup.cfg +0 -0
  89. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/setup.py +0 -0
  90. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_arguments.py +0 -0
  91. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_buffers.py +0 -0
  92. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_common.py +0 -0
  93. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_desire_merge.py +0 -0
  94. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_generate_scenarios.py +0 -0
  95. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_hardware.py +0 -0
  96. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_hardware_shapes.py +0 -0
  97. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_headroom_strategy.py +0 -0
  98. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_io2.py +0 -0
  99. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_model_dump.py +0 -0
  100. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_reproducible.py +0 -0
  101. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_simulation.py +0 -0
  102. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/tests/test_utils.py +0 -0
  103. {service_capacity_modeling-0.3.80 → service_capacity_modeling-0.3.82}/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.80
3
+ Version: 0.3.82
4
4
  Summary: Contains utilities for modeling capacity for pluggable workloads
5
5
  Author: Joseph Lynch
6
6
  Author-email: josephl@netflix.com
@@ -833,6 +833,9 @@ class Buffer(ExcludeUnsetModel):
833
833
  components: List[str] = [BufferComponent.compute]
834
834
  # If this buffer was made up of other buffers, what contributed
835
835
  sources: Dict[str, Buffer] = {}
836
+ # An optional breadcrumb / context for why this buffer exists.
837
+ # E.g. "Background processing" or "bursty workload"
838
+ explanation: str = ""
836
839
 
837
840
 
838
841
  class Buffers(ExcludeUnsetModel):
@@ -3,6 +3,7 @@ from typing import Dict
3
3
 
4
4
  from .aurora import nflx_aurora_capacity_model
5
5
  from .cassandra import nflx_cassandra_capacity_model
6
+ from .control import nflx_control_capacity_model
6
7
  from .counter import nflx_counter_capacity_model
7
8
  from .crdb import nflx_cockroachdb_capacity_model
8
9
  from .ddb import nflx_ddb_capacity_model
@@ -38,6 +39,7 @@ def models() -> Dict[str, Any]:
38
39
  "org.netflix.elasticsearch.master": nflx_elasticsearch_master_capacity_model,
39
40
  "org.netflix.elasticsearch.search": nflx_elasticsearch_search_capacity_model,
40
41
  "org.netflix.entity": nflx_entity_capacity_model,
42
+ "org.netflix.control": nflx_control_capacity_model,
41
43
  "org.netflix.cockroachdb": nflx_cockroachdb_capacity_model,
42
44
  "org.netflix.aurora": nflx_aurora_capacity_model,
43
45
  "org.netflix.postgres": nflx_postgres_capacity_model,
@@ -0,0 +1,146 @@
1
+ from typing import Any
2
+ from typing import Callable
3
+ from typing import Dict
4
+ from typing import Optional
5
+ from typing import Tuple
6
+
7
+ from .stateless_java import nflx_java_app_capacity_model
8
+ from service_capacity_modeling.interface import AccessConsistency
9
+ from service_capacity_modeling.interface import AccessPattern
10
+ from service_capacity_modeling.interface import CapacityDesires
11
+ from service_capacity_modeling.interface import CapacityPlan
12
+ from service_capacity_modeling.interface import Consistency
13
+ from service_capacity_modeling.interface import DataShape
14
+ from service_capacity_modeling.interface import Drive
15
+ from service_capacity_modeling.interface import FixedInterval
16
+ from service_capacity_modeling.interface import GlobalConsistency
17
+ from service_capacity_modeling.interface import Instance
18
+ from service_capacity_modeling.interface import Interval
19
+ from service_capacity_modeling.interface import QueryPattern
20
+ from service_capacity_modeling.interface import RegionContext
21
+ from service_capacity_modeling.models import CapacityModel
22
+ from service_capacity_modeling.interface import certain_int
23
+
24
+
25
+ class NflxControlCapacityModel(CapacityModel):
26
+ @staticmethod
27
+ def capacity_plan(
28
+ instance: Instance,
29
+ drive: Drive,
30
+ context: RegionContext,
31
+ desires: CapacityDesires,
32
+ extra_model_arguments: Dict[str, Any],
33
+ ) -> Optional[CapacityPlan]:
34
+ # Control wants 20GiB root volumes
35
+ extra_model_arguments.setdefault("root_disk_gib", 20)
36
+
37
+ # Ensure Java app has enough memory to cache the whole dataset
38
+ modified_desires = desires.model_copy(deep=True)
39
+ if modified_desires.data_shape.estimated_state_size_gib:
40
+ # double buffer the cache
41
+ additional_mem = 2 * desires.data_shape.estimated_state_size_gib.mid
42
+ modified_desires.data_shape.reserved_instance_app_mem_gib += additional_mem
43
+
44
+ control_app = nflx_java_app_capacity_model.capacity_plan(
45
+ instance=instance,
46
+ drive=drive,
47
+ context=context,
48
+ desires=modified_desires,
49
+ extra_model_arguments=extra_model_arguments,
50
+ )
51
+ if control_app is None:
52
+ return None
53
+
54
+ for cluster in control_app.candidate_clusters.regional:
55
+ cluster.cluster_type = "dgwcontrol"
56
+ return control_app
57
+
58
+ @staticmethod
59
+ def description() -> str:
60
+ return "Netflix Control Model"
61
+
62
+ @staticmethod
63
+ def extra_model_arguments_schema() -> Dict[str, Any]:
64
+ return nflx_java_app_capacity_model.extra_model_arguments_schema()
65
+
66
+ @staticmethod
67
+ def compose_with(
68
+ user_desires: CapacityDesires, extra_model_arguments: Dict[str, Any]
69
+ ) -> Tuple[Tuple[str, Callable[[CapacityDesires], CapacityDesires]], ...]:
70
+ def _modify_aurora_desires(
71
+ user_desires: CapacityDesires,
72
+ ) -> CapacityDesires:
73
+ relaxed = user_desires.model_copy(deep=True)
74
+
75
+ # Aurora doesn't support tier 0, so downgrade to tier 1
76
+ if relaxed.service_tier == 0:
77
+ relaxed.service_tier = 1
78
+
79
+ # Control caches reads in memory, only writes go to Aurora
80
+ # Set read QPS to minimal since Aurora only handles writes
81
+ if relaxed.query_pattern.estimated_read_per_second:
82
+ relaxed.query_pattern.estimated_read_per_second = certain_int(1)
83
+
84
+ return relaxed
85
+
86
+ return (("org.netflix.aurora", _modify_aurora_desires),)
87
+
88
+ @staticmethod
89
+ def default_desires(
90
+ user_desires: CapacityDesires, extra_model_arguments: Dict[str, Any]
91
+ ) -> CapacityDesires:
92
+ return CapacityDesires(
93
+ query_pattern=QueryPattern(
94
+ access_pattern=AccessPattern.latency,
95
+ access_consistency=GlobalConsistency(
96
+ same_region=Consistency(
97
+ target_consistency=AccessConsistency.read_your_writes,
98
+ ),
99
+ cross_region=Consistency(
100
+ target_consistency=AccessConsistency.eventual,
101
+ ),
102
+ ),
103
+ estimated_mean_read_size_bytes=Interval(
104
+ low=128, mid=1024, high=65536, confidence=0.95
105
+ ),
106
+ estimated_mean_write_size_bytes=Interval(
107
+ low=128, mid=1024, high=65536, confidence=0.95
108
+ ),
109
+ estimated_mean_read_latency_ms=Interval(
110
+ low=0.2, mid=1, high=2, confidence=0.98
111
+ ),
112
+ estimated_mean_write_latency_ms=Interval(
113
+ low=0.2, mid=1, high=2, confidence=0.98
114
+ ),
115
+ # "Single digit milliseconds SLO"
116
+ read_latency_slo_ms=FixedInterval(
117
+ minimum_value=0.2,
118
+ maximum_value=10,
119
+ low=1,
120
+ mid=3,
121
+ high=6,
122
+ confidence=0.98,
123
+ ),
124
+ write_latency_slo_ms=FixedInterval(
125
+ minimum_value=0.2,
126
+ maximum_value=10,
127
+ low=0.4,
128
+ mid=2,
129
+ high=5,
130
+ confidence=0.98,
131
+ ),
132
+ ),
133
+ # Most Control clusters are small
134
+ data_shape=DataShape(
135
+ estimated_state_size_gib=Interval(
136
+ low=0.1, mid=1, high=10, confidence=0.98
137
+ ),
138
+ estimated_state_item_count=Interval(
139
+ low=100000, mid=1000000, high=10000000, confidence=0.98
140
+ ),
141
+ reserved_instance_app_mem_gib=8,
142
+ ),
143
+ )
144
+
145
+
146
+ nflx_control_capacity_model = NflxControlCapacityModel()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: service-capacity-modeling
3
- Version: 0.3.80
3
+ Version: 0.3.82
4
4
  Summary: Contains utilities for modeling capacity for pluggable workloads
5
5
  Author: Joseph Lynch
6
6
  Author-email: josephl@netflix.com
@@ -62,6 +62,7 @@ service_capacity_modeling/models/org/__init__.py
62
62
  service_capacity_modeling/models/org/netflix/__init__.py
63
63
  service_capacity_modeling/models/org/netflix/aurora.py
64
64
  service_capacity_modeling/models/org/netflix/cassandra.py
65
+ service_capacity_modeling/models/org/netflix/control.py
65
66
  service_capacity_modeling/models/org/netflix/counter.py
66
67
  service_capacity_modeling/models/org/netflix/crdb.py
67
68
  service_capacity_modeling/models/org/netflix/ddb.py