From 04bbfe066119a3400779ba48d402cac3134bdbe2 Mon Sep 17 00:00:00 2001 From: melbourne2991 <4619280+melbourne2991@users.noreply.github.com> Date: Sat, 10 Feb 2024 06:05:57 +1100 Subject: [PATCH] Update rust version to 1.75.0 (#4372) * Update rust version to 1.75.0 (#4367) * Use a pinned hasher to prevent changes between Rust versions --------- Co-authored-by: Will Leach --- quickwit/Cargo.lock | 1 + quickwit/quickwit-common/Cargo.toml | 1 + quickwit/quickwit-common/src/rendezvous_hasher.rs | 8 ++++---- quickwit/rust-toolchain.toml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index 11ec03d7f53..a80051cabc3 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -5616,6 +5616,7 @@ dependencies = [ "regex", "serde", "serde_json", + "siphasher", "tempfile", "thiserror", "tokio", diff --git a/quickwit/quickwit-common/Cargo.toml b/quickwit/quickwit-common/Cargo.toml index 16cd9903525..968e17a1f37 100644 --- a/quickwit/quickwit-common/Cargo.toml +++ b/quickwit/quickwit-common/Cargo.toml @@ -31,6 +31,7 @@ prometheus = { workspace = true } rand = { workspace = true } regex = { workspace = true } serde = { workspace = true } +siphasher = { workspace = true } tempfile = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true } diff --git a/quickwit/quickwit-common/src/rendezvous_hasher.rs b/quickwit/quickwit-common/src/rendezvous_hasher.rs index c93797a197c..3d3c032aeaf 100644 --- a/quickwit/quickwit-common/src/rendezvous_hasher.rs +++ b/quickwit/quickwit-common/src/rendezvous_hasher.rs @@ -18,14 +18,14 @@ // along with this program. If not, see . use std::cmp::Reverse; -use std::collections::hash_map::DefaultHasher; use std::hash::{Hash, Hasher}; +use siphasher::sip::SipHasher; /// Computes the affinity of a node for a given `key`. /// A higher value means a higher affinity. /// This is the `rendezvous hash`. pub fn node_affinity(node: T, key: &U) -> u64 { - let mut state = DefaultHasher::new(); + let mut state = SipHasher::new(); key.hash(&mut state); node.hash(&mut state); state.finish() @@ -54,7 +54,7 @@ mod tests { let socket3 = test_socket_addr(3); let socket4 = test_socket_addr(4); - let mut socket_set1 = vec![socket1, socket2, socket3, socket4]; + let mut socket_set1 = vec![socket4, socket3, socket1, socket2]; sort_by_rendez_vous_hash(&mut socket_set1, "key"); let mut socket_set2 = vec![socket1, socket2, socket4]; @@ -63,7 +63,7 @@ mod tests { let mut socket_set3 = vec![socket1, socket4]; sort_by_rendez_vous_hash(&mut socket_set3, "key"); - assert_eq!(socket_set1, &[socket1, socket3, socket2, socket4]); + assert_eq!(socket_set1, &[socket1, socket2, socket3, socket4]); assert_eq!(socket_set2, &[socket1, socket2, socket4]); assert_eq!(socket_set3, &[socket1, socket4]); } diff --git a/quickwit/rust-toolchain.toml b/quickwit/rust-toolchain.toml index 7a07931dc29..0edc72d7f71 100644 --- a/quickwit/rust-toolchain.toml +++ b/quickwit/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.72" +channel = "1.75" components = ["cargo", "clippy", "rustfmt", "rust-docs"]