deltacat 1.1.13__tar.gz → 1.1.15__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.
- {deltacat-1.1.13/deltacat.egg-info → deltacat-1.1.15}/PKG-INFO +1 -1
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/__init__.py +1 -1
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/compaction_session.py +3 -2
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/compact_partition_params.py +11 -1
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/compaction_session_audit_info.py +2 -2
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/delta_annotated.py +2 -4
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/steps/hash_bucket.py +2 -3
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/compaction_session.py +26 -27
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/constants.py +4 -0
- deltacat-1.1.15/deltacat/compute/compactor_v2/private/compaction_utils.py +753 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/steps/merge.py +0 -3
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/utils/delta.py +2 -3
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/utils/io.py +0 -2
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/utils/merge.py +0 -1
- deltacat-1.1.15/deltacat/tests/compute/compact_partition_multiple_rounds_test_cases.py +855 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/compactor_v2/test_compaction_session.py +1 -1
- deltacat-1.1.15/deltacat/tests/compute/test_compact_partition_multiple_rounds.py +330 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/test_compact_partition_rebase.py +1 -1
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/test_util_create_table_deltas_repo.py +118 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/local_deltacat_storage/__init__.py +8 -5
- deltacat-1.1.15/deltacat/utils/ray_utils/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15/deltacat.egg-info}/PKG-INFO +1 -1
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat.egg-info/SOURCES.txt +4 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/LICENSE +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/MANIFEST.in +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/README.md +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/aws/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/aws/clients.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/aws/constants.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/aws/redshift/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/aws/redshift/model/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/aws/redshift/model/manifest.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/aws/s3u.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/benchmarking/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/benchmarking/benchmark_parquet_reads.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/benchmarking/conftest.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/catalog/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/catalog/default_catalog_impl/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/catalog/delegate.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/catalog/interface.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/catalog/model/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/catalog/model/catalog.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/catalog/model/table_definition.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/compactor_version.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/dedupe_result.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/delta_file_envelope.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/delta_file_locator.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/hash_bucket_result.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/materialize_result.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/primary_key_index.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/pyarrow_write_result.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/repartition_result.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/round_completion_info.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/table_object_store.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/repartition_session.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/steps/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/steps/dedupe.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/steps/materialize.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/steps/repartition.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/utils/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/utils/io.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/utils/primary_key_index.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/utils/round_completion_file.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/utils/sort_key.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/utils/system_columns.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/deletes/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/deletes/delete_file_envelope.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/deletes/delete_strategy.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/deletes/delete_strategy_equality_delete.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/deletes/model.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/deletes/utils.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/model/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/model/evaluate_compaction_result.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/model/hash_bucket_input.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/model/hash_bucket_result.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/model/merge_file_group.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/model/merge_input.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/model/merge_result.py +0 -0
- {deltacat-1.1.13/deltacat/compute/compactor_v2/steps → deltacat-1.1.15/deltacat/compute/compactor_v2/private}/__init__.py +0 -0
- {deltacat-1.1.13/deltacat/compute/compactor_v2/utils → deltacat-1.1.15/deltacat/compute/compactor_v2/steps}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/steps/hash_bucket.py +0 -0
- {deltacat-1.1.13/deltacat/compute/merge_on_read/model → deltacat-1.1.15/deltacat/compute/compactor_v2/utils}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/utils/content_type_params.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/utils/dedupe.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/utils/primary_key_index.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor_v2/utils/task_options.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/merge_on_read/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/merge_on_read/daft.py +0 -0
- {deltacat-1.1.13/deltacat/compute/merge_on_read/utils → deltacat-1.1.15/deltacat/compute/merge_on_read/model}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/merge_on_read/model/merge_on_read_params.py +0 -0
- {deltacat-1.1.13/deltacat/compute/metastats → deltacat-1.1.15/deltacat/compute/merge_on_read/utils}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/merge_on_read/utils/delta.py +0 -0
- {deltacat-1.1.13/deltacat/compute/metastats/config → deltacat-1.1.15/deltacat/compute/metastats}/__init__.py +0 -0
- {deltacat-1.1.13/deltacat/compute/metastats/model → deltacat-1.1.15/deltacat/compute/metastats/config}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/metastats/meta_stats.py +0 -0
- {deltacat-1.1.13/deltacat/compute/metastats/utils → deltacat-1.1.15/deltacat/compute/metastats/model}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/metastats/model/partition_stats_dict.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/metastats/model/stats_cluster_size_estimator.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/metastats/stats.py +0 -0
- {deltacat-1.1.13/deltacat/compute/stats → deltacat-1.1.15/deltacat/compute/metastats/utils}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/metastats/utils/constants.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/metastats/utils/io.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/metastats/utils/pyarrow_memory_estimation_function.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/metastats/utils/ray_utils.py +0 -0
- {deltacat-1.1.13/deltacat/compute/stats/models → deltacat-1.1.15/deltacat/compute/stats}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/stats/basic.py +0 -0
- {deltacat-1.1.13/deltacat/compute/stats/utils → deltacat-1.1.15/deltacat/compute/stats/models}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/stats/models/delta_column_stats.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/stats/models/delta_stats.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/stats/models/delta_stats_cache_result.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/stats/models/manifest_entry_stats.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/stats/models/stats_result.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/stats/types.py +0 -0
- {deltacat-1.1.13/deltacat/io → deltacat-1.1.15/deltacat/compute/stats/utils}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/stats/utils/intervals.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/stats/utils/io.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/stats/utils/manifest_stats_file.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/constants.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/exceptions.py +0 -0
- {deltacat-1.1.13/deltacat/io/aws → deltacat-1.1.15/deltacat/io}/__init__.py +0 -0
- {deltacat-1.1.13/deltacat/io/aws/redshift → deltacat-1.1.15/deltacat/io/aws}/__init__.py +0 -0
- {deltacat-1.1.13/deltacat/storage/model → deltacat-1.1.15/deltacat/io/aws/redshift}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/io/dataset.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/io/file_object_store.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/io/memcached_object_store.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/io/object_store.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/io/ray_plasma_object_store.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/io/read_api.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/io/redis_object_store.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/io/s3_object_store.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/logs.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/interface.py +0 -0
- {deltacat-1.1.13/deltacat/tests → deltacat-1.1.15/deltacat/storage/model}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/delete_parameters.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/delta.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/list_result.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/locator.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/namespace.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/partition.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/partition_spec.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/sort_key.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/stream.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/table.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/table_version.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/transform.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/storage/model/types.py +0 -0
- {deltacat-1.1.13/deltacat/tests/aws → deltacat-1.1.15/deltacat/tests}/__init__.py +0 -0
- {deltacat-1.1.13/deltacat/tests/catalog → deltacat-1.1.15/deltacat/tests/aws}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/aws/test_clients.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/aws/test_s3u.py +0 -0
- {deltacat-1.1.13/deltacat/tests/compute → deltacat-1.1.15/deltacat/tests/catalog}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/catalog/test_default_catalog_impl.py +0 -0
- {deltacat-1.1.13/deltacat/tests/compute/compactor → deltacat-1.1.15/deltacat/tests/compute}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/compact_partition_rebase_test_cases.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/compact_partition_rebase_then_incremental_test_cases.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/compact_partition_test_cases.py +0 -0
- {deltacat-1.1.13/deltacat/tests/compute/compactor/steps → deltacat-1.1.15/deltacat/tests/compute/compactor}/__init__.py +0 -0
- {deltacat-1.1.13/deltacat/tests/compute/compactor/utils → deltacat-1.1.15/deltacat/tests/compute/compactor/steps}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/compactor/steps/test_repartition.py +0 -0
- {deltacat-1.1.13/deltacat/tests/compute/compactor_v2 → deltacat-1.1.15/deltacat/tests/compute/compactor/utils}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/compactor/utils/test_io.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/compactor/utils/test_round_completion_file.py +0 -0
- {deltacat-1.1.13/deltacat/tests/compute/compactor_v2/utils → deltacat-1.1.15/deltacat/tests/compute/compactor_v2}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/compactor_v2/test_hashlib.py +0 -0
- {deltacat-1.1.13/deltacat/tests/io → deltacat-1.1.15/deltacat/tests/compute/compactor_v2/utils}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/compactor_v2/utils/test_task_options.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/test_compact_partition_incremental.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/test_compact_partition_params.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/test_compact_partition_rebase_then_incremental.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/test_util_common.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/compute/test_util_constant.py +0 -0
- {deltacat-1.1.13/deltacat/tests/stats → deltacat-1.1.15/deltacat/tests/io}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/io/test_cloudpickle_bug_fix.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/io/test_file_object_store.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/io/test_memcached_object_store.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/io/test_ray_plasma_object_store.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/io/test_redis_object_store.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/io/test_s3_object_store.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/local_deltacat_storage/exceptions.py +0 -0
- {deltacat-1.1.13/deltacat/tests/test_utils → deltacat-1.1.15/deltacat/tests/stats}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/stats/test_intervals.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/test_exceptions.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/test_logs.py +0 -0
- {deltacat-1.1.13/deltacat/tests/utils → deltacat-1.1.15/deltacat/tests/test_utils}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/test_utils/constants.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/test_utils/pyarrow.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/test_utils/storage.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/test_utils/utils.py +0 -0
- {deltacat-1.1.13/deltacat/tests/utils/data → deltacat-1.1.15/deltacat/tests/utils}/__init__.py +0 -0
- {deltacat-1.1.13/deltacat/tests/utils/ray_utils → deltacat-1.1.15/deltacat/tests/utils/data}/__init__.py +0 -0
- {deltacat-1.1.13/deltacat/types → deltacat-1.1.15/deltacat/tests/utils/ray_utils}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/utils/ray_utils/test_concurrency.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/utils/ray_utils/test_dataset.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/utils/test_cloudpickle.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/utils/test_daft.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/utils/test_metrics.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/utils/test_placement.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/utils/test_pyarrow.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/utils/test_record_batch_tables.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/tests/utils/test_resources.py +0 -0
- {deltacat-1.1.13/deltacat/utils → deltacat-1.1.15/deltacat/types}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/types/media.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/types/partial_download.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/types/tables.py +0 -0
- {deltacat-1.1.13/deltacat/utils/ray_utils → deltacat-1.1.15/deltacat/utils}/__init__.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/arguments.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/cloudpickle.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/common.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/daft.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/metrics.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/numpy.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/pandas.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/performance.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/placement.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/pyarrow.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/ray_utils/collections.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/ray_utils/concurrency.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/ray_utils/dataset.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/ray_utils/performance.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/ray_utils/runtime.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/resources.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/s3fs.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat/utils/schema.py +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat.egg-info/dependency_links.txt +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat.egg-info/requires.txt +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/deltacat.egg-info/top_level.txt +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/setup.cfg +0 -0
- {deltacat-1.1.13 → deltacat-1.1.15}/setup.py +0 -0
@@ -688,8 +688,9 @@ def _execute_compaction_round(
|
|
688
688
|
session_peak_memory
|
689
689
|
)
|
690
690
|
|
691
|
-
compaction_audit.save_round_completion_stats(
|
692
|
-
|
691
|
+
compaction_audit.save_round_completion_stats(mat_results)
|
692
|
+
compaction_audit.set_telemetry_time_in_seconds(
|
693
|
+
telemetry_time_hb + telemetry_time_dd + telemetry_time_materialize
|
693
694
|
)
|
694
695
|
|
695
696
|
s3_utils.upload(
|
{deltacat-1.1.13 → deltacat-1.1.15}/deltacat/compute/compactor/model/compact_partition_params.py
RENAMED
@@ -22,6 +22,7 @@ from deltacat.compute.compactor_v2.constants import (
|
|
22
22
|
DROP_DUPLICATES,
|
23
23
|
TOTAL_MEMORY_BUFFER_PERCENTAGE,
|
24
24
|
DEFAULT_DISABLE_COPY_BY_REFERENCE,
|
25
|
+
DEFAULT_NUM_ROUNDS,
|
25
26
|
)
|
26
27
|
from deltacat.constants import PYARROW_INFLATION_MULTIPLIER
|
27
28
|
from deltacat.compute.compactor.utils.sort_key import validate_sort_keys
|
@@ -102,6 +103,8 @@ class CompactPartitionParams(dict):
|
|
102
103
|
|
103
104
|
result.metrics_config = params.get("metrics_config")
|
104
105
|
|
106
|
+
result.num_rounds = params.get("num_rounds", DEFAULT_NUM_ROUNDS)
|
107
|
+
|
105
108
|
if not importlib.util.find_spec("memray"):
|
106
109
|
result.enable_profiler = False
|
107
110
|
|
@@ -189,7 +192,6 @@ class CompactPartitionParams(dict):
|
|
189
192
|
cluster_resources = self.pg_config.resource
|
190
193
|
cluster_cpus = cluster_resources["CPU"]
|
191
194
|
self.task_max_parallelism = cluster_cpus
|
192
|
-
self["task_max_parallelism"] = self.task_max_parallelism
|
193
195
|
return self["task_max_parallelism"]
|
194
196
|
|
195
197
|
@task_max_parallelism.setter
|
@@ -403,6 +405,14 @@ class CompactPartitionParams(dict):
|
|
403
405
|
def metrics_config(self, config: MetricsConfig) -> None:
|
404
406
|
self["metrics_config"] = config
|
405
407
|
|
408
|
+
@property
|
409
|
+
def num_rounds(self) -> int:
|
410
|
+
return self["num_rounds"]
|
411
|
+
|
412
|
+
@num_rounds.setter
|
413
|
+
def num_rounds(self, num_rounds: int) -> None:
|
414
|
+
self["num_rounds"] = num_rounds
|
415
|
+
|
406
416
|
@staticmethod
|
407
417
|
def json_handler_for_compact_partition_params(obj):
|
408
418
|
"""
|
@@ -818,7 +818,8 @@ class CompactionSessionAuditInfo(dict):
|
|
818
818
|
return cluster_util_after_task_latency + telemetry_time
|
819
819
|
|
820
820
|
def save_round_completion_stats(
|
821
|
-
self,
|
821
|
+
self,
|
822
|
+
mat_results: List[MaterializeResult],
|
822
823
|
) -> None:
|
823
824
|
"""
|
824
825
|
This method saves all the relevant stats after all the steps are completed.
|
@@ -888,4 +889,3 @@ class CompactionSessionAuditInfo(dict):
|
|
888
889
|
)
|
889
890
|
|
890
891
|
self.set_pyarrow_version(pa.__version__)
|
891
|
-
self.set_telemetry_time_in_seconds(total_telemetry_time)
|
@@ -97,8 +97,7 @@ class DeltaAnnotated(Delta):
|
|
97
97
|
for src_da in split_annotated_deltas:
|
98
98
|
src_da_annotations = src_da.annotations
|
99
99
|
src_da_entries = src_da.manifest.entries
|
100
|
-
assert (
|
101
|
-
len(src_da_annotations) == len(src_da_entries),
|
100
|
+
assert len(src_da_annotations) == len(src_da_entries), (
|
102
101
|
f"Unexpected Error: Length of delta annotations "
|
103
102
|
f"({len(src_da_annotations)}) doesn't mach the length of "
|
104
103
|
f"delta manifest entries ({len(src_da_entries)}).",
|
@@ -152,8 +151,7 @@ class DeltaAnnotated(Delta):
|
|
152
151
|
da_group_entry_count = 0
|
153
152
|
src_da_annotations = src_da.annotations
|
154
153
|
src_da_entries = src_da.manifest.entries
|
155
|
-
assert (
|
156
|
-
len(src_da_annotations) == len(src_da_entries),
|
154
|
+
assert len(src_da_annotations) == len(src_da_entries), (
|
157
155
|
f"Unexpected Error: Length of delta annotations "
|
158
156
|
f"({len(src_da_annotations)}) doesn't mach the length of "
|
159
157
|
f"delta manifest entries ({len(src_da_entries)}).",
|
@@ -157,11 +157,10 @@ def _read_delta_file_envelopes(
|
|
157
157
|
**deltacat_storage_kwargs,
|
158
158
|
)
|
159
159
|
annotations = annotated_delta.annotations
|
160
|
-
assert (
|
161
|
-
len(tables) == len(annotations),
|
160
|
+
assert len(tables) == len(annotations), (
|
162
161
|
f"Unexpected Error: Length of downloaded delta manifest tables "
|
163
162
|
f"({len(tables)}) doesn't match the length of delta manifest "
|
164
|
-
f"annotations ({len(annotations)})."
|
163
|
+
f"annotations ({len(annotations)})."
|
165
164
|
)
|
166
165
|
if not tables:
|
167
166
|
return None, 0
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import numpy as np
|
2
1
|
import importlib
|
3
2
|
from contextlib import nullcontext
|
4
3
|
import logging
|
@@ -40,6 +39,8 @@ from deltacat.utils.resources import (
|
|
40
39
|
from deltacat.compute.compactor_v2.private.compaction_utils import (
|
41
40
|
_fetch_compaction_metadata,
|
42
41
|
_build_uniform_deltas,
|
42
|
+
_group_uniform_deltas,
|
43
|
+
_stage_new_partition,
|
43
44
|
_run_hash_and_merge,
|
44
45
|
_process_merge_results,
|
45
46
|
_upload_compaction_audit,
|
@@ -69,6 +70,10 @@ def compact_partition(params: CompactPartitionParams, **kwargs) -> Optional[str]
|
|
69
70
|
assert (
|
70
71
|
params.hash_bucket_count is not None and params.hash_bucket_count >= 1
|
71
72
|
), "hash_bucket_count is a required arg for compactor v2"
|
73
|
+
if params.num_rounds > 1:
|
74
|
+
assert (
|
75
|
+
not params.drop_duplicates
|
76
|
+
), "num_rounds > 1, drop_duplicates must be False but is True"
|
72
77
|
|
73
78
|
with memray.Tracker(
|
74
79
|
"compaction_partition.bin"
|
@@ -144,32 +149,28 @@ def _execute_compaction(
|
|
144
149
|
delete_strategy,
|
145
150
|
delete_file_envelopes,
|
146
151
|
) = build_uniform_deltas_result
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
telemetry_time_hb,
|
166
|
-
telemetry_time_merge,
|
167
|
-
compacted_partition,
|
168
|
-
) = _run_hash_and_merge_result
|
152
|
+
logger.info(f"Number of rounds parameter is set to: {params.num_rounds}")
|
153
|
+
uniform_deltas_grouped = _group_uniform_deltas(params, uniform_deltas)
|
154
|
+
logger.info(f"Length of grouped uniform deltas is: {len(uniform_deltas_grouped)}")
|
155
|
+
merge_result_list: List[MergeResult] = []
|
156
|
+
compacted_partition = _stage_new_partition(params)
|
157
|
+
for uniform_deltas in uniform_deltas_grouped:
|
158
|
+
# run hash and merge
|
159
|
+
_run_hash_and_merge_result: List[MergeResult] = _run_hash_and_merge(
|
160
|
+
params,
|
161
|
+
uniform_deltas,
|
162
|
+
round_completion_info,
|
163
|
+
delete_strategy,
|
164
|
+
delete_file_envelopes,
|
165
|
+
compaction_audit,
|
166
|
+
previous_compacted_delta_manifest,
|
167
|
+
compacted_partition,
|
168
|
+
)
|
169
|
+
merge_result_list.extend(_run_hash_and_merge_result)
|
169
170
|
# process merge results
|
170
171
|
process_merge_results: tuple[
|
171
172
|
Delta, list[MaterializeResult], dict
|
172
|
-
] = _process_merge_results(params,
|
173
|
+
] = _process_merge_results(params, merge_result_list, compaction_audit)
|
173
174
|
merged_delta, mat_results, hb_id_to_entry_indices_range = process_merge_results
|
174
175
|
# Record information, logging, and return ExecutionCompactionResult
|
175
176
|
record_info_msg: str = f" Materialized records: {merged_delta.meta.record_count}"
|
@@ -198,9 +199,7 @@ def _execute_compaction(
|
|
198
199
|
session_peak_memory
|
199
200
|
)
|
200
201
|
|
201
|
-
compaction_audit.save_round_completion_stats(
|
202
|
-
mat_results, telemetry_time_hb + telemetry_time_merge
|
203
|
-
)
|
202
|
+
compaction_audit.save_round_completion_stats(mat_results)
|
204
203
|
|
205
204
|
_upload_compaction_audit(
|
206
205
|
params,
|
@@ -71,3 +71,7 @@ PREPARE_DELETES_METRIC_PREFIX = "prepare_deletes"
|
|
71
71
|
|
72
72
|
# Metric prefix for compact partition method
|
73
73
|
COMPACT_PARTITION_METRIC_PREFIX = "compact_partition"
|
74
|
+
|
75
|
+
# Number of rounds to run hash/merge for a single
|
76
|
+
# partition. (For large table support)
|
77
|
+
DEFAULT_NUM_ROUNDS = 1
|