From af3bac6a09d771ee388a479b4c9af49803459856 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Wed, 19 Oct 2022 13:30:00 +0700 Subject: [PATCH] =?UTF-8?q?=D0=92=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3?= =?UTF-8?q?=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=BF?= =?UTF-8?q?=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=20dbCacheSize?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++++ server/config/base.js | 1 + server/config/index.js | 1 + server/core/WebWorker.js | 9 ++++++--- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e50e1f3..2deb4bc 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,10 @@ Options: // включить(true)/выключить(false) журналирование "loggingEnabled": true, + // максимальный размер кеша каждой таблицы в БД, в блоках (требуется примерно 1-10Мб памяти на один блок) + // если надо кешировать всю БД, можно поставить значение от 1000 и больше + "dbCacheSize": 5, + // максимальный размер в байтах директории закешированных файлов в <раб.дир>/public/files // чистка каждый час "maxFilesDirSize": 1073741824, diff --git a/server/config/base.js b/server/config/base.js index df298e8..77c0d8a 100644 --- a/server/config/base.js +++ b/server/config/base.js @@ -14,6 +14,7 @@ module.exports = { bookReadLink: '', loggingEnabled: true, + dbCacheSize: 5, maxPayloadSize: 500,//in MB maxFilesDirSize: 1024*1024*1024,//1Gb queryCacheEnabled: true, diff --git a/server/config/index.js b/server/config/index.js index 857496f..b0b73ca 100644 --- a/server/config/index.js +++ b/server/config/index.js @@ -8,6 +8,7 @@ const propsToSave = [ 'accessPassword', 'bookReadLink', 'loggingEnabled', + 'dbCacheSize', 'maxFilesDirSize', 'queryCacheEnabled', 'cacheCleanInterval', diff --git a/server/core/WebWorker.js b/server/core/WebWorker.js index 5f01f06..e3edafe 100644 --- a/server/core/WebWorker.js +++ b/server/core/WebWorker.js @@ -166,15 +166,18 @@ class WebWorker { softLock: true, tableDefaults: { - cacheSize: 5, + cacheSize: config.dbCacheSize, }, }); //открываем все таблицы await db.openAll(); + //переоткроем таблицу 'author' с бОльшим размером кеша блоков, для ускорения выборки - await db.close({table: 'author'}); - await db.open({table: 'author', cacheSize: 100}); + if (config.dbCacheSize < 100) { + await db.close({table: 'author'}); + await db.open({table: 'author', cacheSize: 100}); + } this.dbSearcher = new DbSearcher(config, db);