quexer
December 3, 2015, 9:22am
1
hi,
My program got “Cluster key mismatch” when doing “ScanAll” operation.
How can I fix this?
the code snippet is
ac.ScanAll(nil, "ns", "set")
and stack trace is
2015/12/03 16:53:48 [fatal]Cluster key mismatch
panic: [fatal]Cluster key mismatch
goroutine 1 [running]:
log.Panic(0xc820045be8, 0x2, 0x2)
/go/1.5.1/libexec/src/log/log.go:320 +0xc1
main.chk(0x7fcc74c6f028, 0xc8203ae020)
/go/src/xxx/counter/main.go:293 +0x13a
main.scan(0xc820112630, 0x493e0)
go/src/xxx/counter/main.go:139 +0x588
main.main()
/go/src/xxx/counter/main.go:55 +0x2bd
goroutine 17 [select]:
github.com/aerospike/aerospike-client-go.(*Cluster).clusterBoss(0xc8200bc400, 0xc82007e690)
/go/src/github.com/aerospike/aerospike-client-go/cluster.go:115 +0x2b4
created by github.com/aerospike/aerospike-client-go.NewCluster
/go/src/github.com/aerospike/aerospike-client-go/cluster.go:97 +0x622
Thanks!
Which version of the Server/Client are you using?
quexer
December 4, 2015, 3:56am
3
server version: 3.6.0
storage config: memory + raw ssd
golang client: 1.7
It keep throwing “Cluster key mismatch” error when sever is in migration
after migration, the error disaapears.
By default, ScanPolicy.FailOnClusterChange
is set to true
, which causes the scan to fail on migrations. You can set it to false
to avoid this, but may miss some newer records, or get duplicate data back.
You can also set the ScanPolicy.WaitUntilMigrationsAreOver
to true
, though this would wait until the migrations are over before it starts the scan.
1 Like
Hi,
I am using Java Client: 3.1.8
I don’t see a flag of ScanPolicy.WaitUntilMigrationsAreOver. Is it only in golang client? And if yes, do you plan to add it to the Java Client too?
Yes it is only a Go client feature. I’ll pass your request on to the Java client dev to add support.