From c40e55a65e70f9a2850775213230732890a0c105 Mon Sep 17 00:00:00 2001 From: lostluck <13907733+lostluck@users.noreply.github.com> Date: Wed, 19 Jan 2022 19:02:15 -0800 Subject: [PATCH 1/2] [BEAM-13699] Replace fnv with maphash. --- sdks/go/pkg/beam/core/runtime/exec/hash.go | 4 ++-- sdks/go/pkg/beam/core/runtime/exec/hash_test.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdks/go/pkg/beam/core/runtime/exec/hash.go b/sdks/go/pkg/beam/core/runtime/exec/hash.go index db2d0b612bc5..bdc78b87a971 100644 --- a/sdks/go/pkg/beam/core/runtime/exec/hash.go +++ b/sdks/go/pkg/beam/core/runtime/exec/hash.go @@ -19,7 +19,7 @@ import ( "encoding/binary" "fmt" "hash" - "hash/fnv" + "hash/maphash" "math" "reflect" @@ -36,7 +36,7 @@ type elementHasher interface { func makeElementHasher(c *coder.Coder, wc *coder.WindowCoder) elementHasher { // TODO(lostluck): move to a faster hashing library once we can take dependencies easily. - hasher := fnv.New64a() + hasher := &maphash.Hash{} we := MakeWindowEncoder(wc) switch c.Kind { case coder.Bytes: diff --git a/sdks/go/pkg/beam/core/runtime/exec/hash_test.go b/sdks/go/pkg/beam/core/runtime/exec/hash_test.go index 7d2c3deef145..528dfd07baaf 100644 --- a/sdks/go/pkg/beam/core/runtime/exec/hash_test.go +++ b/sdks/go/pkg/beam/core/runtime/exec/hash_test.go @@ -18,7 +18,7 @@ package exec import ( "encoding/json" "fmt" - "hash/fnv" + "hash/maphash" "reflect" "strings" "testing" @@ -32,7 +32,7 @@ import ( func BenchmarkPrimitives(b *testing.B) { var value FullValue - myHash := fnv.New64a() + myHash := &maphash.Hash{} wfn := window.NewGlobalWindows() we := MakeWindowEncoder(wfn.Coder()) b.Run("int", func(b *testing.B) { From 83fb3b7601f04a48784f9ca5d394388146ea9fcc Mon Sep 17 00:00:00 2001 From: lostluck <13907733+lostluck@users.noreply.github.com> Date: Thu, 20 Jan 2022 07:56:07 -0800 Subject: [PATCH 2/2] rm comment --- sdks/go/pkg/beam/core/runtime/exec/hash.go | 1 - 1 file changed, 1 deletion(-) diff --git a/sdks/go/pkg/beam/core/runtime/exec/hash.go b/sdks/go/pkg/beam/core/runtime/exec/hash.go index bdc78b87a971..70fbfa0b0f9d 100644 --- a/sdks/go/pkg/beam/core/runtime/exec/hash.go +++ b/sdks/go/pkg/beam/core/runtime/exec/hash.go @@ -35,7 +35,6 @@ type elementHasher interface { } func makeElementHasher(c *coder.Coder, wc *coder.WindowCoder) elementHasher { - // TODO(lostluck): move to a faster hashing library once we can take dependencies easily. hasher := &maphash.Hash{} we := MakeWindowEncoder(wc) switch c.Kind {