From 89d9a90901e17f90795c05a21ea3a3836345074e Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 8 Mar 2019 20:50:30 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B5=D0=B1=D0=BE=D0=BB=D1=8C=D1=88?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=BE=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/readerStorage.js | 13 ++++++++++--- server/db/connManager.js | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/server/core/readerStorage.js b/server/core/readerStorage.js index 9180ce9d..45b6d5ec 100644 --- a/server/core/readerStorage.js +++ b/server/core/readerStorage.js @@ -6,6 +6,7 @@ const connManager = require('../db/connManager'); class ReaderStorage { constructor() { this.storagePool = connManager.pool.readerStorage; + this.cache = {}; } async doAction(act) { @@ -33,9 +34,14 @@ class ReaderStorage { const dbh = await this.storagePool.get(); try { for (const id of Object.keys(items)) { - const rows = await dbh.all(SQL`SELECT rev FROM storage WHERE id = ${id}`); - const rev = (rows.length && rows[0].rev ? rows[0].rev : 0); - result.items[id] = {rev}; + if (this.cache[id]) { + result.items[id] = this.cache[id]; + } else { + const rows = await dbh.all(SQL`SELECT rev FROM storage WHERE id = ${id}`); + const rev = (rows.length && rows[0].rev ? rows[0].rev : 0); + result.items[id] = {rev}; + this.cache[id] = result.items[id]; + } } } finally { dbh.ret(); @@ -78,6 +84,7 @@ class ReaderStorage { try { for (const id of Object.keys(items)) { await dbh.run(SQL`INSERT OR REPLACE INTO storage (id, rev, data) VALUES (${id}, ${items[id].rev}, ${items[id].data})`); + this.cache[id] = {rev: items[id].rev}; } } finally { dbh.ret(); diff --git a/server/db/connManager.js b/server/db/connManager.js index 0e94bb36..04806081 100644 --- a/server/db/connManager.js +++ b/server/db/connManager.js @@ -14,7 +14,7 @@ class ConnManager { async init(config) { this.config = config; - const force = (config.branch == 'development' ? 'last' : null); + const force = null;//(config.branch == 'development' ? 'last' : null); for (const poolConfig of this.config.db) { const dbFileName = this.config.dataDir + '/' + poolConfig.fileName;