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);