hyperstreamdb 0.5.3__tar.gz → 0.5.4__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.
- hyperstreamdb-0.5.4/.cargo/audit.toml +11 -0
- hyperstreamdb-0.5.4/ADMIN_CLI.md +59 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/CONTRIBUTING.md +1 -1
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/Cargo.lock +179 -18
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/Cargo.toml +7 -1
- hyperstreamdb-0.5.4/ELASTICSEARCH_INTEGRATION_PLAN.md +121 -0
- hyperstreamdb-0.5.4/GETTING_STARTED.md +118 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/PKG-INFO +52 -92
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/README.md +51 -91
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/SECURITY.md +7 -12
- hyperstreamdb-0.5.4/benchmark_results/full_scan_baseline_20260620_173334.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/full_scan_baseline_20260620_173334.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/full_scan_baseline_20260620_192646.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/full_scan_baseline_20260620_192646.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/full_scan_baseline_20260623_173013.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/full_scan_baseline_20260623_173013.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/high_selectivity_filter_20260620_173332.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/high_selectivity_filter_20260620_173332.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/high_selectivity_filter_20260620_192645.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/high_selectivity_filter_20260620_192645.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/high_selectivity_filter_20260623_173011.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/high_selectivity_filter_20260623_173011.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/multi_filter_vector_20260620_173300.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/multi_filter_vector_20260620_173300.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/multi_filter_vector_20260620_192611.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/multi_filter_vector_20260620_192611.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/multi_filter_vector_20260623_172935.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/multi_filter_vector_20260623_172935.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/point_lookup_20260620_173332.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/point_lookup_20260620_173332.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/point_lookup_20260620_192644.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/point_lookup_20260620_192644.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/point_lookup_20260623_173011.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/point_lookup_20260623_173011.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/post_vs_pre_filter_20260620_173303.json +7 -0
- hyperstreamdb-0.5.4/benchmark_results/post_vs_pre_filter_20260620_173303.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/post_vs_pre_filter_20260620_192614.json +7 -0
- hyperstreamdb-0.5.4/benchmark_results/post_vs_pre_filter_20260620_192614.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/post_vs_pre_filter_20260623_172938.json +7 -0
- hyperstreamdb-0.5.4/benchmark_results/post_vs_pre_filter_20260623_172938.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/range_query_20260620_173333.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/range_query_20260620_173333.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/range_query_20260620_192646.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/range_query_20260620_192646.md +7 -0
- hyperstreamdb-0.5.4/benchmark_results/range_query_20260623_173012.json +14 -0
- hyperstreamdb-0.5.4/benchmark_results/range_query_20260623_173012.md +7 -0
- hyperstreamdb-0.5.4/clippy_output.txt +502 -0
- hyperstreamdb-0.5.4/fix_deprecated.py +20 -0
- hyperstreamdb-0.5.4/src/bin/hyperstreamdb-admin.rs +107 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/bin/iceberg_rest.rs +1 -1
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/compaction.rs +3 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/ffi.rs +0 -1
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/manifest.rs +2 -2
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/types.rs +1 -1
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/gpu.rs +24 -13
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/hnswio.rs +2 -2
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/libext.rs +1 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/mod.rs +1 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/lock.rs +138 -51
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/manager/commit.rs +3 -9
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/manager/load.rs +1 -1
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/manager/schema.rs +1 -4
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/mod.rs +1 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/reader/filter.rs +7 -1
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/mod.rs +5 -3
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/write.rs +1 -1
- hyperstreamdb-0.5.4/src/core/telemetry.rs +26 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/lib.rs +11 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/helpers.rs +3 -1
- hyperstreamdb-0.5.4/tests/verify_admin_cli.sh +20 -0
- hyperstreamdb-0.5.3/.cargo/audit.toml +0 -10
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.env.example +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.gitattributes +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.gitignore +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.hypothesis/constants/32b327793848e7d8 +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.hypothesis/constants/67b0a8ccf18bf5d2 +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.hypothesis/constants/84828557b4ee7be4 +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.instructions.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.ipynb_checkpoints/Untitled-checkpoint.ipynb +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.qwen/settings.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.qwen/settings.json.orig +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/CHANGELOG.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/CNAME +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/Dockerfile +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/HyperStreamDB.png +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/LICENSE-APACHE +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/LICENSE-MIT +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/ROADMAP.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/RUN_COMPLIANCE_TESTS.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/STEERING.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/THIRDPARTY_NOTICES.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/Untitled.ipynb +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benches/bench_table.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benches/performance.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/BENCHMARK_REPORT.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/benchmark_charts.png +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/benchmark_results.csv +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/concurrent_queries_20260409_214245.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/concurrent_queries_20260409_214245.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_search_comparison_20260409_222607.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_search_comparison_20260409_222607.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_214355.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_214355.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_220418.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_220418.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_222053.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_222053.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_225907.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_225907.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/full_scan_baseline_20260409_222303.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/full_scan_baseline_20260409_222303.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/high_selectivity_filter_20260409_222302.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/high_selectivity_filter_20260409_222302.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/ingestion_comparison_20260409_222516.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/ingestion_comparison_20260409_222516.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_214428.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_214428.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_220450.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_220450.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_222131.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_222131.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_225938.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_225938.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_231713.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_231713.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_214501.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_214501.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_220524.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_220524.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_222204.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_222204.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_230010.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_230010.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/query_comparison_20260409_222541.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/query_comparison_20260409_222541.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/range_query_20260409_222302.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/range_query_20260409_222302.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/search_filtered_high_selectivity_20260409_214144.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/search_filtered_high_selectivity_20260409_214144.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/search_unfiltered_20260409_214028.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/search_unfiltered_20260409_214028.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/book.toml +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/build-connectors.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/build.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/check_iceberg_compliance.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/clippy.toml +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/deny.toml +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docker-compose-hive.yml +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docker-compose-minio-nessie.yml +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docker-compose.production.yml +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docker-compose.yml +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/.nojekyll +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/BENCHMARKING.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/COMPREHENSIVE_GUIDE.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/CONCURRENCY.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/CONFIGURATION.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/DORIS_OPTIMIZATION_PATTERNS.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/GPU_SETUP_GUIDE.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/ICEBERG_V2_V3_API.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/INSTALLATION.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/PGVECTOR_SQL_GUIDE.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/PYTHON_VECTOR_API.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/VECTOR_CONFIGURATION.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/api_reference.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/architecture.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/catalog_usage.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/index.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/integrations/README.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/integrations/java_jni.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/integrations/python.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/integrations/spark.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/integrations/trino.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/monitoring.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/requirements.txt +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/source/_static/HyperStreamDB.png +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/source/api/python.rst +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/source/api/rust.rst +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/source/conf.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/source/index.rst +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/source/roadmap.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/task_status.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/hive-config/hive-site.xml +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/marketing_site/index.html +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/marketing_site/styles.css +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/proptest-regressions/core/index/gpu.txt +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/proptest-regressions/core/sql/vector_literal.txt +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/proptest-regressions/core/sql/vector_udf.txt +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/pyproject.toml +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/python/hyperstreamdb/__init__.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/python/hyperstreamdb/embeddings.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/recovered_plan.txt +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/rust-toolchain.toml +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/scripts/fix_nb.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/scripts/split_table.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/scripts/update_cache.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/scripts/update_reader.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/scripts/update_schema_patch.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/scripts/update_schema_patch2.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/.bloop/bloop.settings.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/.bloop/spark-hyperstream-test.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/.bloop/spark-hyperstream.json +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/pom.xml +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/DefaultSource.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamPartition.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamPartitionReader.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamPartitionReaderFactory.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamScanBuilder.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamTable.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/test/java/com/hyperstreamdb/spark/SparkConnectorTest.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/bin/gateway.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/bin/hdb.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/bin/probe_datafusion.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/bin/setup_test_data.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/bin/verify_layered_indexing.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/cache.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/config.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/glue.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/hive.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/jdbc.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/nessie.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/rest.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/unity.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/clustering.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/embeddings.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/error.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/delete.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/iceberg_delete.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/schema.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/transform.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/value.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/writer.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/build_inverted.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/build_vector.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/cosine_distance.cu +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/hamming_distance.cu +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/inner_product.cu +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/jaccard_distance.cu +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/kmeans_assignment.cu +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/l1_distance.cu +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/l2_distance.cu +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/distance.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_ivf.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/annhdf5.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/api.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/dist.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/flatten.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/hnsw.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/prelude.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/test.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/ivf.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/memory.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/cosine_distance.metal +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/hamming_distance.metal +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/inner_product.metal +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/jaccard_distance.metal +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/kmeans_assignment.metal +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/l1_distance.metal +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/l2_distance.metal +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/cosine_distance.cl +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/hamming_distance.cl +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/inner_product.cl +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/jaccard_distance.cl +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/kmeans_assignment.cl +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/l1_distance.cl +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/l2_distance.cl +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/pq.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/tokenizer.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/turboquant.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/wgpu_kernel.wgsl +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/license.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/maintenance.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/manager/partition.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/manager.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/types.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/merge.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/metadata.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/nessie.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/planner/filter.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/planner/pruning.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/planner/vector_search.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/planner.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/puffin.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/query.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/reader/delete.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/reader/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/reader/scan.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/search/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/search/rrf.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/segment.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/literal/binary.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/literal/dense.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/literal/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/literal/sparse.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer/config.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer/index_join.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer/vector_search/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer/vector_search/plan_detection.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer/vector_search/plan_rewriter.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer/vector_search/sort_expr_parser.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/pgvector_rewriter.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/physical_plan/index_join.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/physical_plan/vector_merge.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/physical_plan/vector_scan.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/physical_plan.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/session.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/udf/aggregate.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/udf/distance.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/udf/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/udf/sparse.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/udf/transform.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_literal.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_operators.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_udf/aggregate.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_udf/distance.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_udf/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_udf/sparse.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_udf/transform.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_udf.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/storage.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/builder.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/fluent.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/index_config.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/primary_key.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/read.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/schema.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/state.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/stats.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/wal.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/enterprise/continuous_indexing.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/enterprise/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/index.rs.old +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/glue.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/hive.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/jdbc.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/nessie.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/rest.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/unity.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/manifest.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/schema.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/session.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/stats.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/table.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python_binding.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python_distance.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python_gpu_context.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/telemetry/metrics.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/telemetry/mod.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/telemetry/tracing.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/all_types_index_test.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/bin/generate_iceberg_manifests.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/bin/verify_iceberg_read_check.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/check_mmh3.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/data/download_nyc_taxi.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/data/generate_embeddings.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/data/generate_wikipedia.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/data/start_nessie.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/datafusion_rust_test.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/debug_murmur3.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/fuzz_murmur3.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/gpu_test_helpers.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/integration_test_hnsw_ivf_native.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/performance/README.md +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/prototype_merge.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/python/verify_docstrings.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/python/verify_fluent_api.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/python/verify_unified_ingest.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/schema_evolution_test.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/stability.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_all_algos.py +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_catalog_commit.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_compliance.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_delete_correctness.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_iceberg_python_delete.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_iceberg_rest.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_iceberg_rest_create.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_iceberg_rest_delete.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_iceberg_rest_remove_index.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_iceberg_rest_update.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_metadata_creation.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_mor_reads.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_mor_writes.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_partition_transforms.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_partitioned_writes.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_puffin_index.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_rest_updates.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_schema_compat.rs +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/.DS_Store +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/catalog/glue_catalog.properties +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/catalog/hyperstreamdb.properties +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/catalog/iceberg.properties +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/catalog/iceberg_hive.properties +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/catalog/memory.properties +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/catalog/postgres.properties +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/config.properties +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/entrypoint.sh +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/jvm.config +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/node.properties +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config.zip +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/pom.xml +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBColumnHandle.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBConnectorFactory.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBMetadata.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBPageSource.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBPageSourceProvider.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBPlugin.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBSplit.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBSplitManager.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBTableHandle.java +0 -0
- {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/test/java/com/hyperstreamdb/trino/TrinoConnectorTest.java +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# HyperStreamDB Admin CLI
|
|
2
|
+
|
|
3
|
+
`hyperstreamdb-admin` is the official administrative tooling for HyperStreamDB. It provides cluster operators with safe, easy-to-use commands to manage storage, optimize performance, and clean up historical data.
|
|
4
|
+
|
|
5
|
+
## Installation / Building
|
|
6
|
+
If you are compiling from source, the admin CLI is built alongside the main engine:
|
|
7
|
+
```bash
|
|
8
|
+
cargo build --release --bin hyperstreamdb-admin
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
The compiled binary will be located at `target/release/hyperstreamdb-admin`.
|
|
12
|
+
|
|
13
|
+
## Commands
|
|
14
|
+
|
|
15
|
+
### 1. `compact`
|
|
16
|
+
Over time, continuous ingestion can lead to fragmentation—creating hundreds or thousands of small data files (often called the "small files problem"). The `compact` command merges these small files into larger, optimized files. This significantly improves query performance by reducing metadata overhead and maximizing the efficiency of vectorized scans.
|
|
17
|
+
|
|
18
|
+
**Usage:**
|
|
19
|
+
```bash
|
|
20
|
+
hyperstreamdb-admin compact --uri <TABLE_URI> [OPTIONS]
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Options:**
|
|
24
|
+
- `--uri`, `-u`: **(Required)** The storage URI of the table you want to compact. (e.g., `file:///tmp/hdb`, `s3://my-bucket/table`)
|
|
25
|
+
- `--target-file-size`: **(Optional)** The ideal size for the compacted data files. The CLI accepts human-readable string values like `64MB`, `1GB`, `512K`. The default is `64MB`.
|
|
26
|
+
|
|
27
|
+
**Example:**
|
|
28
|
+
```bash
|
|
29
|
+
hyperstreamdb-admin compact --uri "s3://production-data/events_table" --target-file-size 128MB
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 2. `vacuum`
|
|
33
|
+
HyperStreamDB relies on Multi-Version Concurrency Control (MVCC) and copy-on-write semantics. As data is updated, deleted, or compacted, old files are unlinked from the active manifest but remain on disk to allow time-travel queries and safe rollback.
|
|
34
|
+
|
|
35
|
+
The `vacuum` command permanently deletes these unreferenced historical files to reclaim physical storage space.
|
|
36
|
+
|
|
37
|
+
> [!WARNING]
|
|
38
|
+
> Running vacuum is irreversible. You will not be able to time-travel to versions older than the retention limit once vacuum completes.
|
|
39
|
+
|
|
40
|
+
**Usage:**
|
|
41
|
+
```bash
|
|
42
|
+
hyperstreamdb-admin vacuum --uri <TABLE_URI> [OPTIONS]
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Options:**
|
|
46
|
+
- `--uri`, `-u`: **(Required)** The storage URI of the table you want to vacuum.
|
|
47
|
+
- `--retain-versions`: **(Optional)** The number of historical manifest versions to keep. Any unreferenced data file not tied to the kept versions will be permanently deleted. Default is `10`.
|
|
48
|
+
|
|
49
|
+
**Example:**
|
|
50
|
+
```bash
|
|
51
|
+
hyperstreamdb-admin vacuum --uri "s3://production-data/events_table" --retain-versions 5
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## E2E Testing
|
|
55
|
+
The CLI is strictly tested for regressions. You can run the administrative automated bash test locally using:
|
|
56
|
+
```bash
|
|
57
|
+
./tests/verify_admin_cli.sh
|
|
58
|
+
```
|
|
59
|
+
This test spins up a mock dataset, runs a compaction pass, and successfully vacuums the resulting orphaned files.
|
|
@@ -12,7 +12,7 @@ Before contributing, please read [STEERING.md](STEERING.md) for our development
|
|
|
12
12
|
|
|
13
13
|
### Prerequisites
|
|
14
14
|
|
|
15
|
-
- **Rust** (stable, 1.
|
|
15
|
+
- **Rust** (stable, 1.80+) — install via [rustup](https://rustup.rs/)
|
|
16
16
|
- **Python** (3.10–3.14) — for binding development and testing
|
|
17
17
|
- **Docker** — for integration tests against MinIO and Nessie
|
|
18
18
|
- **Cargo** and **maturin** — for building Python wheels
|
|
@@ -1305,9 +1305,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
|
|
|
1305
1305
|
|
|
1306
1306
|
[[package]]
|
|
1307
1307
|
name = "chacha20"
|
|
1308
|
-
version = "0.10.
|
|
1308
|
+
version = "0.10.1"
|
|
1309
1309
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1310
|
-
checksum = "
|
|
1310
|
+
checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81"
|
|
1311
1311
|
dependencies = [
|
|
1312
1312
|
"cfg-if",
|
|
1313
1313
|
"cpufeatures 0.3.0",
|
|
@@ -2709,6 +2709,17 @@ dependencies = [
|
|
|
2709
2709
|
"pin-project-lite",
|
|
2710
2710
|
]
|
|
2711
2711
|
|
|
2712
|
+
[[package]]
|
|
2713
|
+
name = "evmap"
|
|
2714
|
+
version = "11.0.0"
|
|
2715
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2716
|
+
checksum = "1b8874945f036109c72242964c1174cf99434e30cfa45bf45fedc983f50046f8"
|
|
2717
|
+
dependencies = [
|
|
2718
|
+
"hashbag",
|
|
2719
|
+
"left-right",
|
|
2720
|
+
"smallvec",
|
|
2721
|
+
]
|
|
2722
|
+
|
|
2712
2723
|
[[package]]
|
|
2713
2724
|
name = "fastrand"
|
|
2714
2725
|
version = "2.4.1"
|
|
@@ -2947,6 +2958,21 @@ dependencies = [
|
|
|
2947
2958
|
"slab",
|
|
2948
2959
|
]
|
|
2949
2960
|
|
|
2961
|
+
[[package]]
|
|
2962
|
+
name = "generator"
|
|
2963
|
+
version = "0.8.9"
|
|
2964
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2965
|
+
checksum = "b3b854b0e584ead1a33f18b2fcad7cf7be18b3875c78816b753639aa501513ae"
|
|
2966
|
+
dependencies = [
|
|
2967
|
+
"cc",
|
|
2968
|
+
"cfg-if",
|
|
2969
|
+
"libc",
|
|
2970
|
+
"log",
|
|
2971
|
+
"rustversion",
|
|
2972
|
+
"windows-link",
|
|
2973
|
+
"windows-result",
|
|
2974
|
+
]
|
|
2975
|
+
|
|
2950
2976
|
[[package]]
|
|
2951
2977
|
name = "generic-array"
|
|
2952
2978
|
version = "0.14.7"
|
|
@@ -3147,6 +3173,12 @@ dependencies = [
|
|
|
3147
3173
|
"zerocopy",
|
|
3148
3174
|
]
|
|
3149
3175
|
|
|
3176
|
+
[[package]]
|
|
3177
|
+
name = "hashbag"
|
|
3178
|
+
version = "0.1.13"
|
|
3179
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3180
|
+
checksum = "7040a10f52cba493ddb09926e15d10a9d8a28043708a405931fe4c6f19fac064"
|
|
3181
|
+
|
|
3150
3182
|
[[package]]
|
|
3151
3183
|
name = "hashbrown"
|
|
3152
3184
|
version = "0.12.3"
|
|
@@ -3484,7 +3516,7 @@ dependencies = [
|
|
|
3484
3516
|
|
|
3485
3517
|
[[package]]
|
|
3486
3518
|
name = "hyperstreamdb"
|
|
3487
|
-
version = "0.5.
|
|
3519
|
+
version = "0.5.4"
|
|
3488
3520
|
dependencies = [
|
|
3489
3521
|
"ahash",
|
|
3490
3522
|
"anyhow",
|
|
@@ -3524,7 +3556,8 @@ dependencies = [
|
|
|
3524
3556
|
"lazy_static",
|
|
3525
3557
|
"log",
|
|
3526
3558
|
"metal 0.27.0",
|
|
3527
|
-
"metrics",
|
|
3559
|
+
"metrics 0.23.1",
|
|
3560
|
+
"metrics-exporter-prometheus",
|
|
3528
3561
|
"moka",
|
|
3529
3562
|
"murmur3",
|
|
3530
3563
|
"num_cpus",
|
|
@@ -3864,9 +3897,9 @@ dependencies = [
|
|
|
3864
3897
|
|
|
3865
3898
|
[[package]]
|
|
3866
3899
|
name = "js-sys"
|
|
3867
|
-
version = "0.3.
|
|
3900
|
+
version = "0.3.103"
|
|
3868
3901
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3869
|
-
checksum = "
|
|
3902
|
+
checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102"
|
|
3870
3903
|
dependencies = [
|
|
3871
3904
|
"cfg-if",
|
|
3872
3905
|
"futures-util",
|
|
@@ -3899,6 +3932,17 @@ dependencies = [
|
|
|
3899
3932
|
"spin",
|
|
3900
3933
|
]
|
|
3901
3934
|
|
|
3935
|
+
[[package]]
|
|
3936
|
+
name = "left-right"
|
|
3937
|
+
version = "0.11.7"
|
|
3938
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3939
|
+
checksum = "0f0c21e4c8ff95f487fb34e6f9182875f42c84cef966d29216bf115d9bba835a"
|
|
3940
|
+
dependencies = [
|
|
3941
|
+
"crossbeam-utils",
|
|
3942
|
+
"loom",
|
|
3943
|
+
"slab",
|
|
3944
|
+
]
|
|
3945
|
+
|
|
3902
3946
|
[[package]]
|
|
3903
3947
|
name = "lexical-core"
|
|
3904
3948
|
version = "1.0.6"
|
|
@@ -4111,6 +4155,19 @@ version = "0.4.33"
|
|
|
4111
4155
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4112
4156
|
checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
|
|
4113
4157
|
|
|
4158
|
+
[[package]]
|
|
4159
|
+
name = "loom"
|
|
4160
|
+
version = "0.7.2"
|
|
4161
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4162
|
+
checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca"
|
|
4163
|
+
dependencies = [
|
|
4164
|
+
"cfg-if",
|
|
4165
|
+
"generator",
|
|
4166
|
+
"scoped-tls",
|
|
4167
|
+
"tracing",
|
|
4168
|
+
"tracing-subscriber",
|
|
4169
|
+
]
|
|
4170
|
+
|
|
4114
4171
|
[[package]]
|
|
4115
4172
|
name = "lru-slab"
|
|
4116
4173
|
version = "0.1.2"
|
|
@@ -4238,6 +4295,56 @@ dependencies = [
|
|
|
4238
4295
|
"portable-atomic",
|
|
4239
4296
|
]
|
|
4240
4297
|
|
|
4298
|
+
[[package]]
|
|
4299
|
+
name = "metrics"
|
|
4300
|
+
version = "0.24.6"
|
|
4301
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4302
|
+
checksum = "89550ee9f79e88fef3119de263694973a8adb26c21d75322164fb8c493039fe2"
|
|
4303
|
+
dependencies = [
|
|
4304
|
+
"portable-atomic",
|
|
4305
|
+
"rapidhash",
|
|
4306
|
+
]
|
|
4307
|
+
|
|
4308
|
+
[[package]]
|
|
4309
|
+
name = "metrics-exporter-prometheus"
|
|
4310
|
+
version = "0.18.3"
|
|
4311
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4312
|
+
checksum = "1db0d8f1fc9e62caebd0319e11eaec5822b0186c171568f0480b46a0137f9108"
|
|
4313
|
+
dependencies = [
|
|
4314
|
+
"base64 0.22.1",
|
|
4315
|
+
"evmap",
|
|
4316
|
+
"http-body-util",
|
|
4317
|
+
"hyper 1.10.1",
|
|
4318
|
+
"hyper-rustls 0.27.9",
|
|
4319
|
+
"hyper-util",
|
|
4320
|
+
"indexmap 2.14.0",
|
|
4321
|
+
"ipnet",
|
|
4322
|
+
"metrics 0.24.6",
|
|
4323
|
+
"metrics-util",
|
|
4324
|
+
"quanta",
|
|
4325
|
+
"rustls 0.23.41",
|
|
4326
|
+
"thiserror 2.0.18",
|
|
4327
|
+
"tokio",
|
|
4328
|
+
"tracing",
|
|
4329
|
+
]
|
|
4330
|
+
|
|
4331
|
+
[[package]]
|
|
4332
|
+
name = "metrics-util"
|
|
4333
|
+
version = "0.20.4"
|
|
4334
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4335
|
+
checksum = "96f8722f8562635f92f8ed992f26df0532266eb03d5202607c20c0d7e9745e13"
|
|
4336
|
+
dependencies = [
|
|
4337
|
+
"crossbeam-epoch",
|
|
4338
|
+
"crossbeam-utils",
|
|
4339
|
+
"hashbrown 0.16.1",
|
|
4340
|
+
"metrics 0.24.6",
|
|
4341
|
+
"quanta",
|
|
4342
|
+
"rand 0.9.4",
|
|
4343
|
+
"rand_xoshiro",
|
|
4344
|
+
"rapidhash",
|
|
4345
|
+
"sketches-ddsketch",
|
|
4346
|
+
]
|
|
4347
|
+
|
|
4241
4348
|
[[package]]
|
|
4242
4349
|
name = "mime"
|
|
4243
4350
|
version = "0.3.17"
|
|
@@ -5230,6 +5337,21 @@ version = "0.2.3"
|
|
|
5230
5337
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5231
5338
|
checksum = "5a651516ddc9168ebd67b24afd085a718be02f8858fe406591b013d101ce2f40"
|
|
5232
5339
|
|
|
5340
|
+
[[package]]
|
|
5341
|
+
name = "quanta"
|
|
5342
|
+
version = "0.12.6"
|
|
5343
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5344
|
+
checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7"
|
|
5345
|
+
dependencies = [
|
|
5346
|
+
"crossbeam-utils",
|
|
5347
|
+
"libc",
|
|
5348
|
+
"once_cell",
|
|
5349
|
+
"raw-cpuid",
|
|
5350
|
+
"wasi 0.11.1+wasi-snapshot-preview1",
|
|
5351
|
+
"web-sys",
|
|
5352
|
+
"winapi",
|
|
5353
|
+
]
|
|
5354
|
+
|
|
5233
5355
|
[[package]]
|
|
5234
5356
|
name = "quick-error"
|
|
5235
5357
|
version = "1.2.3"
|
|
@@ -5489,12 +5611,39 @@ dependencies = [
|
|
|
5489
5611
|
"rand_core 0.9.5",
|
|
5490
5612
|
]
|
|
5491
5613
|
|
|
5614
|
+
[[package]]
|
|
5615
|
+
name = "rand_xoshiro"
|
|
5616
|
+
version = "0.7.0"
|
|
5617
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5618
|
+
checksum = "f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41"
|
|
5619
|
+
dependencies = [
|
|
5620
|
+
"rand_core 0.9.5",
|
|
5621
|
+
]
|
|
5622
|
+
|
|
5492
5623
|
[[package]]
|
|
5493
5624
|
name = "range-alloc"
|
|
5494
5625
|
version = "0.1.5"
|
|
5495
5626
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5496
5627
|
checksum = "ca45419789ae5a7899559e9512e58ca889e41f04f1f2445e9f4b290ceccd1d08"
|
|
5497
5628
|
|
|
5629
|
+
[[package]]
|
|
5630
|
+
name = "rapidhash"
|
|
5631
|
+
version = "4.4.1"
|
|
5632
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5633
|
+
checksum = "b5e48930979c155e2f33aa36ab3119b5ee81332beb6482199a8ecd6029b80b59"
|
|
5634
|
+
dependencies = [
|
|
5635
|
+
"rustversion",
|
|
5636
|
+
]
|
|
5637
|
+
|
|
5638
|
+
[[package]]
|
|
5639
|
+
name = "raw-cpuid"
|
|
5640
|
+
version = "11.6.0"
|
|
5641
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5642
|
+
checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186"
|
|
5643
|
+
dependencies = [
|
|
5644
|
+
"bitflags 2.13.0",
|
|
5645
|
+
]
|
|
5646
|
+
|
|
5498
5647
|
[[package]]
|
|
5499
5648
|
name = "raw-window-handle"
|
|
5500
5649
|
version = "0.6.2"
|
|
@@ -5947,6 +6096,12 @@ dependencies = [
|
|
|
5947
6096
|
"windows-sys 0.61.2",
|
|
5948
6097
|
]
|
|
5949
6098
|
|
|
6099
|
+
[[package]]
|
|
6100
|
+
name = "scoped-tls"
|
|
6101
|
+
version = "1.0.1"
|
|
6102
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
6103
|
+
checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
|
|
6104
|
+
|
|
5950
6105
|
[[package]]
|
|
5951
6106
|
name = "scopeguard"
|
|
5952
6107
|
version = "1.2.0"
|
|
@@ -6169,6 +6324,12 @@ version = "1.0.3"
|
|
|
6169
6324
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
6170
6325
|
checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649"
|
|
6171
6326
|
|
|
6327
|
+
[[package]]
|
|
6328
|
+
name = "sketches-ddsketch"
|
|
6329
|
+
version = "0.3.1"
|
|
6330
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
6331
|
+
checksum = "0c6f73aeb92d671e0cc4dca167e59b2deb6387c375391bc99ee743f326994a2b"
|
|
6332
|
+
|
|
6172
6333
|
[[package]]
|
|
6173
6334
|
name = "skiplist"
|
|
6174
6335
|
version = "0.3.0"
|
|
@@ -7440,9 +7601,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
|
|
|
7440
7601
|
|
|
7441
7602
|
[[package]]
|
|
7442
7603
|
name = "wasm-bindgen"
|
|
7443
|
-
version = "0.2.
|
|
7604
|
+
version = "0.2.126"
|
|
7444
7605
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7445
|
-
checksum = "
|
|
7606
|
+
checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4"
|
|
7446
7607
|
dependencies = [
|
|
7447
7608
|
"cfg-if",
|
|
7448
7609
|
"once_cell",
|
|
@@ -7453,9 +7614,9 @@ dependencies = [
|
|
|
7453
7614
|
|
|
7454
7615
|
[[package]]
|
|
7455
7616
|
name = "wasm-bindgen-futures"
|
|
7456
|
-
version = "0.4.
|
|
7617
|
+
version = "0.4.76"
|
|
7457
7618
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7458
|
-
checksum = "
|
|
7619
|
+
checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d"
|
|
7459
7620
|
dependencies = [
|
|
7460
7621
|
"js-sys",
|
|
7461
7622
|
"wasm-bindgen",
|
|
@@ -7463,9 +7624,9 @@ dependencies = [
|
|
|
7463
7624
|
|
|
7464
7625
|
[[package]]
|
|
7465
7626
|
name = "wasm-bindgen-macro"
|
|
7466
|
-
version = "0.2.
|
|
7627
|
+
version = "0.2.126"
|
|
7467
7628
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7468
|
-
checksum = "
|
|
7629
|
+
checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1"
|
|
7469
7630
|
dependencies = [
|
|
7470
7631
|
"quote",
|
|
7471
7632
|
"wasm-bindgen-macro-support",
|
|
@@ -7473,9 +7634,9 @@ dependencies = [
|
|
|
7473
7634
|
|
|
7474
7635
|
[[package]]
|
|
7475
7636
|
name = "wasm-bindgen-macro-support"
|
|
7476
|
-
version = "0.2.
|
|
7637
|
+
version = "0.2.126"
|
|
7477
7638
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7478
|
-
checksum = "
|
|
7639
|
+
checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e"
|
|
7479
7640
|
dependencies = [
|
|
7480
7641
|
"bumpalo",
|
|
7481
7642
|
"proc-macro2",
|
|
@@ -7486,9 +7647,9 @@ dependencies = [
|
|
|
7486
7647
|
|
|
7487
7648
|
[[package]]
|
|
7488
7649
|
name = "wasm-bindgen-shared"
|
|
7489
|
-
version = "0.2.
|
|
7650
|
+
version = "0.2.126"
|
|
7490
7651
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7491
|
-
checksum = "
|
|
7652
|
+
checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24"
|
|
7492
7653
|
dependencies = [
|
|
7493
7654
|
"unicode-ident",
|
|
7494
7655
|
]
|
|
@@ -7508,9 +7669,9 @@ dependencies = [
|
|
|
7508
7669
|
|
|
7509
7670
|
[[package]]
|
|
7510
7671
|
name = "web-sys"
|
|
7511
|
-
version = "0.3.
|
|
7672
|
+
version = "0.3.103"
|
|
7512
7673
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7513
|
-
checksum = "
|
|
7674
|
+
checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141"
|
|
7514
7675
|
dependencies = [
|
|
7515
7676
|
"js-sys",
|
|
7516
7677
|
"wasm-bindgen",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "hyperstreamdb"
|
|
3
|
-
version = "0.5.
|
|
3
|
+
version = "0.5.4"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
license = "MIT AND Apache-2.0"
|
|
6
6
|
description = "HyperStreamDB - Serverless Index-Streaming Database with Overlay Indexing and Vector Search"
|
|
@@ -35,11 +35,14 @@ enterprise = []
|
|
|
35
35
|
python = ["dep:pyo3", "pyo3/extension-module", "dep:numpy", "dep:pythonize", "wgpu", "pollster", "cuda"]
|
|
36
36
|
java = ["dep:jni"]
|
|
37
37
|
proptest = []
|
|
38
|
+
observability = ["dep:metrics-exporter-prometheus"]
|
|
38
39
|
|
|
39
40
|
# GPU Acceleration Features
|
|
40
41
|
wgpu = ["dep:wgpu"]
|
|
41
42
|
pollster = ["dep:pollster"]
|
|
42
43
|
cuda = ["dep:cudarc"]
|
|
44
|
+
metrics-exporter-prometheus = ["dep:metrics-exporter-prometheus"]
|
|
45
|
+
|
|
43
46
|
|
|
44
47
|
[dependencies]
|
|
45
48
|
# core columnar memory format
|
|
@@ -134,6 +137,7 @@ regex = "1.10"
|
|
|
134
137
|
sha2 = "0.10"
|
|
135
138
|
wgpu = { version = "0.20.0", optional = true }
|
|
136
139
|
pollster = { version = "0.4.0", optional = true }
|
|
140
|
+
metrics-exporter-prometheus = { version = "0.18.3", optional = true }
|
|
137
141
|
|
|
138
142
|
[target.'cfg(not(target_os = "macos"))'.dependencies]
|
|
139
143
|
cudarc = { version = "0.13.0", features = ["driver", "nvrtc", "cuda-12000"], optional = true }
|
|
@@ -199,3 +203,5 @@ strip = "debuginfo" # Keep symbols for crash backtraces, strip DWARF fro
|
|
|
199
203
|
inherits = "release"
|
|
200
204
|
lto = "fat" # Cross-crate LTO for max performance (slower builds)
|
|
201
205
|
codegen-units = 1 # Single unit for LTO effectiveness
|
|
206
|
+
[profile.test]
|
|
207
|
+
debug = 0
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Implementation Plan: Elasticsearch-Like Search Engine Layer (Add-On Product)
|
|
2
|
+
|
|
3
|
+
This document outlines the strategy for validating HyperStreamDB's production readiness and building an Elasticsearch-compatible REST API wrapper.
|
|
4
|
+
|
|
5
|
+
The REST API is implemented as a **separate, optional add-on package (`hyperstreamdb-search`)** in the Cargo workspace. This ensures the core library remains lightweight, and users who only need library-level access or FFI bindings do not pull in HTTP dependencies.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Architectural Thesis: Cost-Efficiency & Serverless Over Low-Latency
|
|
10
|
+
|
|
11
|
+
* **Not In-Memory**: Elasticsearch keeps all segments and caches aggressively pinned in RAM to achieve sub-millisecond query execution. This makes it operationally expensive and hard to run in serverless environments.
|
|
12
|
+
* **Target Workload (Website / Doc Search)**: For website search, document indexing, and corporate knowledge bases, query response latencies of **50–200ms** are perfectly acceptable.
|
|
13
|
+
* **Object Storage Native**: By designing for website search, we can load index files (`.hnsw` and `.idx`) and Parquet row groups **on-demand** from object storage (like S3/MinIO) or local disk cache. This enables an extremely cheap, serverless, scale-to-zero operational model.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Step 1: Production Readiness & Quality Validation
|
|
18
|
+
|
|
19
|
+
Before implementing new features, we must establish a production-readiness baseline. This ensures the engine's core is secure, stable, and conforms to standard best practices.
|
|
20
|
+
|
|
21
|
+
### 1.1 Code Quality & Safety Checks
|
|
22
|
+
- **Security Audit**: Ensure `cargo audit` runs successfully in CI/CD with zero unignored vulnerabilities.
|
|
23
|
+
- **Static Analysis**: Enforce Clippy linting (`cargo clippy --all-targets --all-features`) with zero warnings or errors.
|
|
24
|
+
- **Formatting Standards**: Verify that all Rust files are styled per `cargo fmt`.
|
|
25
|
+
- **Code Test Coverage**: Ensure all Rust core unit and integration tests compile and run to completion (`cargo test --all-targets`).
|
|
26
|
+
- **Python Compatibility**: Run the full Python test suite (`pytest`) to ensure zero regressions in bindings, catalogs, and table reads/writes.
|
|
27
|
+
|
|
28
|
+
### 1.2 Documentation Readiness Check
|
|
29
|
+
- **API Reference Compilation**: Verify that `cargo doc --no-deps` builds cleanly without warnings or broken intra-doc links.
|
|
30
|
+
- **Getting Started Guide**: Ensure [GETTING_STARTED.md](GETTING_STARTED.md) is up-to-date with current APIs and dependency instructions.
|
|
31
|
+
- **API Coverage**: Confirm all public catalog methods, index structures, and configuration keys are fully documented.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Step 2: Lexical Processing & Search Enhancements (Crate: `hyperstreamdb`)
|
|
36
|
+
|
|
37
|
+
To support Elasticsearch-like search capability, we implement base lexical processing helpers within the core library.
|
|
38
|
+
|
|
39
|
+
### 2.1 Text Analyzers & Tokenizers
|
|
40
|
+
- **New Module**: `src/core/index/analyzer.rs`
|
|
41
|
+
- **Features**:
|
|
42
|
+
- Lowercase filter.
|
|
43
|
+
- Standard whitespace/punctuation tokenizer.
|
|
44
|
+
- Basic english stop-word filter.
|
|
45
|
+
|
|
46
|
+
### 2.2 BM25 Relevance Scoring
|
|
47
|
+
- **Implementation**: Calculate Okapi BM25 scores during inverted index lookup:
|
|
48
|
+
$$\text{Score}(D, Q) = \sum_{i=1}^{n} \text{IDF}(q_i) \cdot \frac{f(q_i, D) \cdot (k_1 + 1)}{f(q_i, D) + k_1 \cdot \left(1 - b + b \cdot \frac{|D|}{\text{avgdl}}\right)}$$
|
|
49
|
+
- **Integration**: Integrate the scoring mechanism with the search planner to rank results.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Step 3: The `hyperstreamdb-search` Add-On Crate
|
|
54
|
+
|
|
55
|
+
Create a new package `hyperstreamdb-search` in the Cargo workspace root.
|
|
56
|
+
|
|
57
|
+
### 3.1 Cargo Setup
|
|
58
|
+
- **New Crate**: [hyperstreamdb-search/Cargo.toml]
|
|
59
|
+
- **Dependencies**: `hyperstreamdb`, `axum`, `tower`, `tower-http`, `tokio`, `serde`, `serde_json`.
|
|
60
|
+
|
|
61
|
+
### 3.2 Document Ingestion & Schema Evolution
|
|
62
|
+
- **Endpoint**: `POST /<index_name>/_doc`
|
|
63
|
+
- **Dynamic Schema-Mapping**: Parse arbitrary JSON documents, infer field datatypes, and dynamically evolve the target Iceberg schema (without rewriting existing Parquet data).
|
|
64
|
+
- **Buffered Commits**: Route incoming documents to the active Memtable and Write-Ahead Log (WAL) to ensure low write latency.
|
|
65
|
+
|
|
66
|
+
### 3.3 Search API
|
|
67
|
+
- **Endpoint**: `POST /<index_name>/_search`
|
|
68
|
+
- **Query Parser**: Parse JSON-based query DSL matching standard search criteria:
|
|
69
|
+
- `match` (lexical search using inverted index + BM25).
|
|
70
|
+
- `knn` (HNSW vector search).
|
|
71
|
+
- `filter` (roaring bitmap scalar pre-filtering).
|
|
72
|
+
- **On-Demand Loading**: Fetch the HNSW and inverted indexes from S3/MinIO on-demand, caching them locally in temp storage for future requests.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Step 4: Verification & Benchmarking
|
|
77
|
+
|
|
78
|
+
### 4.1 Automated Validation
|
|
79
|
+
- Implement a test suite in `hyperstreamdb-search/tests/test_search_api.py` that verifies:
|
|
80
|
+
- Document ingestion via HTTP `POST`.
|
|
81
|
+
- Dynamic table creation and schema evolution.
|
|
82
|
+
- Hybrid lexical + vector search queries.
|
|
83
|
+
|
|
84
|
+
### 4.2 Benchmark Analysis
|
|
85
|
+
- Measure ingestion throughput (docs/sec) and search latency (p95/p99) against a baseline local Elasticsearch instance, targeting the 50–200ms latency envelope.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Step 5: Positioning: Strengths & Weaknesses vs. Elasticsearch
|
|
90
|
+
|
|
91
|
+
To effectively market this add-on, we must clearly define how it compares to Elasticsearch (ES) so users understand when to choose HyperStreamDB-Search.
|
|
92
|
+
|
|
93
|
+
### 5.1 Strengths (Competitive Advantages)
|
|
94
|
+
1. **Ultra-Low TCO (Total Cost of Ownership)**:
|
|
95
|
+
* *Elasticsearch*: Requires expensive instance groups with huge memory allocations (JVM heaps) and fast, hot SSD storage.
|
|
96
|
+
* *HyperStreamDB*: Built for serverless object storage (S3/MinIO). When idle, it costs nothing. Index files (`.hnsw` and `.idx`) are fetched on-demand and cached locally.
|
|
97
|
+
2. **Open Data Lakehouse Integration**:
|
|
98
|
+
* *Elasticsearch*: Uses a proprietary data format. Getting data out for analysis requires heavy ETLs or expensive scroll APIs.
|
|
99
|
+
* *HyperStreamDB*: Underpinned by Apache Iceberg and Parquet. Other tools (DuckDB, Trino, Spark) can query the exact same files directly in the data lake without moving data.
|
|
100
|
+
3. **Dynamic Schema Evolution**:
|
|
101
|
+
* *Elasticsearch*: Changing mapping types or structures often requires creating a new index and running a resource-heavy `_reindex` job.
|
|
102
|
+
* *HyperStreamDB*: Inherits Iceberg's native schema evolution, allowing column additions, drops, and renaming instantly.
|
|
103
|
+
4. **GPU-Accelerated Hybrid Search**:
|
|
104
|
+
* *Elasticsearch*: Vector search runs on standard JVM threads.
|
|
105
|
+
* *HyperStreamDB*: Native vector indexing with SIMD/GPU acceleration for low-cost, high-scale HNSW execution.
|
|
106
|
+
|
|
107
|
+
### 5.2 Weaknesses (Where ES Wins & How to Position It)
|
|
108
|
+
1. **Sub-Millisecond Query Latency**:
|
|
109
|
+
* *Elasticsearch*: Sub-5ms response times due to aggressive in-memory caching.
|
|
110
|
+
* *HyperStreamDB*: 50–200ms response times due to S3-native fetch overhead.
|
|
111
|
+
* *Positioning*: Position HyperStreamDB-Search for **website search, document catalogs, and log archives** where 50–200ms is imperceptible to users, but the 90% hosting cost reduction is highly compelling.
|
|
112
|
+
2. **Ecosystem & Dashboarding**:
|
|
113
|
+
* *Elasticsearch*: Has mature Kibana integration for visualization and dashboarding.
|
|
114
|
+
* *HyperStreamDB*: No proprietary visualization frontend.
|
|
115
|
+
* *Leveraging Grafana, Prometheus & Apache Superset*:
|
|
116
|
+
- **Prometheus Metrics Endpoint**: The `hyperstreamdb-search` REST server will expose a `/metrics` endpoint (via the `prometheus` crate, already a dependency) providing operational telemetry: query latency histograms, ingestion throughput counters, index cache hit rates, and active connection gauges.
|
|
117
|
+
- **Grafana + Prometheus Stack**: Grafana natively scrapes Prometheus endpoints, giving operators real-time operational dashboards (query p95/p99, error rates, ingestion backpressure) out of the box with zero custom code.
|
|
118
|
+
- **Grafana via DuckDB / Trino (Data Dashboards)**: For data-level dashboards, Grafana connects to DuckDB and Trino. Since our tables are standard Iceberg, Grafana can query and visualize HyperStreamDB data with full SQL support.
|
|
119
|
+
- **Apache Superset**: The premier open-source BI tool for data lakes natively supports Trino, Spark, and DuckDB, offering a robust Kibana-like log viewing and dashboarding experience.
|
|
120
|
+
- **Elasticsearch API Compatibility**: By ensuring our REST API matches standard Elasticsearch query endpoints, users can configure **Grafana's built-in Elasticsearch datasource** to query HyperStreamDB directly, providing zero-friction dashboard reuse.
|
|
121
|
+
|