🎨 调整数据库缓存

This commit is contained in:
Liang Ding 2023-02-09 17:18:29 +08:00
parent 6a5617dcc1
commit 19f44148d4
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
13 changed files with 17 additions and 22 deletions

View file

@ -882,7 +882,6 @@
"task.database.index.commit": "Execute database index commit", "task.database.index.commit": "Execute database index commit",
"task.database.index.ref": "Execute database index reference", "task.database.index.ref": "Execute database index reference",
"task.database.index.fix": "Execute database index fix", "task.database.index.fix": "Execute database index fix",
"task.database.cache": "Execute database cache",
"task.ocr.image": "Execute image OCR to extract text", "task.ocr.image": "Execute image OCR to extract text",
"task.history.generateDoc": "Execute GenerateDoc History", "task.history.generateDoc": "Execute GenerateDoc History",
"task.database.index.embedBlock": "Execute database index embed block", "task.database.index.embedBlock": "Execute database index embed block",

View file

@ -882,7 +882,6 @@
"task.database.index.commit": "Ejecutar la confirmación del índice de la base de datos", "task.database.index.commit": "Ejecutar la confirmación del índice de la base de datos",
"task.database.index.ref": "Ejecutar referencia de índice de base de datos", "task.database.index.ref": "Ejecutar referencia de índice de base de datos",
"task.database.index.fix": "Ejecutar corrección del índice de la base de datos", "task.database.index.fix": "Ejecutar corrección del índice de la base de datos",
"task.database.cache": "Ejecutar caché de base de datos",
"task.ocr.image": "Ejecutar OCR de imagen para extraer texto", "task.ocr.image": "Ejecutar OCR de imagen para extraer texto",
"task.history.generateDoc": "Ejecutar Historial GenerateDoc", "task.history.generateDoc": "Ejecutar Historial GenerateDoc",
"task.database.index.embedBlock": "Ejecutar bloque de incrustación de índice de base de datos", "task.database.index.embedBlock": "Ejecutar bloque de incrustación de índice de base de datos",

View file

@ -882,7 +882,6 @@
"task.database.index.commit": "Effectuer la validation de l'index de la base de données", "task.database.index.commit": "Effectuer la validation de l'index de la base de données",
"task.database.index.ref": "Exécuter la référence d'index de la base de données", "task.database.index.ref": "Exécuter la référence d'index de la base de données",
"task.database.index.fix": "Effectuer la correction de l'index de la base de données", "task.database.index.fix": "Effectuer la correction de l'index de la base de données",
"task.database.cache": "Effectuer le cache de la base de données",
"task.ocr.image": "Exécute l'OCR d'image pour extraire le texte", "task.ocr.image": "Exécute l'OCR d'image pour extraire le texte",
"task.history.generateDoc": "Exécuter l'historique de GenerateDoc", "task.history.generateDoc": "Exécuter l'historique de GenerateDoc",
"task.database.index.embedBlock": "Exécuter le bloc d'intégration d'index de base de données", "task.database.index.embedBlock": "Exécuter le bloc d'intégration d'index de base de données",

View file

@ -882,7 +882,6 @@
"task.database.index.commit": "執行數據庫索引提交", "task.database.index.commit": "執行數據庫索引提交",
"task.database.index.ref": "執行數據庫索引引用", "task.database.index.ref": "執行數據庫索引引用",
"task.database.index.fix": "執行數據庫索引訂正", "task.database.index.fix": "執行數據庫索引訂正",
"task.database.cache": "執行數據庫緩存",
"task.ocr.image": "執行圖片 OCR 提取文本", "task.ocr.image": "執行圖片 OCR 提取文本",
"task.history.generateDoc": "執行生成文件歷史", "task.history.generateDoc": "執行生成文件歷史",
"task.database.index.embedBlock": "執行數據庫索引嵌入塊", "task.database.index.embedBlock": "執行數據庫索引嵌入塊",

View file

@ -882,7 +882,6 @@
"task.database.index.commit": "执行数据库索引提交", "task.database.index.commit": "执行数据库索引提交",
"task.database.index.ref": "执行数据库索引引用", "task.database.index.ref": "执行数据库索引引用",
"task.database.index.fix": "执行数据库索引订正", "task.database.index.fix": "执行数据库索引订正",
"task.database.cache": "执行数据库缓存",
"task.ocr.image": "执行图片 OCR 提取文本", "task.ocr.image": "执行图片 OCR 提取文本",
"task.history.generateDoc": "执行生成文件历史", "task.history.generateDoc": "执行生成文件历史",
"task.database.index.embedBlock": "执行数据库索引嵌入块", "task.database.index.embedBlock": "执行数据库索引嵌入块",

8
kernel/cache/ial.go vendored
View file

@ -24,8 +24,8 @@ import (
) )
var docIALCache, _ = ristretto.NewCache(&ristretto.Config{ var docIALCache, _ = ristretto.NewCache(&ristretto.Config{
NumCounters: 200000, NumCounters: 10240,
MaxCost: 1000 * 1000 * 32, MaxCost: 1024,
BufferItems: 64, BufferItems: 64,
}) })
@ -55,8 +55,8 @@ func ClearDocsIAL() {
} }
var blockIALCache, _ = ristretto.NewCache(&ristretto.Config{ var blockIALCache, _ = ristretto.NewCache(&ristretto.Config{
NumCounters: 800000, NumCounters: 10240,
MaxCost: 1000 * 1000 * 64, MaxCost: 1024,
BufferItems: 64, BufferItems: 64,
}) })

View file

@ -506,7 +506,6 @@ func ReloadUI() {
func FullReindex() { func FullReindex() {
task.AppendTask(task.DatabaseIndexFull, fullReindex) task.AppendTask(task.DatabaseIndexFull, fullReindex)
task.AppendTask(task.DatabaseCache, sql.EnableCache)
task.AppendTask(task.DatabaseIndexRef, IndexRefs) task.AppendTask(task.DatabaseIndexRef, IndexRefs)
task.AppendTask(task.ReloadUI, util.ReloadUI) task.AppendTask(task.ReloadUI, util.ReloadUI)
} }
@ -521,7 +520,6 @@ func fullReindex() {
} }
treenode.InitBlockTree(true) treenode.InitBlockTree(true)
sql.DisableCache()
openedBoxes := Conf.GetOpenedBoxes() openedBoxes := Conf.GetOpenedBoxes()
for _, openedBox := range openedBoxes { for _, openedBox := range openedBoxes {
index(openedBox.ID) index(openedBox.ID)

View file

@ -242,6 +242,7 @@ func RollbackDocHistory(boxID, historyPath string) (err error) {
return return
} }
util.ReloadUI()
FullReindex() FullReindex()
IncSync() IncSync()
return nil return nil
@ -297,9 +298,9 @@ func RollbackNotebookHistory(historyPath string) (err error) {
return return
} }
util.ReloadUI()
FullReindex() FullReindex()
IncSync() IncSync()
ReloadUI()
return nil return nil
} }

View file

@ -131,9 +131,6 @@ func index(boxID string) {
} }
func IndexRefs() { func IndexRefs() {
sql.EnableCache()
defer sql.ClearBlockCache()
start := time.Now() start := time.Now()
util.SetBootDetails("Resolving refs...") util.SetBootDetails("Resolving refs...")
util.PushStatusBar(Conf.Language(54)) util.PushStatusBar(Conf.Language(54))

View file

@ -29,17 +29,17 @@ import (
) )
var memCache, _ = ristretto.NewCache(&ristretto.Config{ var memCache, _ = ristretto.NewCache(&ristretto.Config{
NumCounters: 800000, NumCounters: 10240,
MaxCost: 1000 * 1000 * 100, MaxCost: 1024,
BufferItems: 64, BufferItems: 64,
}) })
var disabled = true var disabled = true
func EnableCache() { func enableCache() {
disabled = false disabled = false
} }
func DisableCache() { func disableCache() {
disabled = true disabled = true
} }

View file

@ -68,8 +68,8 @@ func InitDatabase(forceRebuild bool) (err error) {
defer initDatabaseLock.Unlock() defer initDatabaseLock.Unlock()
ClearBlockCache() ClearBlockCache()
DisableCache() disableCache()
defer EnableCache() defer enableCache()
util.IncBootProgress(2, "Initializing database...") util.IncBootProgress(2, "Initializing database...")

View file

@ -105,6 +105,11 @@ func FlushQueue() {
context := map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBar} context := map[string]interface{}{eventbus.CtxPushMsg: eventbus.CtxPushMsgToStatusBar}
total := len(ops) total := len(ops)
if 512 < total {
disableCache()
defer enableCache()
}
for i, op := range ops { for i, op := range ops {
if util.IsExiting { if util.IsExiting {
return return

View file

@ -86,7 +86,6 @@ const (
DatabaseIndexCommit = "task.database.index.commit" // 数据库索引提交 DatabaseIndexCommit = "task.database.index.commit" // 数据库索引提交
DatabaseIndexRef = "task.database.index.ref" // 数据库索引引用 DatabaseIndexRef = "task.database.index.ref" // 数据库索引引用
DatabaseIndexFix = "task.database.index.fix" // 数据库索引订正 DatabaseIndexFix = "task.database.index.fix" // 数据库索引订正
DatabaseCache = "task.database.cache" // 数据库缓存
OCRImage = "task.ocr.image" // 图片 OCR 提取文本 OCRImage = "task.ocr.image" // 图片 OCR 提取文本
HistoryGenerateDoc = "task.history.generateDoc" // 生成文件历史 HistoryGenerateDoc = "task.history.generateDoc" // 生成文件历史
DatabaseIndexEmbedBlock = "task.database.index.embedBlock" // 数据库索引嵌入块 DatabaseIndexEmbedBlock = "task.database.index.embedBlock" // 数据库索引嵌入块