|
|
@@ -53,6 +53,7 @@ func TestMetricDbSizeDefrag(t *testing.T) {
|
|
|
numPuts := 25 // large enough to write more than 1 page
|
|
|
putreq := &pb.PutRequest{Key: []byte("k"), Value: make([]byte, 4096)}
|
|
|
for i := 0; i < numPuts; i++ {
|
|
|
+ time.Sleep(10 * time.Millisecond) // to execute multiple backend txn
|
|
|
if _, err := kvc.Put(context.TODO(), putreq); err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
@@ -61,6 +62,7 @@ func TestMetricDbSizeDefrag(t *testing.T) {
|
|
|
// wait for backend txn sync
|
|
|
time.Sleep(500 * time.Millisecond)
|
|
|
|
|
|
+ expected := numPuts * len(putreq.Value)
|
|
|
beforeDefrag, err := clus.Members[0].Metric("etcd_debugging_mvcc_db_total_size_in_bytes")
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
@@ -69,7 +71,7 @@ func TestMetricDbSizeDefrag(t *testing.T) {
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
- if expected := numPuts * len(putreq.Value); bv < expected {
|
|
|
+ if bv < expected {
|
|
|
t.Fatalf("expected db size greater than %d, got %d", expected, bv)
|
|
|
}
|
|
|
beforeDefragInUse, err := clus.Members[0].Metric("etcd_debugging_mvcc_db_total_size_in_use_in_bytes")
|
|
|
@@ -80,8 +82,8 @@ func TestMetricDbSizeDefrag(t *testing.T) {
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
- if biu != bv {
|
|
|
- t.Fatalf("when db size is growing, db size (%d) and db size in use (%d) is expected to be equal", bv, biu)
|
|
|
+ if biu < expected {
|
|
|
+ t.Fatalf("expected db size in use is greater than %d, got %d", expected, biu)
|
|
|
}
|
|
|
|
|
|
// clear out historical keys, in use bytes should free pages
|