2022-10-23 13:08:06 +00:00
|
|
|
package database
|
|
|
|
|
|
|
|
const (
|
|
|
|
CacheName = "memcache"
|
|
|
|
//MemcacheFmt = "file:%s?mode=memory&cache=shared"
|
|
|
|
//BufferFmt = "file:%s?mode=memory&cache=shared"
|
|
|
|
DBTypeInMemoryDSN = "file:%s?mode=memory&cache=shared"
|
|
|
|
DBTypeCacheDSN = DBTypeInMemoryDSN
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
// Global cache database
|
|
|
|
// Main in memory db, is synced with disc
|
|
|
|
// `CacheDB` is a memory replica of disk db
|
|
|
|
Cache = &CacheDB{}
|
|
|
|
)
|
|
|
|
|
|
|
|
type CacheDB struct {
|
|
|
|
DB *DB
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *CacheDB) IsInitialized() bool {
|
|
|
|
return Cache.DB != nil && Cache.DB.Handle != nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func initCache() {
|
|
|
|
log.Debug("initializing cacheDB")
|
|
|
|
var err error
|
2022-11-24 02:48:55 +00:00
|
|
|
|
2022-10-23 13:08:06 +00:00
|
|
|
// Initialize memory db with schema
|
2022-11-07 19:07:13 +00:00
|
|
|
Cache.DB, err = NewDB(CacheName, "", DBTypeCacheDSN).Init()
|
2022-10-23 13:08:06 +00:00
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
err = Cache.DB.InitSchema()
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
}
|