Forráskód Böngészése

В конфиг добавлен параметр dbCacheSize

Book Pauk 2 éve
szülő
commit
af3bac6a09
4 módosított fájl, 12 hozzáadás és 3 törlés
  1. 4 0
      README.md
  2. 1 0
      server/config/base.js
  3. 1 0
      server/config/index.js
  4. 6 3
      server/core/WebWorker.js

+ 4 - 0
README.md

@@ -78,6 +78,10 @@ Options:
     // включить(true)/выключить(false) журналирование
     // включить(true)/выключить(false) журналирование
     "loggingEnabled": true,
     "loggingEnabled": true,
 
 
+    // максимальный размер кеша каждой таблицы в БД, в блоках (требуется примерно 1-10Мб памяти на один блок)
+    // если надо кешировать всю БД, можно поставить значение от 1000 и больше
+    "dbCacheSize": 5,
+
     // максимальный размер в байтах директории закешированных файлов в <раб.дир>/public/files
     // максимальный размер в байтах директории закешированных файлов в <раб.дир>/public/files
     // чистка каждый час
     // чистка каждый час
     "maxFilesDirSize": 1073741824,
     "maxFilesDirSize": 1073741824,

+ 1 - 0
server/config/base.js

@@ -14,6 +14,7 @@ module.exports = {
     bookReadLink: '',
     bookReadLink: '',
     loggingEnabled: true,
     loggingEnabled: true,
 
 
+    dbCacheSize: 5,
     maxPayloadSize: 500,//in MB
     maxPayloadSize: 500,//in MB
     maxFilesDirSize: 1024*1024*1024,//1Gb
     maxFilesDirSize: 1024*1024*1024,//1Gb
     queryCacheEnabled: true,
     queryCacheEnabled: true,

+ 1 - 0
server/config/index.js

@@ -8,6 +8,7 @@ const propsToSave = [
     'accessPassword',
     'accessPassword',
     'bookReadLink',
     'bookReadLink',
     'loggingEnabled',
     'loggingEnabled',
+    'dbCacheSize',
     'maxFilesDirSize',
     'maxFilesDirSize',
     'queryCacheEnabled',
     'queryCacheEnabled',
     'cacheCleanInterval',
     'cacheCleanInterval',

+ 6 - 3
server/core/WebWorker.js

@@ -166,15 +166,18 @@ class WebWorker {
                 softLock: true,
                 softLock: true,
 
 
                 tableDefaults: {
                 tableDefaults: {
-                    cacheSize: 5,
+                    cacheSize: config.dbCacheSize,
                 },
                 },
             });
             });
 
 
             //открываем все таблицы
             //открываем все таблицы
             await db.openAll();
             await db.openAll();
+            
             //переоткроем таблицу 'author' с бОльшим размером кеша блоков, для ускорения выборки
             //переоткроем таблицу '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);
             this.dbSearcher = new DbSearcher(config, db);