tisonkun opened a new pull request, #299: URL: https://github.com/apache/datasketches-rust/pull/299
## Summary This draft implements the rough consensus from the TCK discussion for cross-project review. - Add Count-Min serial version 2. Derive row seeds as `XXH64(row_index.to_le_bytes(), base_seed)` and use XXH64 for item hashes. - Map version 2 item hashes to buckets with `(hash >> 1) % num_buckets`. - Preserve the legacy Rust version 1 hash path when reading, updating, and reserializing old images. - Reject merges between different serial versions and document the remaining cross-language version 1 limitations. - Add independently computed version 2 known-answer vectors and legacy Rust version 1 regression coverage. ## Compatibility New sketches serialize as version 2. Legacy Rust version 1 images remain readable and retain version 1 when reserialized, so their counters are not mislabeled as using the new hash scheme. Version 1 images from other implementations remain unreliable for queries, updates, and merges because the image does not identify their legacy row-seed derivation. Existing C++ version 1 snapshots continue to be covered for deserialization and byte round-tripping. Cross-language version 2 TCK snapshots and byte comparisons still need to be added after the format details are agreed across implementations. Refs: https://github.com/apache/datasketches-tck/discussions/18 Refs: https://github.com/apache/datasketches-rust/issues/297 ## Validation - `cargo x check` - `cargo x prepare-testdata` - `cargo x test` - `cargo x lint` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
