deltacat 1.1.0__py3-none-any.whl → 1.1.2__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.
- deltacat/__init__.py +1 -1
- deltacat/aws/clients.py +12 -2
- deltacat/aws/constants.py +5 -1
- deltacat/aws/s3u.py +8 -1
- deltacat/compute/compactor/model/compact_partition_params.py +24 -0
- deltacat/compute/compactor/model/compaction_session_audit_info.py +11 -0
- deltacat/compute/compactor_v2/compaction_session.py +44 -6
- deltacat/compute/compactor_v2/constants.py +28 -0
- deltacat/compute/compactor_v2/deletes/utils.py +3 -0
- deltacat/compute/compactor_v2/model/hash_bucket_input.py +6 -0
- deltacat/compute/compactor_v2/model/merge_input.py +6 -0
- deltacat/compute/compactor_v2/steps/hash_bucket.py +11 -3
- deltacat/compute/compactor_v2/steps/merge.py +35 -6
- deltacat/compute/compactor_v2/utils/io.py +3 -0
- deltacat/compute/compactor_v2/utils/merge.py +3 -0
- deltacat/compute/compactor_v2/utils/task_options.py +94 -8
- deltacat/io/memcached_object_store.py +20 -0
- deltacat/logs.py +29 -2
- deltacat/tests/compute/test_compact_partition_params.py +5 -0
- deltacat/tests/io/test_memcached_object_store.py +19 -0
- deltacat/tests/utils/test_metrics.py +575 -0
- deltacat/utils/metrics.py +158 -23
- deltacat/utils/resources.py +5 -3
- {deltacat-1.1.0.dist-info → deltacat-1.1.2.dist-info}/METADATA +1 -1
- {deltacat-1.1.0.dist-info → deltacat-1.1.2.dist-info}/RECORD +28 -27
- {deltacat-1.1.0.dist-info → deltacat-1.1.2.dist-info}/LICENSE +0 -0
- {deltacat-1.1.0.dist-info → deltacat-1.1.2.dist-info}/WHEEL +0 -0
- {deltacat-1.1.0.dist-info → deltacat-1.1.2.dist-info}/top_level.txt +0 -0
deltacat/utils/metrics.py
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
from dataclasses import dataclass
|
2
|
+
from typing import Optional
|
2
3
|
|
3
4
|
import logging
|
5
|
+
import ray
|
6
|
+
import time
|
7
|
+
import functools
|
4
8
|
|
5
9
|
from aws_embedded_metrics import metric_scope
|
6
10
|
from aws_embedded_metrics.config import get_config
|
@@ -18,11 +22,13 @@ logger = logs.configure_deltacat_logger(logging.getLogger(__name__))
|
|
18
22
|
DEFAULT_DELTACAT_METRICS_NAMESPACE = "ray-deltacat-metrics"
|
19
23
|
DEFAULT_DELTACAT_LOG_GROUP_NAME = "ray-deltacat-metrics-EMF-logs"
|
20
24
|
DEFAULT_DELTACAT_LOG_STREAM_CALLABLE = get_node_ip_address
|
25
|
+
METRICS_CONFIG_ACTOR_NAME = "metrics-config-actor"
|
21
26
|
|
22
27
|
|
23
28
|
class MetricsTarget(str, Enum):
|
24
29
|
CLOUDWATCH = "cloudwatch"
|
25
30
|
CLOUDWATCH_EMF = "cloudwatch_emf"
|
31
|
+
NOOP = "noop"
|
26
32
|
|
27
33
|
|
28
34
|
@dataclass
|
@@ -42,27 +48,16 @@ class MetricsConfig:
|
|
42
48
|
self.metrics_kwargs = metrics_kwargs
|
43
49
|
|
44
50
|
|
45
|
-
class MetricsType(str, Enum):
|
46
|
-
TIMER = "timer"
|
47
|
-
|
48
|
-
|
49
|
-
def _build_metrics_name(metrics_type: Enum, metrics_name: str) -> str:
|
50
|
-
metrics_name_with_type = f"{metrics_name}_{metrics_type}"
|
51
|
-
return metrics_name_with_type
|
52
|
-
|
53
|
-
|
54
51
|
def _build_cloudwatch_metrics(
|
55
52
|
metrics_name: str,
|
56
|
-
metrics_type: Enum,
|
57
53
|
value: str,
|
58
54
|
metrics_dimensions: List[Dict[str, str]],
|
59
55
|
timestamp: datetime,
|
60
56
|
**kwargs,
|
61
57
|
) -> Dict[str, Any]:
|
62
|
-
metrics_name_with_type = _build_metrics_name(metrics_type, metrics_name)
|
63
58
|
return [
|
64
59
|
{
|
65
|
-
"MetricName":
|
60
|
+
"MetricName": metrics_name,
|
66
61
|
"Dimensions": metrics_dimensions,
|
67
62
|
"Timestamp": timestamp,
|
68
63
|
"Value": value,
|
@@ -73,7 +68,6 @@ def _build_cloudwatch_metrics(
|
|
73
68
|
|
74
69
|
def _emit_metrics(
|
75
70
|
metrics_name: str,
|
76
|
-
metrics_type: Enum,
|
77
71
|
metrics_config: MetricsConfig,
|
78
72
|
value: str,
|
79
73
|
**kwargs,
|
@@ -85,7 +79,6 @@ def _emit_metrics(
|
|
85
79
|
if metrics_target in METRICS_TARGET_TO_EMITTER_DICT:
|
86
80
|
METRICS_TARGET_TO_EMITTER_DICT.get(metrics_target)(
|
87
81
|
metrics_name=metrics_name,
|
88
|
-
metrics_type=metrics_type,
|
89
82
|
metrics_config=metrics_config,
|
90
83
|
value=value,
|
91
84
|
**kwargs,
|
@@ -94,9 +87,15 @@ def _emit_metrics(
|
|
94
87
|
logger.warning(f"{metrics_target} is not a supported metrics target type.")
|
95
88
|
|
96
89
|
|
90
|
+
def _emit_noop_metrics(
|
91
|
+
*args,
|
92
|
+
**kwargs,
|
93
|
+
) -> None:
|
94
|
+
pass
|
95
|
+
|
96
|
+
|
97
97
|
def _emit_cloudwatch_metrics(
|
98
98
|
metrics_name: str,
|
99
|
-
metrics_type: Enum,
|
100
99
|
metrics_config: MetricsConfig,
|
101
100
|
value: str,
|
102
101
|
**kwargs,
|
@@ -111,7 +110,6 @@ def _emit_cloudwatch_metrics(
|
|
111
110
|
|
112
111
|
metrics_data = _build_cloudwatch_metrics(
|
113
112
|
metrics_name,
|
114
|
-
metrics_type,
|
115
113
|
value,
|
116
114
|
metrics_dimensions,
|
117
115
|
current_time,
|
@@ -128,14 +126,13 @@ def _emit_cloudwatch_metrics(
|
|
128
126
|
except Exception as e:
|
129
127
|
logger.warning(
|
130
128
|
f"Failed to publish Cloudwatch metrics with name: {metrics_name}, "
|
131
|
-
f"
|
129
|
+
f"with exception: {e}, response: {response}"
|
132
130
|
)
|
133
131
|
|
134
132
|
|
135
133
|
@metric_scope
|
136
134
|
def _emit_cloudwatch_emf_metrics(
|
137
135
|
metrics_name: str,
|
138
|
-
metrics_type: Enum,
|
139
136
|
metrics_config: MetricsConfig,
|
140
137
|
value: str,
|
141
138
|
metrics: MetricsLogger,
|
@@ -155,7 +152,6 @@ def _emit_cloudwatch_emf_metrics(
|
|
155
152
|
dimensions = dict(
|
156
153
|
[(dim["Name"], dim["Value"]) for dim in metrics_config.metrics_dimensions]
|
157
154
|
)
|
158
|
-
metrics_name_with_type = _build_metrics_name(metrics_type, metrics_name)
|
159
155
|
try:
|
160
156
|
metrics.set_timestamp(current_time)
|
161
157
|
metrics.set_dimensions(dimensions)
|
@@ -177,25 +173,164 @@ def _emit_cloudwatch_emf_metrics(
|
|
177
173
|
else DEFAULT_DELTACAT_LOG_STREAM_CALLABLE()
|
178
174
|
)
|
179
175
|
|
180
|
-
metrics.put_metric(
|
176
|
+
metrics.put_metric(metrics_name, value)
|
181
177
|
except Exception as e:
|
182
178
|
logger.warning(
|
183
|
-
f"Failed to publish Cloudwatch EMF metrics with name: {
|
184
|
-
f"type: {metrics_type}, with exception: {e}"
|
179
|
+
f"Failed to publish Cloudwatch EMF metrics with name: {metrics_name}", e
|
185
180
|
)
|
186
181
|
|
187
182
|
|
188
183
|
METRICS_TARGET_TO_EMITTER_DICT: Dict[str, Callable] = {
|
189
184
|
MetricsTarget.CLOUDWATCH: _emit_cloudwatch_metrics,
|
190
185
|
MetricsTarget.CLOUDWATCH_EMF: _emit_cloudwatch_emf_metrics,
|
186
|
+
MetricsTarget.NOOP: _emit_noop_metrics,
|
191
187
|
}
|
192
188
|
|
193
189
|
|
190
|
+
@ray.remote
|
191
|
+
class MetricsActor:
|
192
|
+
metrics_config: MetricsConfig = None
|
193
|
+
|
194
|
+
def set_metrics_config(self, config: MetricsConfig) -> None:
|
195
|
+
self.metrics_config = config
|
196
|
+
|
197
|
+
def get_metrics_config(self) -> MetricsConfig:
|
198
|
+
return self.metrics_config
|
199
|
+
|
200
|
+
|
201
|
+
def _emit_ignore_exceptions(name: Optional[str], value: Any):
|
202
|
+
try:
|
203
|
+
config_cache: MetricsActor = MetricsActor.options(
|
204
|
+
name=METRICS_CONFIG_ACTOR_NAME, get_if_exists=True
|
205
|
+
).remote()
|
206
|
+
config = ray.get(config_cache.get_metrics_config.remote())
|
207
|
+
if config:
|
208
|
+
_emit_metrics(metrics_name=name, value=value, metrics_config=config)
|
209
|
+
except BaseException as ex:
|
210
|
+
logger.warning("Emitting metrics failed", ex)
|
211
|
+
|
212
|
+
|
194
213
|
def emit_timer_metrics(metrics_name, value, metrics_config, **kwargs):
|
195
214
|
_emit_metrics(
|
196
215
|
metrics_name=metrics_name,
|
197
|
-
metrics_type=MetricsType.TIMER,
|
198
216
|
metrics_config=metrics_config,
|
199
217
|
value=value,
|
200
218
|
**kwargs,
|
201
219
|
)
|
220
|
+
|
221
|
+
|
222
|
+
def latency_metric(original_func=None, name: Optional[str] = None):
|
223
|
+
"""
|
224
|
+
A decorator that emits latency metrics of a function
|
225
|
+
based on configured metrics config.
|
226
|
+
"""
|
227
|
+
|
228
|
+
def _decorate(func):
|
229
|
+
metrics_name = name or f"{func.__name__}_time"
|
230
|
+
|
231
|
+
@functools.wraps(func)
|
232
|
+
def wrapper(*args, **kwargs):
|
233
|
+
start = time.monotonic()
|
234
|
+
try:
|
235
|
+
return func(*args, **kwargs)
|
236
|
+
finally:
|
237
|
+
end = time.monotonic()
|
238
|
+
_emit_ignore_exceptions(name=metrics_name, value=end - start)
|
239
|
+
|
240
|
+
return wrapper
|
241
|
+
|
242
|
+
if original_func:
|
243
|
+
return _decorate(original_func)
|
244
|
+
|
245
|
+
return _decorate
|
246
|
+
|
247
|
+
|
248
|
+
def success_metric(original_func=None, name: Optional[str] = None):
|
249
|
+
"""
|
250
|
+
A decorator that emits success metrics of a function
|
251
|
+
based on configured metrics config.
|
252
|
+
"""
|
253
|
+
|
254
|
+
def _decorate(func):
|
255
|
+
metrics_name = name or f"{func.__name__}_success_count"
|
256
|
+
|
257
|
+
@functools.wraps(func)
|
258
|
+
def wrapper(*args, **kwargs):
|
259
|
+
result = func(*args, **kwargs)
|
260
|
+
_emit_ignore_exceptions(name=metrics_name, value=1)
|
261
|
+
return result
|
262
|
+
|
263
|
+
return wrapper
|
264
|
+
|
265
|
+
if original_func:
|
266
|
+
return _decorate(original_func)
|
267
|
+
|
268
|
+
return _decorate
|
269
|
+
|
270
|
+
|
271
|
+
def failure_metric(original_func=None, name: Optional[str] = None):
|
272
|
+
"""
|
273
|
+
A decorator that emits failure metrics of a function
|
274
|
+
based on configured metrics config.
|
275
|
+
"""
|
276
|
+
|
277
|
+
def _decorate(func):
|
278
|
+
metrics_name = name or f"{func.__name__}_failure_count"
|
279
|
+
|
280
|
+
@functools.wraps(func)
|
281
|
+
def wrapper(*args, **kwargs):
|
282
|
+
try:
|
283
|
+
return func(*args, **kwargs)
|
284
|
+
except BaseException as ex:
|
285
|
+
exception_name = type(ex).__name__
|
286
|
+
# We emit two metrics, one for exception class and
|
287
|
+
# another for just the specified metric name.
|
288
|
+
_emit_ignore_exceptions(
|
289
|
+
name=f"{metrics_name}.{exception_name}", value=1
|
290
|
+
)
|
291
|
+
_emit_ignore_exceptions(name=metrics_name, value=1)
|
292
|
+
raise ex
|
293
|
+
|
294
|
+
return wrapper
|
295
|
+
|
296
|
+
if original_func:
|
297
|
+
return _decorate(original_func)
|
298
|
+
|
299
|
+
return _decorate
|
300
|
+
|
301
|
+
|
302
|
+
def metrics(original_func=None, prefix: Optional[str] = None):
|
303
|
+
"""
|
304
|
+
A decorator that emits all metrics for a function.
|
305
|
+
"""
|
306
|
+
|
307
|
+
def _decorate(func):
|
308
|
+
name = prefix or func.__name__
|
309
|
+
failure_metrics_name = f"{name}_failure_count"
|
310
|
+
success_metrics_name = f"{name}_success_count"
|
311
|
+
latency_metrics_name = f"{name}_time"
|
312
|
+
|
313
|
+
@functools.wraps(func)
|
314
|
+
def wrapper(*args, **kwargs):
|
315
|
+
start = time.monotonic()
|
316
|
+
try:
|
317
|
+
result = func(*args, **kwargs)
|
318
|
+
_emit_ignore_exceptions(name=success_metrics_name, value=1)
|
319
|
+
return result
|
320
|
+
except BaseException as ex:
|
321
|
+
exception_name = type(ex).__name__
|
322
|
+
_emit_ignore_exceptions(
|
323
|
+
name=f"{failure_metrics_name}.{exception_name}", value=1
|
324
|
+
)
|
325
|
+
_emit_ignore_exceptions(name=failure_metrics_name, value=1)
|
326
|
+
raise ex
|
327
|
+
finally:
|
328
|
+
end = time.monotonic()
|
329
|
+
_emit_ignore_exceptions(name=latency_metrics_name, value=end - start)
|
330
|
+
|
331
|
+
return wrapper
|
332
|
+
|
333
|
+
if original_func:
|
334
|
+
return _decorate(original_func)
|
335
|
+
|
336
|
+
return _decorate
|
deltacat/utils/resources.py
CHANGED
@@ -36,13 +36,15 @@ class ClusterUtilization:
|
|
36
36
|
used_resources[key] = cluster_resources[key] - available_resources[key]
|
37
37
|
|
38
38
|
self.total_memory_bytes = cluster_resources.get("memory")
|
39
|
-
self.used_memory_bytes = used_resources.get("memory")
|
39
|
+
self.used_memory_bytes = used_resources.get("memory", 0.0)
|
40
40
|
self.total_cpu = cluster_resources.get("CPU")
|
41
|
-
self.used_cpu = used_resources.get("CPU")
|
41
|
+
self.used_cpu = used_resources.get("CPU", 0)
|
42
42
|
self.total_object_store_memory_bytes = cluster_resources.get(
|
43
43
|
"object_store_memory"
|
44
44
|
)
|
45
|
-
self.used_object_store_memory_bytes = used_resources.get(
|
45
|
+
self.used_object_store_memory_bytes = used_resources.get(
|
46
|
+
"object_store_memory", 0.0
|
47
|
+
)
|
46
48
|
self.used_memory_percent = (
|
47
49
|
self.used_memory_bytes / self.total_memory_bytes
|
48
50
|
) * 100
|
@@ -1,11 +1,11 @@
|
|
1
|
-
deltacat/__init__.py,sha256=
|
1
|
+
deltacat/__init__.py,sha256=1qjk3DyuuYXNfuzWlEqKVNNPDDpBkV8gwsSgJiMCq1s,1777
|
2
2
|
deltacat/constants.py,sha256=_6oRI-3yp5c8J1qKGQZrt89I9-ttT_gSSvVsJ0h8Duc,1939
|
3
3
|
deltacat/exceptions.py,sha256=xqZf8CwysNYP2d39pf27OnXGStPREgBgIM-e2Tts-TI,199
|
4
|
-
deltacat/logs.py,sha256=
|
4
|
+
deltacat/logs.py,sha256=YT26oj-oKZReyBEhiBQU5jc246aSu_d4B2bZcUVBHmE,6550
|
5
5
|
deltacat/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
deltacat/aws/clients.py,sha256=
|
7
|
-
deltacat/aws/constants.py,sha256=
|
8
|
-
deltacat/aws/s3u.py,sha256=
|
6
|
+
deltacat/aws/clients.py,sha256=VgddlV3AEjlBGIFmhhHxokYzwJ-lXnmHAeprVyADduI,6948
|
7
|
+
deltacat/aws/constants.py,sha256=Ti8D92AFY3lY2eoOwYBSI1eqS8gMykX5DHf4w3xPybE,492
|
8
|
+
deltacat/aws/s3u.py,sha256=7-ZNz8fui_S5nprxtMO8PGa-G1YOXfidqcguzTTOvL8,24118
|
9
9
|
deltacat/aws/redshift/__init__.py,sha256=7SvjG-dqox8zZUhFicTsUvpG5vXYDl_QQ3ohlHOgTKc,342
|
10
10
|
deltacat/aws/redshift/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
deltacat/aws/redshift/model/manifest.py,sha256=ThgpdwzaWz493Zz9e8HSWwuxEheA1nDuypM3pe4vozk,12987
|
@@ -24,8 +24,8 @@ deltacat/compute/compactor/__init__.py,sha256=ivpOPve1yKi3Vz3tVgp-eeFMNEeUSf-dlR
|
|
24
24
|
deltacat/compute/compactor/compaction_session.py,sha256=bJpNBSTW7Raoa1gpojDpmVVqQGpvX0AwrusHQhUANcI,27612
|
25
25
|
deltacat/compute/compactor/repartition_session.py,sha256=f5BTTGNv365qSuTioL7QUuVm-px_l8-zz-OC_p7gXt4,7240
|
26
26
|
deltacat/compute/compactor/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
|
-
deltacat/compute/compactor/model/compact_partition_params.py,sha256=
|
28
|
-
deltacat/compute/compactor/model/compaction_session_audit_info.py,sha256=
|
27
|
+
deltacat/compute/compactor/model/compact_partition_params.py,sha256=I5DHVv4a_Pb3hlfWf5pyUeKcxEtvMu8LLEWFRH9qdfE,15195
|
28
|
+
deltacat/compute/compactor/model/compaction_session_audit_info.py,sha256=Aoae5KNmbdYt48utFQR_zrjHTkC9JNd4jPhQmyJji-A,30547
|
29
29
|
deltacat/compute/compactor/model/compactor_version.py,sha256=RwRvManiCxZmzjAWzm1OPDxjB1BEHu1d0fBJyGhXKxA,87
|
30
30
|
deltacat/compute/compactor/model/dedupe_result.py,sha256=1OCV944qJdLQ_-8scisVKl45ej1eRv9OV539QYZtQ-U,292
|
31
31
|
deltacat/compute/compactor/model/delta_annotated.py,sha256=NERB9rOtYg-xzBwvqGJ7_hBOzBC7g6X5M9-Cq5pbdH8,12258
|
@@ -50,31 +50,31 @@ deltacat/compute/compactor/utils/round_completion_file.py,sha256=DmZfHeAXlQn0DDd
|
|
50
50
|
deltacat/compute/compactor/utils/sort_key.py,sha256=oK6otg-CSsma6zlGPaKg-KNEvcZRG2NqBlCw1X3_FBc,2397
|
51
51
|
deltacat/compute/compactor/utils/system_columns.py,sha256=CNIgAGos0xAGEpdaQIH7KfbSRrGZgjRbItXMararqXQ,9399
|
52
52
|
deltacat/compute/compactor_v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
53
|
-
deltacat/compute/compactor_v2/compaction_session.py,sha256=
|
54
|
-
deltacat/compute/compactor_v2/constants.py,sha256=
|
53
|
+
deltacat/compute/compactor_v2/compaction_session.py,sha256=lXLoOiVjvsG-VEFD9afeKMjcExmOMg9I4-JTrTCVSo4,25576
|
54
|
+
deltacat/compute/compactor_v2/constants.py,sha256=R5qvsaX-rDrSmSqUl0yLp6A3hVrAD4whYkV2NBkDR9Y,2199
|
55
55
|
deltacat/compute/compactor_v2/deletes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
56
56
|
deltacat/compute/compactor_v2/deletes/delete_file_envelope.py,sha256=AeuH9JRMwp6mvQf6P2cqL92hUEtResQq6qUTS0kIKac,3111
|
57
57
|
deltacat/compute/compactor_v2/deletes/delete_strategy.py,sha256=SMEJOxR-5r92kvKNqtu2w6HmwtmhljcZX1wcNEuS-4w,2833
|
58
58
|
deltacat/compute/compactor_v2/deletes/delete_strategy_equality_delete.py,sha256=U4zxVECXSPs1Nj3iPf_tiRRCs12CF8CHmRt4s_GDzq8,6503
|
59
59
|
deltacat/compute/compactor_v2/deletes/model.py,sha256=kW7kfRe4jVNMnsWQrl0nyKdDpvB9mbJND-MVzAajbAI,558
|
60
|
-
deltacat/compute/compactor_v2/deletes/utils.py,sha256=
|
60
|
+
deltacat/compute/compactor_v2/deletes/utils.py,sha256=9CchSw1_caWGWtRHa4ycy58t5T422EN6UB9XYa1zpbk,6640
|
61
61
|
deltacat/compute/compactor_v2/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
|
-
deltacat/compute/compactor_v2/model/hash_bucket_input.py,sha256=
|
62
|
+
deltacat/compute/compactor_v2/model/hash_bucket_input.py,sha256=iJy8kLi1dIpFIyfoAjkaAtZvg8Np1z7BsUNGAcWfFm4,3042
|
63
63
|
deltacat/compute/compactor_v2/model/hash_bucket_result.py,sha256=EsY9BPPywhmxlcLKn3kGWzAX4s4BTR2vYyPUB-wAEOc,309
|
64
64
|
deltacat/compute/compactor_v2/model/merge_file_group.py,sha256=1o86t9lc3K6ZvtViVO1SVljCj6f0B3MfB3hqtGm2S0s,7410
|
65
|
-
deltacat/compute/compactor_v2/model/merge_input.py,sha256=
|
65
|
+
deltacat/compute/compactor_v2/model/merge_input.py,sha256=ITRBR8gMbJpeRkZhRaVzGEEk3F2WqS2LwEkjd5zcaMQ,5416
|
66
66
|
deltacat/compute/compactor_v2/model/merge_result.py,sha256=_IZTCStpb4UKiRCJYA3g6EhAqjrw0t9vmoDAN8kIK-Y,436
|
67
67
|
deltacat/compute/compactor_v2/steps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
|
-
deltacat/compute/compactor_v2/steps/hash_bucket.py,sha256=
|
69
|
-
deltacat/compute/compactor_v2/steps/merge.py,sha256=
|
68
|
+
deltacat/compute/compactor_v2/steps/hash_bucket.py,sha256=be61umFucTfzeZ03xii1P_NFqXsGmhl55hm_ULuCFPc,6617
|
69
|
+
deltacat/compute/compactor_v2/steps/merge.py,sha256=xjLpv93o9bMjihLXXO1j4XCXhyARc5GQI5eWxQRy0XI,21657
|
70
70
|
deltacat/compute/compactor_v2/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
71
71
|
deltacat/compute/compactor_v2/utils/content_type_params.py,sha256=rNKZisxGrLQOkwX8eHUQiFoTR1V-E66pMqWigtrs618,2156
|
72
72
|
deltacat/compute/compactor_v2/utils/dedupe.py,sha256=62tFCY2iRP7I3-45GCIYs6_SJsQl8C5lBEr8gbNfbsw,1932
|
73
73
|
deltacat/compute/compactor_v2/utils/delta.py,sha256=8hjkDeIIkSX-gAQ2utQSp2sZcO2tWZHMTxpFusZwBHw,3635
|
74
|
-
deltacat/compute/compactor_v2/utils/io.py,sha256=
|
75
|
-
deltacat/compute/compactor_v2/utils/merge.py,sha256=
|
74
|
+
deltacat/compute/compactor_v2/utils/io.py,sha256=autXlE3uHICdCCuJoS7mfdeJbRRiz2_xlz-3izlccB4,5264
|
75
|
+
deltacat/compute/compactor_v2/utils/merge.py,sha256=7p8lEmepxNekFFP5uVxgVLvAQRQnscOmUlSj8kUvW2c,5408
|
76
76
|
deltacat/compute/compactor_v2/utils/primary_key_index.py,sha256=MAscmL35WfwN7Is72aFlD_cGhxtZgjRwwR5kS9Yn2uU,11393
|
77
|
-
deltacat/compute/compactor_v2/utils/task_options.py,sha256=
|
77
|
+
deltacat/compute/compactor_v2/utils/task_options.py,sha256=MCY0Sz5NCgNMaY92W8p87FvvDB91mnPQ4AhL8ix3BiA,13780
|
78
78
|
deltacat/compute/merge_on_read/__init__.py,sha256=ckbgngmqPjYBYz_NySsR1vNTOb_hNpeL1sYkZKvBI9M,214
|
79
79
|
deltacat/compute/merge_on_read/daft.py,sha256=1oC38u5ig_aTrq7EzyWBo8Ui54rb6yERYMk-vEFbpxM,1400
|
80
80
|
deltacat/compute/merge_on_read/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -109,7 +109,7 @@ deltacat/compute/stats/utils/manifest_stats_file.py,sha256=PtqW5Zc5e09HcfiAgvoZH
|
|
109
109
|
deltacat/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
110
110
|
deltacat/io/dataset.py,sha256=8w9sPVDpGnjjGVDWB39YSKWxq4zRv9VEfDtj7PYwjqM,3755
|
111
111
|
deltacat/io/file_object_store.py,sha256=HCFeXu9cWXPXVk54MHel_nw3-wIuzhMt2RI6jKzjRYM,1346
|
112
|
-
deltacat/io/memcached_object_store.py,sha256=
|
112
|
+
deltacat/io/memcached_object_store.py,sha256=4Sc7Tue3giKBrRm6zM2G0ZrvDCtubnIp1UvsqA2i9M0,9185
|
113
113
|
deltacat/io/object_store.py,sha256=X6221ZuVx8NOyKUesz8LvjvQ_4vZ6p2RWV6VISL17AY,1576
|
114
114
|
deltacat/io/ray_plasma_object_store.py,sha256=TyoUPWybE_cSISZ2SQa3YfD93QWMp0r82-6WnoVSmzk,905
|
115
115
|
deltacat/io/read_api.py,sha256=BhkjL3xjY-fsa62AA9Yv20_88uTskn4_Bv2W6VmMXVA,7023
|
@@ -141,7 +141,7 @@ deltacat/tests/compute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
|
|
141
141
|
deltacat/tests/compute/compact_partition_rebase_then_incremental_test_cases.py,sha256=SaYQI30d1sxOBVs-Qj9VsMtigp4tWaRFFPmsPdahILc,72082
|
142
142
|
deltacat/tests/compute/compact_partition_test_cases.py,sha256=b6wVg1UP0pahtrS3dojk-_1tSXHjCWd95XBo4J6KEAU,20092
|
143
143
|
deltacat/tests/compute/test_compact_partition_incremental.py,sha256=G_xUERQjtBzAVfipzucdR8ATJviaVwTsj-5rRWVgYJY,10271
|
144
|
-
deltacat/tests/compute/test_compact_partition_params.py,sha256=
|
144
|
+
deltacat/tests/compute/test_compact_partition_params.py,sha256=Dm5eLyHo8oGMeO3XBbpj1rZqHtPZ1hAB7z2qvzc4Lxk,8497
|
145
145
|
deltacat/tests/compute/test_compact_partition_rebase_then_incremental.py,sha256=n6Qy-_STWgy3j02QyfZMUChIlHqlTfZjQ-G8yDppvyM,14077
|
146
146
|
deltacat/tests/compute/test_util_common.py,sha256=Skz0ZfHzidArZhIzRDHOYt-5uGBwx6MRfKZpeBnzh9w,6055
|
147
147
|
deltacat/tests/compute/test_util_constant.py,sha256=4o-W3E7r7jhFl1A3OFLLrdKnwcF46zx4lEIDY8ONJ3c,929
|
@@ -159,7 +159,7 @@ deltacat/tests/compute/compactor_v2/utils/test_task_options.py,sha256=4fc5MJTLm3
|
|
159
159
|
deltacat/tests/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
160
160
|
deltacat/tests/io/test_cloudpickle_bug_fix.py,sha256=qnYJg_S-nsLai77a4_I3Qs2Jtr_KWQJOxyl96f9PgHA,1376
|
161
161
|
deltacat/tests/io/test_file_object_store.py,sha256=bHEJRleVHwvk-bbvAlNOFnOA_tbR8i0SxtsllMTb8w0,2559
|
162
|
-
deltacat/tests/io/test_memcached_object_store.py,sha256=
|
162
|
+
deltacat/tests/io/test_memcached_object_store.py,sha256=25SB5xTMAG0HKwZwsDLhMreJ0dA6zrCDmHuY955YeLA,8070
|
163
163
|
deltacat/tests/io/test_ray_plasma_object_store.py,sha256=-wJZP6lRtEOogR25wjEiIBGz_lpvWVihwlZ5GqandZU,1911
|
164
164
|
deltacat/tests/io/test_redis_object_store.py,sha256=sZrXrYjkw8u_XrvFilhBbLc8PPnZiuMKa1_Bt9ka5qs,3838
|
165
165
|
deltacat/tests/io/test_s3_object_store.py,sha256=4b7PYEfQJnYGUz6fcLFWVVyRHTlH_yd8CIaCv9l33Gg,1900
|
@@ -174,6 +174,7 @@ deltacat/tests/test_utils/utils.py,sha256=a32qEwcSSd1lvRi0aJJ4ZLnc1ZyXmoQF_K95za
|
|
174
174
|
deltacat/tests/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
175
175
|
deltacat/tests/utils/test_cloudpickle.py,sha256=J0pnBY3-PxlUh6MamZAN1PuquKQPr2iyzjiJ7-Rcl0o,1506
|
176
176
|
deltacat/tests/utils/test_daft.py,sha256=Xal84zR42rXsWQI3lImdDYWOzewomKmhmiUQ59m67V0,6488
|
177
|
+
deltacat/tests/utils/test_metrics.py,sha256=kznfueuChhTG3kKnfbVOtxks2uwIWrXlDjY3b2qQaNc,19429
|
177
178
|
deltacat/tests/utils/test_pyarrow.py,sha256=eZAuYp9MUf8lmpIilH57JkURuNsTGZ3IAGC4Gm5hdrM,17307
|
178
179
|
deltacat/tests/utils/test_record_batch_tables.py,sha256=AkG1WyljQmjnl-AxhbFWyo5LnMIKRyLScfgC2B_ES-s,11321
|
179
180
|
deltacat/tests/utils/test_resources.py,sha256=HtpvDrfPZQNtGDXUlsIzc_yd7Vf1cDscZ3YbN0oTvO8,2560
|
@@ -187,13 +188,13 @@ deltacat/utils/arguments.py,sha256=5y1Xz4HSAD8M8Jt83i6gOEKoYjy_fMQe1V43IhIE4hY,1
|
|
187
188
|
deltacat/utils/cloudpickle.py,sha256=XE7YDmQe56ksfl3NdYZkzOAhbHSuhNcBZGOehQpgZr0,1187
|
188
189
|
deltacat/utils/common.py,sha256=RG_-enXNpLKaYrqyx1ne2lL10lxN9vK7F631oJP6SE8,1375
|
189
190
|
deltacat/utils/daft.py,sha256=heg6J8NHnTI1UbcjXvsjGBbFKU6f7mvAio-KZuTSuFI,5506
|
190
|
-
deltacat/utils/metrics.py,sha256=
|
191
|
+
deltacat/utils/metrics.py,sha256=PZeBV4rhlA_7WjucXDe2DyZj5A8pYCQsYoKDwgyqb7E,9937
|
191
192
|
deltacat/utils/numpy.py,sha256=ZiGREobTVT6IZXgPxkSUpLJFN2Hn8KEZcrqybLDXCIA,2027
|
192
193
|
deltacat/utils/pandas.py,sha256=GfwjYb8FUSEeoBdXZI1_NJkdjxPMbCCUhlyRfGbDkn8,9562
|
193
194
|
deltacat/utils/performance.py,sha256=7ZLaMkS1ehPSIhT5uOQVBHvjC70iKHzoFquFo-KL0PI,645
|
194
195
|
deltacat/utils/placement.py,sha256=S80CwD1eEK47lQNr0xTmF9kq092-z6lTTmOOBv8cW_o,11723
|
195
196
|
deltacat/utils/pyarrow.py,sha256=gYcoRhQoBoAFo69WNijMobrLGta4VASg8VarWPiB34Y,28979
|
196
|
-
deltacat/utils/resources.py,sha256=
|
197
|
+
deltacat/utils/resources.py,sha256=Ax1OgLLbZI4oYpp4Ki27OLaST-7I-AJgZwU87FVfY8g,8253
|
197
198
|
deltacat/utils/s3fs.py,sha256=PmUJ5Fm1WmD-_zp_M6yd9VbXvIoJuBeK6ApOdJJApLE,662
|
198
199
|
deltacat/utils/schema.py,sha256=m4Wm4ZQcpttzOUxex4dVneGlHy1_E36HspTcjNYzvVM,1564
|
199
200
|
deltacat/utils/ray_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -202,8 +203,8 @@ deltacat/utils/ray_utils/concurrency.py,sha256=JDVwMiQWrmuSlyCWAoiq9ctoJ0XADEfDD
|
|
202
203
|
deltacat/utils/ray_utils/dataset.py,sha256=SIljK3UkSqQ6Ntit_iSiYt9yYjN_gGrCTX6_72XdQ3w,3244
|
203
204
|
deltacat/utils/ray_utils/performance.py,sha256=d7JFM7vTXHzkGx9qNQcZzUWajnqINvYRwaM088_FpsE,464
|
204
205
|
deltacat/utils/ray_utils/runtime.py,sha256=5eaBWTDm0IXVoc5Y6aacoVB-f0Mnv-K2ewyTSjHKHwM,5009
|
205
|
-
deltacat-1.1.
|
206
|
-
deltacat-1.1.
|
207
|
-
deltacat-1.1.
|
208
|
-
deltacat-1.1.
|
209
|
-
deltacat-1.1.
|
206
|
+
deltacat-1.1.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
207
|
+
deltacat-1.1.2.dist-info/METADATA,sha256=r16g6Lc01Nlsb0Dr5DPona2hiOsWLIcscEXkQyfpD3o,1780
|
208
|
+
deltacat-1.1.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
209
|
+
deltacat-1.1.2.dist-info/top_level.txt,sha256=RWdIcid4Bv2i2ozLVh-70kJpyB61xEKXod9XXGpiono,9
|
210
|
+
deltacat-1.1.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|