mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-08-28 10:54:59 +00:00
add clusters to MutexCheck test, fix silly bug revealed by doing so
The merge lists behavior was flawed in that it would drop one item from the list per merge, which means that, with high replication and low number of distinct items, it could even produce an empty list. The actual "is there anything wrong" logic is fine, but the list of clashing values set for a given record is not. Unfortunately this also doubles the time the test takes, to 21 seconds on MacOS. OW.
This commit is contained in:
parent
0d568b0d52
commit
72444f3b87
2 changed files with 11 additions and 5 deletions
8
api.go
8
api.go
|
|
@ -2692,9 +2692,9 @@ func mergeIDLists(dst []uint64, src []uint64) []uint64 {
|
|||
return dst[i] < dst[j]
|
||||
})
|
||||
// dedup.
|
||||
n := 0
|
||||
n := 1
|
||||
prev := dst[0]
|
||||
for i := 0; i < len(dst); i++ {
|
||||
for i := 1; i < len(dst); i++ {
|
||||
if dst[i] != prev {
|
||||
dst[n] = dst[i]
|
||||
n++
|
||||
|
|
@ -2712,9 +2712,9 @@ func mergeKeyLists(dst []string, src []string) []string {
|
|||
return dst[i] < dst[j]
|
||||
})
|
||||
// dedup.
|
||||
n := 0
|
||||
n := 1
|
||||
prev := dst[0]
|
||||
for i := 0; i < len(dst); i++ {
|
||||
for i := 1; i < len(dst); i++ {
|
||||
if dst[i] != prev {
|
||||
dst[n] = dst[i]
|
||||
n++
|
||||
|
|
|
|||
|
|
@ -860,7 +860,13 @@ type mutexCheckField struct {
|
|||
}
|
||||
|
||||
func TestAPI_MutexCheck(t *testing.T) {
|
||||
c := test.MustRunCluster(t, 3)
|
||||
c := test.MustNewCluster(t, 3)
|
||||
for _, c := range c.Nodes {
|
||||
c.Config.Cluster.ReplicaN = 2
|
||||
}
|
||||
if err := c.Start(); err != nil {
|
||||
t.Fatalf("starting cluster: %v", err)
|
||||
}
|
||||
defer c.Close()
|
||||
|
||||
m0 := c.GetNode(0)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue