VOL-1243: Added logic for thread safety
- Thread safety was added at the proxy level
- Refactored the test init in a base_test structure
- Fixed issue with writing to kv
- Added profiling for locking period
Amendments:
- Comment out a cleanup statement causing KV corruption (as per VOL-1293)
- Added missing license
Change-Id: Id6658270dbb8b738abeef9e9e1d349dce36501bc
diff --git a/db/model/profiling.go b/db/model/profiling.go
index 1f97839..b93d2fc 100644
--- a/db/model/profiling.go
+++ b/db/model/profiling.go
@@ -27,6 +27,8 @@
InMemoryModelCount int
InMemoryProcessTime float64
DatabaseStoreTime float64
+ InMemoryLockTime float64
+ InMemoryLockCount int
}
var profiling_instance *profiling
@@ -54,6 +56,22 @@
p.DatabaseStoreTime += period
}
+func (p *profiling) AddToInMemoryLockTime(period float64) {
+ p.InMemoryLockTime += period
+ p.InMemoryLockCount += 1
+}
+
+func (p *profiling) Reset() {
+ p.DatabaseRetrieveTime = 0
+ p.DatabaseRetrieveCount = 0
+ p.InMemoryModelTime = 0
+ p.InMemoryModelCount = 0
+ p.InMemoryProcessTime = 0
+ p.DatabaseStoreTime = 0
+ p.InMemoryLockTime = 0
+ p.InMemoryLockCount = 0
+}
+
func (p *profiling) Report() {
log.Infof("[ Profiling Report ]")
log.Infof("Database Retrieval : %f", p.DatabaseRetrieveTime)
@@ -62,5 +80,8 @@
log.Infof("In-Memory Modeling : %f", p.InMemoryModelTime)
log.Infof("In-Memory Modeling Count: %d", p.InMemoryModelCount)
log.Infof("Avg In-Memory Modeling : %f", p.InMemoryModelTime/float64(p.InMemoryModelCount))
+ log.Infof("In-Memory Locking : %f", p.InMemoryLockTime)
+ log.Infof("In-Memory Locking Count: %d", p.InMemoryLockCount)
+ log.Infof("Avg In-Memory Locking : %f", p.InMemoryLockTime/float64(p.InMemoryLockCount))
}