Commit be4381e1 authored by Sandeep S. Shewalkar's avatar Sandeep S. Shewalkar
Browse files

Lazy writer

ForceSaveDataToFDB method commented
parent 133b956b
Branches
1 merge request!25Lazy writer
Showing with 0 additions and 49 deletions
package dalhelper
import (
"encoding/json"
"sync"
"time"
......@@ -302,53 +300,6 @@ func (lfd *LazyFDPHelper) PurgeCache() {
lazyMutex.Unlock()
}
// ForceSaveDataToFDB this method saves data to fdb forcefully and put the object inside cache
func (lfd *LazyFDPHelper) ForceSaveDataToFDB(identifier string) {
// Fetch All Rows and then save into db
cachedObjectList := lfd.gc.GetALL()
for item := range cachedObjectList {
//TODO: catch errors
cachedObject, getError := lfd.gc.Get(item)
if getError != nil {
logginghelper.LogError("error occured while getting ", item, " from gcache")
}
cachedObjectActual, _ := cachedObject.(LazyCacheObject)
if cachedObjectActual.Identifier == identifier {
cachedObjectActual.IsLocked = true
saveDataToFDB(cachedObjectActual.FileName, cachedObjectActual.InterfaceData)
cachedObjectActual.ChangeCount = 0
cachedObjectActual.IsLocked = false
lazyMutex.Lock()
lfd.DISK_WRITE_COUNT++
lazyMutex.Unlock()
// get data from data base and it inside cache
dataFromFdb, getError := GetDataFromFDB(cachedObjectActual.FileName)
if getError != nil {
logginghelper.LogError("error occured while fetching data from database for file : ", cachedObjectActual.FileName, getError)
// in case of error, i.e. if data fetching failed, remove key from cache
lfd.gc.Remove(cachedObjectActual.FileName)
} else {
var interfaceData interface{}
unmarshalError := json.Unmarshal(dataFromFdb, &interfaceData)
if unmarshalError != nil {
logginghelper.LogError("error occured while unmarshalling data of file : ", cachedObjectActual.FileName, unmarshalError)
lfd.gc.Set(cachedObjectActual.FileName, cachedObjectActual)
} else {
cachedObjectActual.InterfaceData = interfaceData
lfd.gc.Set(cachedObjectActual.FileName, cachedObjectActual)
}
}
}
}
}
// =================================== > Lazywriter for appending data to file < ============================================
// StartProcessForAppend StartProcessForAppend
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment