diff --git a/go.mod b/go.mod
index 0ef6189c7e0738f7589294e683b1480082273430..96b990feab7fb2f358230cdccd3d002452cae869 100644
--- a/go.mod
+++ b/go.mod
@@ -18,7 +18,7 @@ require (
 	github.com/google/btree v1.0.1
 	github.com/google/gofuzz v1.2.0
 	github.com/lni/goutils v1.3.0
-	github.com/matrixorigin/matrixcube v0.3.1-0.20220406054210-215b778d2f95
+	github.com/matrixorigin/matrixcube v0.3.1-0.20220511071845-cfc4bac02bb4
 	github.com/matrixorigin/simdcsv v0.0.0-20210926114300-591bf748a770
 	github.com/panjf2000/ants/v2 v2.4.6
 	github.com/pierrec/lz4 v2.6.1+incompatible
diff --git a/go.sum b/go.sum
index d06fac19b25b93e5978f1c7ae1b73f7555b6df42..73eb24c5ee1bbaa3b0048665c030072455a2b6f6 100644
--- a/go.sum
+++ b/go.sum
@@ -414,8 +414,8 @@ github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czP
 github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
 github.com/matrixorigin/etcd/raft/v3 v3.5.1-0.20210824022435-0203115049c2 h1:s7CQEsRxL8+/sAPW23uIqpwR+M8Aje81AH6w3/ZkxQw=
 github.com/matrixorigin/etcd/raft/v3 v3.5.1-0.20210824022435-0203115049c2/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc=
-github.com/matrixorigin/matrixcube v0.3.1-0.20220406054210-215b778d2f95 h1:ijtumZhWxbpJW2pe6BQpjyt5EHZsWwRr4BFUCKDpH7o=
-github.com/matrixorigin/matrixcube v0.3.1-0.20220406054210-215b778d2f95/go.mod h1:la08nf8VKIcYmAH/uc/stLiOLzwUJUXluFpaAbfIq+A=
+github.com/matrixorigin/matrixcube v0.3.1-0.20220511071845-cfc4bac02bb4 h1:dRHX6Z7DzZ2nNaunhXWVAnKIxWOhpDmVUvsGnHiNxn0=
+github.com/matrixorigin/matrixcube v0.3.1-0.20220511071845-cfc4bac02bb4/go.mod h1:la08nf8VKIcYmAH/uc/stLiOLzwUJUXluFpaAbfIq+A=
 github.com/matrixorigin/simdcsv v0.0.0-20210926114300-591bf748a770 h1:apc228jeCtUvvfkaydzJygk1jdH8y+THma2o73Yv4Vg=
 github.com/matrixorigin/simdcsv v0.0.0-20210926114300-591bf748a770/go.mod h1:A7O+LRuZcr/BbOLsMzM/q69ZmoLENUMpptYG0pPzTFQ=
 github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
diff --git a/pkg/vm/driver/aoe/storage.go b/pkg/vm/driver/aoe/storage.go
index 06ccd938a40db80ecb2f385bcada01a8576ef0fa..443e49198dd058ba4e0f349521cece421f647f0c 100644
--- a/pkg/vm/driver/aoe/storage.go
+++ b/pkg/vm/driver/aoe/storage.go
@@ -115,16 +115,7 @@ func (s *Storage) adjustFeature() {
 
 //Stats returns the stats of the Storage
 func (s *Storage) Stats() stats.Stats {
-	// https://github.com/matrixorigin/matrixone/issues/2447
-	// TODO: Implement a method with copy semantics for stats.Stats.
-	//       Avoid race condition via `atomic` primitive.
-	return stats.Stats{
-		WrittenKeys:  atomic.LoadUint64(&s.stats.WrittenKeys),
-		WrittenBytes: atomic.LoadUint64(&s.stats.WrittenBytes),
-		ReadKeys:     atomic.LoadUint64(&s.stats.ReadKeys),
-		ReadBytes:    atomic.LoadUint64(&s.stats.ReadBytes),
-		SyncCount:    atomic.LoadUint64(&s.stats.SyncCount),
-	}
+	return s.stats.Copy()
 }
 
 func (s *Storage) Feature() storage.Feature {