diff --git a/dist/cjs/ipc/index.js.map b/dist/cjs/ipc/index.js.map index 0edfbe3..4f8fbc7 100644 --- a/dist/cjs/ipc/index.js.map +++ b/dist/cjs/ipc/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ipc/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ipc/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/ipc/service/index.js b/dist/cjs/ipc/service/index.js index 90eea49..b54916f 100644 --- a/dist/cjs/ipc/service/index.js +++ b/dist/cjs/ipc/service/index.js @@ -4,21 +4,23 @@ exports.startServer = void 0; const net_1 = require("net"); const shared_1 = require("./shared"); const __1 = require("../../"); +const acebase_core_1 = require("acebase-core"); const ERROR = Object.freeze({ ALREADY_RUNNING: { code: 'already_running', exitCode: 2 }, UNKNOWN: { code: 'unknown', exitCode: 3 }, NO_DB: { code: 'no_db', exitCode: 4 }, }); -async function startServer(dbFile, exit) { +async function startServer(dbFile, options) { const fileMatch = dbFile.match(/^(?.*([\\\/]))(?.+)\.acebase\2(?[a-z]+)\.db$/); if (!fileMatch) { - return exit(ERROR.NO_DB.exitCode); + return options.exit(ERROR.NO_DB.exitCode); } const { storagePath, dbName, storageType } = fileMatch.groups; + const logger = new acebase_core_1.DebugLogger(options.logLevel, `[IPC service ${dbName}:${storageType}]`); let db; // Will be opened when listening const sockets = []; const socketPath = (0, shared_1.getSocketPath)(dbFile); - console.log(`starting socket server on path ${socketPath}`); + logger.log(`[starting socket server on path ${socketPath}`); const server = (0, net_1.createServer)(); server.listen({ path: socketPath, @@ -27,57 +29,67 @@ async function startServer(dbFile, exit) { }); server.on('listening', () => { // Started successful - // state = STATE.STARTED; - // process.send(`state:${state}`); process.on('SIGINT', () => server.close()); process.on('exit', (code) => { - console.log(`exiting with code ${code}`); + logger.log(`exiting with code ${code}`); }); // Start the "master" IPC client - db = new __1.AceBase(dbName, { storage: { type: storageType, path: storagePath, ipc: server } }); - // Bind socket server to the instance - // (db.api.storage.ipc as IPCSocketPeer).server = server; + db = new __1.AceBase(dbName, { logLevel: options.logLevel, storage: { type: storageType, path: storagePath, ipc: server } }); }); server.on('error', (err) => { var _a; - // state = STATE.ERROR; - // process.send(`state:${state}`); - // process.send(`error:${err.code ?? err.message}`); if (err.code === 'EADDRINUSE') { - console.log('socket server already running'); - return exit(ERROR.ALREADY_RUNNING.exitCode); + logger.log(`socket server already running`); + return options.exit(ERROR.ALREADY_RUNNING.exitCode); } - console.error(`socket server error ${(_a = err.code) !== null && _a !== void 0 ? _a : err.message}`); - exit(ERROR.UNKNOWN.exitCode); + logger.error(`socket server error ${(_a = err.code) !== null && _a !== void 0 ? _a : err.message}`); + options.exit(ERROR.UNKNOWN.exitCode); }); + let connectionsMade = false; server.on('connection', (socket) => { // New socket connected handler + connectionsMade = true; sockets.push(socket); - console.log(`socket connected, total: ${sockets.length}`); - // socket.on('data', (data) => { - // // Received data from a connected client (master or worker) - // // Socket IPC implementation handles this - // }); + logger.log(`socket connected, total: ${sockets.length}`); socket.on('close', (hadError) => { // Socket is closed sockets.splice(sockets.indexOf(socket), 1); - console.log(`socket disconnected${hadError ? ' because of an error' : ''}, total: ${sockets.length}`); + logger.log(`socket disconnected${hadError ? ' because of an error' : ''}, total: ${sockets.length}`); if (sockets.length === 0) { - // setTimeout(() => { - // if (sockets.length === 0) { - console.log(`closing server socket because there are no more connected clients, exiting with code 0`); - // Stop socket server - server.close((err) => { - exit(0); - }); - // } - // }, 5000); + const stop = () => { + logger.log(`closing server socket because there are no more connected clients, exiting with code 0`); + // Stop socket server + server.close((err) => { + options.exit(err ? ERROR.UNKNOWN.exitCode : 0); + }); + }; + if (options.maxIdleTime > 0) { + setTimeout(() => { + if (sockets.length === 0) { + stop(); + } + }, 5000); + } + else { + stop(); + } } }); }); server.on('close', () => { db.close(); }); + if (options.maxIdleTime > 0) { + setTimeout(() => { + if (!connectionsMade) { + logger.log(`closing server socket because no clients connected, exiting with code 0`); + // Stop socket server + server.close((err) => { + options.exit(err ? ERROR.UNKNOWN.exitCode : 0); + }); + } + }, options.maxIdleTime).unref(); + } } exports.startServer = startServer; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/cjs/ipc/service/index.js.map b/dist/cjs/ipc/service/index.js.map index 7fd9a3e..be4445c 100644 --- a/dist/cjs/ipc/service/index.js.map +++ b/dist/cjs/ipc/service/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ipc/service/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ipc/service/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/ipc/service/shared.js b/dist/cjs/ipc/service/shared.js index 793ba7d..8e4fc83 100644 --- a/dist/cjs/ipc/service/shared.js +++ b/dist/cjs/ipc/service/shared.js @@ -1,10 +1,20 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MSG_DELIMITER = exports.getSocketPath = void 0; +const crypto_1 = require("crypto"); function getSocketPath(filePath) { - return process.platform === 'win32' + let path = process.platform === 'win32' ? `\\\\.\\pipe\\${filePath.replace(/^\//, '').replace(/\//g, '-')}` : `${filePath}.sock`; + const maxLength = process.platform === 'win32' ? 256 : 108; + if (path.length > maxLength) { + // Use hash of filepath instead + const hash = (0, crypto_1.createHash)('sha256').update(path).digest('hex'); + path = process.platform === 'win32' + ? `\\\\.\\pipe\\${hash}` + : `${hash}.sock`; + } + return path; } exports.getSocketPath = getSocketPath; // export const MSG_DELIMITER = String.fromCharCode(0) + String.fromCharCode(1) + String.fromCharCode(3) + String.fromCharCode(5) + String.fromCharCode(0); diff --git a/dist/cjs/ipc/service/shared.js.map b/dist/cjs/ipc/service/shared.js.map index 30c39a9..9db3c5c 100644 --- a/dist/cjs/ipc/service/shared.js.map +++ b/dist/cjs/ipc/service/shared.js.map @@ -1 +1 @@ -{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/ipc/service/shared.ts"],"names":[],"mappings":";;;AAAA,SAAgB,aAAa,CAAC,QAAgB;IAC1C,OAAO,OAAO,CAAC,QAAQ,KAAI,OAAO;QAC9B,CAAC,CAAC,gBAAgB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;QACnE,CAAC,CAAC,GAAG,QAAQ,OAAO,CAAC;AAC7B,CAAC;AAJD,sCAIC;AAED,2JAA2J;AAC9I,QAAA,aAAa,GAAG,IAAI,CAAC"} \ No newline at end of file +{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/ipc/service/shared.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEpC,SAAgB,aAAa,CAAC,QAAgB;IAC1C,IAAI,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAI,OAAO;QAClC,CAAC,CAAC,gBAAgB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;QACnE,CAAC,CAAC,GAAG,QAAQ,OAAO,CAAC;IACzB,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1D,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE;QACzB,+BAA+B;QAC/B,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAI,OAAO;YAC9B,CAAC,CAAC,gBAAgB,IAAI,EAAE;YACxB,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;KACxB;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAbD,sCAaC;AAED,2JAA2J;AAC9I,QAAA,aAAa,GAAG,IAAI,CAAC"} \ No newline at end of file diff --git a/dist/cjs/ipc/service/start.js b/dist/cjs/ipc/service/start.js index 171412b..5aad81e 100644 --- a/dist/cjs/ipc/service/start.js +++ b/dist/cjs/ipc/service/start.js @@ -4,8 +4,23 @@ const _1 = require("."); (async () => { try { const dbFile = process.argv[2]; // full path to db storage file, eg '/home/ewout/project/db.acebase/data.db' - await (0, _1.startServer)(dbFile, (code) => { - process.exit(code); + const settings = process.argv.slice(3).reduce((settings, arg, i, args) => { + switch (arg.toLowerCase()) { + case '--loglevel': + settings.logLevel = args[i + 1]; + break; + case '--maxidletime': + settings.maxIdleTime = parseInt(args[i + 1]); + break; + } + return settings; + }, { logLevel: 'log', maxIdleTime: 5000 }); + await (0, _1.startServer)(dbFile, { + logLevel: settings.logLevel, + maxIdleTime: settings.maxIdleTime, + exit: (code) => { + process.exit(code); + }, }); } catch (err) { diff --git a/dist/cjs/ipc/service/start.js.map b/dist/cjs/ipc/service/start.js.map index ac45441..20ad64c 100644 --- a/dist/cjs/ipc/service/start.js.map +++ b/dist/cjs/ipc/service/start.js.map @@ -1 +1 @@ -{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/ipc/service/start.ts"],"names":[],"mappings":";;AAAA,wBAAgC;AAEhC,CAAC,KAAK,IAAI,EAAE;IACR,IAAI;QACA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,4EAA4E;QAC5G,MAAM,IAAA,cAAW,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;KACN;IACD,OAAO,GAAG,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC,CAAC,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/ipc/service/start.ts"],"names":[],"mappings":";;AAAA,wBAAgC;AAGhC,CAAC,KAAK,IAAI,EAAE;IACR,IAAI;QACA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,4EAA4E;QAC5G,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACrE,QAAQ,GAAG,CAAC,WAAW,EAAE,EAAE;gBACvB,KAAK,YAAY;oBAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAqC,CAAC;oBAAC,MAAM;gBAC9F,KAAK,eAAe;oBAAE,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAAC,MAAM;aAC7E;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAyC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/E,MAAM,IAAA,cAAW,EAAC,MAAM,EAAE;YACtB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;SACJ,CAAC,CAAC;KACN;IACD,OAAO,GAAG,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC,CAAC,EAAE,CAAC"} \ No newline at end of file diff --git a/dist/cjs/ipc/socket.js b/dist/cjs/ipc/socket.js index 3dfd628..c3bb6e2 100644 --- a/dist/cjs/ipc/socket.js +++ b/dist/cjs/ipc/socket.js @@ -7,13 +7,17 @@ const child_process_1 = require("child_process"); const ipc_1 = require("./ipc"); const acebase_core_1 = require("acebase-core"); const shared_1 = require("./service/shared"); +// import { startServer } from './service'; var net_2 = require("net"); Object.defineProperty(exports, "NetIPCServer", { enumerable: true, get: function () { return net_2.Server; } }); const masterPeerId = '[master]'; /** - * Node cluster functionality - enables vertical scaling with forked processes. AceBase will enable IPC at startup, so - * any forked process will communicate database changes and events automatically. Locking of resources will be done by - * the cluster's primary (previously master) process. NOTE: if the master process dies, all peers stop working + * Socket IPC implementation. Peers will attempt starting up a dedicated service process for the target database, + * or connect to an already running process. The service acts as the IPC master and governs over locks, space allocation + * and communication between peers. Communication between the processes is done using (very fast in-memory) Unix sockets. + * This IPC implementation allows different processes on a single machine to access the same database simultaniously without + * them having to explicitly configure their IPC settings. + * Currently can be used by passing `ipc: 'socket'` in AceBase's `storage` settings, will become the default soon. */ class IPCSocketPeer extends ipc_1.AceBaseIPCPeer { constructor(storage, ipcSettings) { @@ -36,15 +40,17 @@ class IPCSocketPeer extends ipc_1.AceBaseIPCPeer { this.exit(); }); if (!isMaster) { - // Try starting IPC service if it is not running yet - const service = (0, child_process_1.fork)(__dirname + '/service/start.js', [dbFile], { detached: true, stdio: 'inherit' }); - service.unref(); // Process is detached and allowed to keep running after we exit - bindEventHandler(service, 'exit', (code, signal) => { - console.log(`Service exited with code ${code}`); - }); - // // For testing: - // startServer(dbFile, (code) => { - // console.log(`Service exited with code ${code}`); + // Try starting IPC service if it is not running yet. + // Use maxIdleTime 0 to allow tests to remove database files when done, make this configurable! + const service = (0, child_process_1.spawn)('node', [__dirname + '/service/start.js', dbFile, '--loglevel', storage.debug.level, '--maxidletime', '0'], { detached: true, stdio: 'ignore' }); + service.unref(); // Process is detached and allowed to keep running after we exit. Do not keep a reference to it, possibly preventing app exit. + // For testing: + // startServer(dbFile, { + // maxIdleTime: 0, + // logLevel: storage.debug.level, + // exit: (code) => { + // storage.debug.log(`[IPC ${ipcSettings.ipcName}] service exited with code ${code}`); + // }, // }); } /** @@ -95,17 +101,17 @@ class IPCSocketPeer extends ipc_1.AceBaseIPCPeer { break; // wait for more data } // Extract message from buffer - const message = buffer.slice(0, delimiterIndex); - buffer = buffer.slice(delimiterIndex + shared_1.MSG_DELIMITER.length); + const message = buffer.subarray(0, delimiterIndex); + buffer = buffer.subarray(delimiterIndex + shared_1.MSG_DELIMITER.length); try { const json = message.toString('utf-8'); - // console.log(`Received socket message: `, json); + // storage.debug.log(`[IPC ${ipcSettings.ipcName}] Received socket message: `, json); const serialized = JSON.parse(json); const msg = acebase_core_1.Transport.deserialize2(serialized); handleMessage(socket, msg); } catch (err) { - console.error(`Error parsing message: ${err}`); + storage.debug.error(`[IPC ${ipcSettings.ipcName}] Error parsing message: ${err}`); } } }); @@ -128,12 +134,15 @@ class IPCSocketPeer extends ipc_1.AceBaseIPCPeer { const connectSocket = async (path) => { const tryConnect = async (tries) => { try { + if (this._exiting) { + return; + } const s = (0, net_1.connect)({ path }); await new Promise((resolve, reject) => { - s.once('error', reject); - s.once('connect', resolve); + s.once('error', reject).unref(); + s.once('connect', resolve).unref(); }); - console.log(`IPC peer ${this.id} successfully established connection to the server`); + storage.debug.log(`[IPC ${ipcSettings.ipcName}] peer ${this.id} successfully established connection to the service`); socket = s; connected = true; } @@ -143,17 +152,17 @@ class IPCSocketPeer extends ipc_1.AceBaseIPCPeer { await new Promise(resolve => setTimeout(resolve, 100)); return tryConnect(tries + 1); } - console.error(err.message); + storage.debug.error(`[IPC ${ipcSettings.ipcName}] peer ${this.id} cannot connect to service: ${err.message}`); throw err; } }; await tryConnect(1); this.once('exit', () => { - socket.destroy(); + socket === null || socket === void 0 ? void 0 : socket.destroy(); }); bindEventHandler(socket, 'close', (hadError) => { // Connection to server closed - console.log(`IPC peer ${this.id} lost its connection to the server${hadError ? ' because of an error' : ''}`); + storage.debug.log(`IPC peer ${this.id} lost its connection to the service${hadError ? ' because of an error' : ''}`); }); let buffer = Buffer.alloc(0); // Buffer to store incomplete messages bindEventHandler(socket, 'data', chunk => { @@ -165,17 +174,17 @@ class IPCSocketPeer extends ipc_1.AceBaseIPCPeer { break; // wait for more data } // Extract message from buffer - const message = buffer.slice(0, delimiterIndex); - buffer = buffer.slice(delimiterIndex + shared_1.MSG_DELIMITER.length); + const message = buffer.subarray(0, delimiterIndex); + buffer = buffer.subarray(delimiterIndex + shared_1.MSG_DELIMITER.length); try { const json = message.toString('utf-8'); - // console.log(`Received server message: `, json); + // storage.debug.log(`Received server message: `, json); const serialized = JSON.parse(json); const msg = acebase_core_1.Transport.deserialize2(serialized); handleMessage(socket, msg); } catch (err) { - console.error(`Error parsing message: ${err}`); + storage.debug.error(`Error parsing message: ${err}`); } } }); diff --git a/dist/cjs/ipc/socket.js.map b/dist/cjs/ipc/socket.js.map index 493c2af..b1212bc 100644 --- a/dist/cjs/ipc/socket.js.map +++ b/dist/cjs/ipc/socket.js.map @@ -1 +1 @@ -{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/ipc/socket.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/ipc/socket.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/test/bulk-import.spec.js b/dist/cjs/test/bulk-import.spec.js index 38941fc..8f03ad1 100644 --- a/dist/cjs/test/bulk-import.spec.js +++ b/dist/cjs/test/bulk-import.spec.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tempdb_1 = require("./tempdb"); const acebase_core_1 = require("acebase-core"); // This test takes at least an hour on a fast system, enable only if you have time -const LONG_RUNNING_TEST_ENABLED = false; +const LONG_RUNNING_TEST_ENABLED = process.env.LONG_RUNNING_TESTS === 'true'; describe('bulk import', () => { let db, removeDB; beforeAll(async () => { diff --git a/dist/cjs/test/bulk-import.spec.js.map b/dist/cjs/test/bulk-import.spec.js.map index 538c4e8..71a5ccd 100644 --- a/dist/cjs/test/bulk-import.spec.js.map +++ b/dist/cjs/test/bulk-import.spec.js.map @@ -1 +1 @@ -{"version":3,"file":"bulk-import.spec.js","sourceRoot":"","sources":["../../../src/test/bulk-import.spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"bulk-import.spec.js","sourceRoot":"","sources":["../../../src/test/bulk-import.spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/ipc/index.js.map b/dist/esm/ipc/index.js.map index 688a0f6..d8ebf45 100644 --- a/dist/esm/ipc/index.js.map +++ b/dist/esm/ipc/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ipc/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ipc/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/ipc/service/index.js b/dist/esm/ipc/service/index.js index e0476d7..02d8953 100644 --- a/dist/esm/ipc/service/index.js +++ b/dist/esm/ipc/service/index.js @@ -1,21 +1,23 @@ import { createServer } from 'net'; import { getSocketPath } from './shared.js'; import { AceBase } from '../..//index.js'; +import { DebugLogger } from 'acebase-core'; const ERROR = Object.freeze({ ALREADY_RUNNING: { code: 'already_running', exitCode: 2 }, UNKNOWN: { code: 'unknown', exitCode: 3 }, NO_DB: { code: 'no_db', exitCode: 4 }, }); -export async function startServer(dbFile, exit) { +export async function startServer(dbFile, options) { const fileMatch = dbFile.match(/^(?.*([\\\/]))(?.+)\.acebase\2(?[a-z]+)\.db$/); if (!fileMatch) { - return exit(ERROR.NO_DB.exitCode); + return options.exit(ERROR.NO_DB.exitCode); } const { storagePath, dbName, storageType } = fileMatch.groups; + const logger = new DebugLogger(options.logLevel, `[IPC service ${dbName}:${storageType}]`); let db; // Will be opened when listening const sockets = []; const socketPath = getSocketPath(dbFile); - console.log(`starting socket server on path ${socketPath}`); + logger.log(`[starting socket server on path ${socketPath}`); const server = createServer(); server.listen({ path: socketPath, @@ -24,55 +26,65 @@ export async function startServer(dbFile, exit) { }); server.on('listening', () => { // Started successful - // state = STATE.STARTED; - // process.send(`state:${state}`); process.on('SIGINT', () => server.close()); process.on('exit', (code) => { - console.log(`exiting with code ${code}`); + logger.log(`exiting with code ${code}`); }); // Start the "master" IPC client - db = new AceBase(dbName, { storage: { type: storageType, path: storagePath, ipc: server } }); - // Bind socket server to the instance - // (db.api.storage.ipc as IPCSocketPeer).server = server; + db = new AceBase(dbName, { logLevel: options.logLevel, storage: { type: storageType, path: storagePath, ipc: server } }); }); server.on('error', (err) => { - // state = STATE.ERROR; - // process.send(`state:${state}`); - // process.send(`error:${err.code ?? err.message}`); if (err.code === 'EADDRINUSE') { - console.log('socket server already running'); - return exit(ERROR.ALREADY_RUNNING.exitCode); + logger.log(`socket server already running`); + return options.exit(ERROR.ALREADY_RUNNING.exitCode); } - console.error(`socket server error ${err.code ?? err.message}`); - exit(ERROR.UNKNOWN.exitCode); + logger.error(`socket server error ${err.code ?? err.message}`); + options.exit(ERROR.UNKNOWN.exitCode); }); + let connectionsMade = false; server.on('connection', (socket) => { // New socket connected handler + connectionsMade = true; sockets.push(socket); - console.log(`socket connected, total: ${sockets.length}`); - // socket.on('data', (data) => { - // // Received data from a connected client (master or worker) - // // Socket IPC implementation handles this - // }); + logger.log(`socket connected, total: ${sockets.length}`); socket.on('close', (hadError) => { // Socket is closed sockets.splice(sockets.indexOf(socket), 1); - console.log(`socket disconnected${hadError ? ' because of an error' : ''}, total: ${sockets.length}`); + logger.log(`socket disconnected${hadError ? ' because of an error' : ''}, total: ${sockets.length}`); if (sockets.length === 0) { - // setTimeout(() => { - // if (sockets.length === 0) { - console.log(`closing server socket because there are no more connected clients, exiting with code 0`); - // Stop socket server - server.close((err) => { - exit(0); - }); - // } - // }, 5000); + const stop = () => { + logger.log(`closing server socket because there are no more connected clients, exiting with code 0`); + // Stop socket server + server.close((err) => { + options.exit(err ? ERROR.UNKNOWN.exitCode : 0); + }); + }; + if (options.maxIdleTime > 0) { + setTimeout(() => { + if (sockets.length === 0) { + stop(); + } + }, 5000); + } + else { + stop(); + } } }); }); server.on('close', () => { db.close(); }); + if (options.maxIdleTime > 0) { + setTimeout(() => { + if (!connectionsMade) { + logger.log(`closing server socket because no clients connected, exiting with code 0`); + // Stop socket server + server.close((err) => { + options.exit(err ? ERROR.UNKNOWN.exitCode : 0); + }); + } + }, options.maxIdleTime).unref(); + } } //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/esm/ipc/service/index.js.map b/dist/esm/ipc/service/index.js.map index 7ca9928..9b04f2d 100644 --- a/dist/esm/ipc/service/index.js.map +++ b/dist/esm/ipc/service/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ipc/service/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ipc/service/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/ipc/service/shared.js b/dist/esm/ipc/service/shared.js index 97f1a8e..6829624 100644 --- a/dist/esm/ipc/service/shared.js +++ b/dist/esm/ipc/service/shared.js @@ -1,7 +1,17 @@ +import { createHash } from 'crypto'; export function getSocketPath(filePath) { - return process.platform === 'win32' + let path = process.platform === 'win32' ? `\\\\.\\pipe\\${filePath.replace(/^\//, '').replace(/\//g, '-')}` : `${filePath}.sock`; + const maxLength = process.platform === 'win32' ? 256 : 108; + if (path.length > maxLength) { + // Use hash of filepath instead + const hash = createHash('sha256').update(path).digest('hex'); + path = process.platform === 'win32' + ? `\\\\.\\pipe\\${hash}` + : `${hash}.sock`; + } + return path; } // export const MSG_DELIMITER = String.fromCharCode(0) + String.fromCharCode(1) + String.fromCharCode(3) + String.fromCharCode(5) + String.fromCharCode(0); export const MSG_DELIMITER = '\n'; diff --git a/dist/esm/ipc/service/shared.js.map b/dist/esm/ipc/service/shared.js.map index b36d599..d58e063 100644 --- a/dist/esm/ipc/service/shared.js.map +++ b/dist/esm/ipc/service/shared.js.map @@ -1 +1 @@ -{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/ipc/service/shared.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC1C,OAAO,OAAO,CAAC,QAAQ,KAAI,OAAO;QAC9B,CAAC,CAAC,gBAAgB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;QACnE,CAAC,CAAC,GAAG,QAAQ,OAAO,CAAC;AAC7B,CAAC;AAED,2JAA2J;AAC3J,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC"} \ No newline at end of file +{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/ipc/service/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC1C,IAAI,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAI,OAAO;QAClC,CAAC,CAAC,gBAAgB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;QACnE,CAAC,CAAC,GAAG,QAAQ,OAAO,CAAC;IACzB,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1D,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE;QACzB,+BAA+B;QAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAI,OAAO;YAC9B,CAAC,CAAC,gBAAgB,IAAI,EAAE;YACxB,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;KACxB;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,2JAA2J;AAC3J,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC"} \ No newline at end of file diff --git a/dist/esm/ipc/service/start.js b/dist/esm/ipc/service/start.js index 631ff77..0137691 100644 --- a/dist/esm/ipc/service/start.js +++ b/dist/esm/ipc/service/start.js @@ -2,8 +2,23 @@ import { startServer } from './index.js'; (async () => { try { const dbFile = process.argv[2]; // full path to db storage file, eg '/home/ewout/project/db.acebase/data.db' - await startServer(dbFile, (code) => { - process.exit(code); + const settings = process.argv.slice(3).reduce((settings, arg, i, args) => { + switch (arg.toLowerCase()) { + case '--loglevel': + settings.logLevel = args[i + 1]; + break; + case '--maxidletime': + settings.maxIdleTime = parseInt(args[i + 1]); + break; + } + return settings; + }, { logLevel: 'log', maxIdleTime: 5000 }); + await startServer(dbFile, { + logLevel: settings.logLevel, + maxIdleTime: settings.maxIdleTime, + exit: (code) => { + process.exit(code); + }, }); } catch (err) { diff --git a/dist/esm/ipc/service/start.js.map b/dist/esm/ipc/service/start.js.map index 176e9d6..c78a77b 100644 --- a/dist/esm/ipc/service/start.js.map +++ b/dist/esm/ipc/service/start.js.map @@ -1 +1 @@ -{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/ipc/service/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAEhC,CAAC,KAAK,IAAI,EAAE;IACR,IAAI;QACA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,4EAA4E;QAC5G,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;KACN;IACD,OAAO,GAAG,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC,CAAC,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/ipc/service/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAGhC,CAAC,KAAK,IAAI,EAAE;IACR,IAAI;QACA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,4EAA4E;QAC5G,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACrE,QAAQ,GAAG,CAAC,WAAW,EAAE,EAAE;gBACvB,KAAK,YAAY;oBAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAqC,CAAC;oBAAC,MAAM;gBAC9F,KAAK,eAAe;oBAAE,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAAC,MAAM;aAC7E;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAyC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/E,MAAM,WAAW,CAAC,MAAM,EAAE;YACtB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;SACJ,CAAC,CAAC;KACN;IACD,OAAO,GAAG,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC,CAAC,EAAE,CAAC"} \ No newline at end of file diff --git a/dist/esm/ipc/socket.js b/dist/esm/ipc/socket.js index 109ad4c..8b6b2fe 100644 --- a/dist/esm/ipc/socket.js +++ b/dist/esm/ipc/socket.js @@ -1,15 +1,19 @@ import { connect, Server } from 'net'; import { resolve as resolvePath } from 'path'; -import { fork } from 'child_process'; +import { spawn } from 'child_process'; import { AceBaseIPCPeer } from './ipc.js'; import { ID, Transport } from 'acebase-core'; import { getSocketPath, MSG_DELIMITER } from './service/shared.js'; +// import { startServer } from './service/index.js'; export { Server as NetIPCServer } from 'net'; const masterPeerId = '[master]'; /** - * Node cluster functionality - enables vertical scaling with forked processes. AceBase will enable IPC at startup, so - * any forked process will communicate database changes and events automatically. Locking of resources will be done by - * the cluster's primary (previously master) process. NOTE: if the master process dies, all peers stop working + * Socket IPC implementation. Peers will attempt starting up a dedicated service process for the target database, + * or connect to an already running process. The service acts as the IPC master and governs over locks, space allocation + * and communication between peers. Communication between the processes is done using (very fast in-memory) Unix sockets. + * This IPC implementation allows different processes on a single machine to access the same database simultaniously without + * them having to explicitly configure their IPC settings. + * Currently can be used by passing `ipc: 'socket'` in AceBase's `storage` settings, will become the default soon. */ export class IPCSocketPeer extends AceBaseIPCPeer { constructor(storage, ipcSettings) { @@ -31,15 +35,17 @@ export class IPCSocketPeer extends AceBaseIPCPeer { this.exit(); }); if (!isMaster) { - // Try starting IPC service if it is not running yet - const service = fork(/file:\/{2,3}(.+)\/[^/]/.exec(import.meta.url)[1] + '/service/start.js', [dbFile], { detached: true, stdio: 'inherit' }); - service.unref(); // Process is detached and allowed to keep running after we exit - bindEventHandler(service, 'exit', (code, signal) => { - console.log(`Service exited with code ${code}`); - }); - // // For testing: - // startServer(dbFile, (code) => { - // console.log(`Service exited with code ${code}`); + // Try starting IPC service if it is not running yet. + // Use maxIdleTime 0 to allow tests to remove database files when done, make this configurable! + const service = spawn('node', [/file:\/{2,3}(.+)\/[^/]/.exec(import.meta.url)[1] + '/service/start.js', dbFile, '--loglevel', storage.debug.level, '--maxidletime', '0'], { detached: true, stdio: 'ignore' }); + service.unref(); // Process is detached and allowed to keep running after we exit. Do not keep a reference to it, possibly preventing app exit. + // For testing: + // startServer(dbFile, { + // maxIdleTime: 0, + // logLevel: storage.debug.level, + // exit: (code) => { + // storage.debug.log(`[IPC ${ipcSettings.ipcName}] service exited with code ${code}`); + // }, // }); } /** @@ -90,17 +96,17 @@ export class IPCSocketPeer extends AceBaseIPCPeer { break; // wait for more data } // Extract message from buffer - const message = buffer.slice(0, delimiterIndex); - buffer = buffer.slice(delimiterIndex + MSG_DELIMITER.length); + const message = buffer.subarray(0, delimiterIndex); + buffer = buffer.subarray(delimiterIndex + MSG_DELIMITER.length); try { const json = message.toString('utf-8'); - // console.log(`Received socket message: `, json); + // storage.debug.log(`[IPC ${ipcSettings.ipcName}] Received socket message: `, json); const serialized = JSON.parse(json); const msg = Transport.deserialize2(serialized); handleMessage(socket, msg); } catch (err) { - console.error(`Error parsing message: ${err}`); + storage.debug.error(`[IPC ${ipcSettings.ipcName}] Error parsing message: ${err}`); } } }); @@ -123,12 +129,15 @@ export class IPCSocketPeer extends AceBaseIPCPeer { const connectSocket = async (path) => { const tryConnect = async (tries) => { try { + if (this._exiting) { + return; + } const s = connect({ path }); await new Promise((resolve, reject) => { - s.once('error', reject); - s.once('connect', resolve); + s.once('error', reject).unref(); + s.once('connect', resolve).unref(); }); - console.log(`IPC peer ${this.id} successfully established connection to the server`); + storage.debug.log(`[IPC ${ipcSettings.ipcName}] peer ${this.id} successfully established connection to the service`); socket = s; connected = true; } @@ -138,17 +147,17 @@ export class IPCSocketPeer extends AceBaseIPCPeer { await new Promise(resolve => setTimeout(resolve, 100)); return tryConnect(tries + 1); } - console.error(err.message); + storage.debug.error(`[IPC ${ipcSettings.ipcName}] peer ${this.id} cannot connect to service: ${err.message}`); throw err; } }; await tryConnect(1); this.once('exit', () => { - socket.destroy(); + socket?.destroy(); }); bindEventHandler(socket, 'close', (hadError) => { // Connection to server closed - console.log(`IPC peer ${this.id} lost its connection to the server${hadError ? ' because of an error' : ''}`); + storage.debug.log(`IPC peer ${this.id} lost its connection to the service${hadError ? ' because of an error' : ''}`); }); let buffer = Buffer.alloc(0); // Buffer to store incomplete messages bindEventHandler(socket, 'data', chunk => { @@ -160,17 +169,17 @@ export class IPCSocketPeer extends AceBaseIPCPeer { break; // wait for more data } // Extract message from buffer - const message = buffer.slice(0, delimiterIndex); - buffer = buffer.slice(delimiterIndex + MSG_DELIMITER.length); + const message = buffer.subarray(0, delimiterIndex); + buffer = buffer.subarray(delimiterIndex + MSG_DELIMITER.length); try { const json = message.toString('utf-8'); - // console.log(`Received server message: `, json); + // storage.debug.log(`Received server message: `, json); const serialized = JSON.parse(json); const msg = Transport.deserialize2(serialized); handleMessage(socket, msg); } catch (err) { - console.error(`Error parsing message: ${err}`); + storage.debug.error(`Error parsing message: ${err}`); } } }); diff --git a/dist/esm/ipc/socket.js.map b/dist/esm/ipc/socket.js.map index 10841df..934085a 100644 --- a/dist/esm/ipc/socket.js.map +++ b/dist/esm/ipc/socket.js.map @@ -1 +1 @@ -{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/ipc/socket.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/ipc/socket.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/test/bulk-import.spec.js b/dist/esm/test/bulk-import.spec.js index 46bdab0..53d8ef6 100644 --- a/dist/esm/test/bulk-import.spec.js +++ b/dist/esm/test/bulk-import.spec.js @@ -1,7 +1,7 @@ import { createTempDB } from './tempdb.js'; import { ID } from 'acebase-core'; // This test takes at least an hour on a fast system, enable only if you have time -const LONG_RUNNING_TEST_ENABLED = false; +const LONG_RUNNING_TEST_ENABLED = process.env.LONG_RUNNING_TESTS === 'true'; describe('bulk import', () => { let db, removeDB; beforeAll(async () => { diff --git a/dist/esm/test/bulk-import.spec.js.map b/dist/esm/test/bulk-import.spec.js.map index 5ed9398..19cdce9 100644 --- a/dist/esm/test/bulk-import.spec.js.map +++ b/dist/esm/test/bulk-import.spec.js.map @@ -1 +1 @@ -{"version":3,"file":"bulk-import.spec.js","sourceRoot":"","sources":["../../../src/test/bulk-import.spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"bulk-import.spec.js","sourceRoot":"","sources":["../../../src/test/bulk-import.spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,kFAAkF;AAClF,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,CAAC;AAE5E,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,IAAI,EAAW,EAAE,QAA6B,CAAC;IAE/C,SAAS,CAAC,KAAK,IAAG,EAAE;QAChB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,EAAE,MAAM,CAAC,OAAO;gBACnD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;gBAC1B,OAAO,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;gBAClC,OAAO,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,SAAS;gBAC1C,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;YACtC,CAAC,EAAC,CAAC,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACjC,8DAA8D;QAC9D,IAAI,CAAC,yBAAyB,EAAE;YAC5B,OAAO;SACV;QAED,yFAAyF;QACzF,gJAAgJ;QAChJ,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;QAC9D,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACzC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAY,EAAE,QAAyD,EAAE,EAAE;YACnG,2BAA2B;YAC3B,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,EAAE,CAAC;gBAC/B,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC3B;QACL,CAAC,CAAC;QAEF,IAAI,QAAQ,GAAG,EAAS,CAAC;QACzB,MAAM,YAAY,CAAC,IAAI,GAAG,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACvD,IAAI,GAAG,GAAG,KAAK,KAAK,CAAC,EAAE;gBACnB,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBAC5C,oCAAoC;gBACpC,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACxC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAClB,mCAAmC;gBACnC,QAAQ,GAAG,EAAE,CAAC;aACjB;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,8EAA8E;YAC9E,iDAAiD;YACjD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,kBAAkB;QAC7C,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE5C,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/dist/types/ipc/service/index.d.ts b/dist/types/ipc/service/index.d.ts index a9feaa6..b13cb03 100644 --- a/dist/types/ipc/service/index.d.ts +++ b/dist/types/ipc/service/index.d.ts @@ -1,2 +1,7 @@ -export declare function startServer(dbFile: string, exit: (code: number) => void): Promise; +import { type AceBaseLocalSettings } from '../../'; +export declare function startServer(dbFile: string, options: { + logLevel: AceBaseLocalSettings['logLevel']; + maxIdleTime: number; + exit: (code: number) => void; +}): Promise; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/dist/types/ipc/service/index.d.ts.map b/dist/types/ipc/service/index.d.ts.map index 311b7fc..aeee08e 100644 --- a/dist/types/ipc/service/index.d.ts.map +++ b/dist/types/ipc/service/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ipc/service/index.ts"],"names":[],"mappings":"AAUA,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,iBA+E7E"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ipc/service/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAS5D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,iBAuF3J"} \ No newline at end of file diff --git a/dist/types/ipc/service/shared.d.ts.map b/dist/types/ipc/service/shared.d.ts.map index b8ed294..e942373 100644 --- a/dist/types/ipc/service/shared.d.ts.map +++ b/dist/types/ipc/service/shared.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/ipc/service/shared.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,UAI7C;AAGD,eAAO,MAAM,aAAa,OAAO,CAAC"} \ No newline at end of file +{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/ipc/service/shared.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,UAa7C;AAGD,eAAO,MAAM,aAAa,OAAO,CAAC"} \ No newline at end of file diff --git a/dist/types/ipc/socket.d.ts b/dist/types/ipc/socket.d.ts index 0488fc7..66c9c0f 100644 --- a/dist/types/ipc/socket.d.ts +++ b/dist/types/ipc/socket.d.ts @@ -4,9 +4,12 @@ import { AceBaseIPCPeer, IMessage } from './ipc'; import { Storage } from '../storage'; export { Server as NetIPCServer } from 'net'; /** - * Node cluster functionality - enables vertical scaling with forked processes. AceBase will enable IPC at startup, so - * any forked process will communicate database changes and events automatically. Locking of resources will be done by - * the cluster's primary (previously master) process. NOTE: if the master process dies, all peers stop working + * Socket IPC implementation. Peers will attempt starting up a dedicated service process for the target database, + * or connect to an already running process. The service acts as the IPC master and governs over locks, space allocation + * and communication between peers. Communication between the processes is done using (very fast in-memory) Unix sockets. + * This IPC implementation allows different processes on a single machine to access the same database simultaniously without + * them having to explicitly configure their IPC settings. + * Currently can be used by passing `ipc: 'socket'` in AceBase's `storage` settings, will become the default soon. */ export declare class IPCSocketPeer extends AceBaseIPCPeer { server?: Server; diff --git a/dist/types/ipc/socket.d.ts.map b/dist/types/ipc/socket.d.ts.map index e305149..31ca585 100644 --- a/dist/types/ipc/socket.d.ts.map +++ b/dist/types/ipc/socket.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../src/ipc/socket.ts"],"names":[],"mappings":";AAAA,OAAO,EAAmB,MAAM,EAAE,MAAM,KAAK,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAiB,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIrC,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,KAAK,CAAC;AAW7C;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,cAAc;IAEtC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IA6NrF,WAAW,CAAC,OAAO,EAAE,QAAQ;IAEhB,IAAI,CAAC,IAAI,SAAI;CAI7B"} \ No newline at end of file +{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../src/ipc/socket.ts"],"names":[],"mappings":";AAAA,OAAO,EAAmB,MAAM,EAAE,MAAM,KAAK,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAiB,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIrC,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,KAAK,CAAC;AAW7C;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,cAAc;IAEtC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAgOrF,WAAW,CAAC,OAAO,EAAE,QAAQ;IAEhB,IAAI,CAAC,IAAI,SAAI;CAI7B"} \ No newline at end of file diff --git a/dist/types/node-info.d.ts b/dist/types/node-info.d.ts index 1896656..0524f67 100644 --- a/dist/types/node-info.d.ts +++ b/dist/types/node-info.d.ts @@ -12,7 +12,7 @@ export declare class NodeInfo { childCount?: number; constructor(info: Partial); get valueType(): NodeValueType; - get valueTypeName(): "object" | "string" | "number" | "binary" | "date" | "bigint" | "boolean" | "array" | "reference"; + get valueTypeName(): "object" | "string" | "number" | "binary" | "bigint" | "boolean" | "date" | "array" | "reference"; toString(): string; } //# sourceMappingURL=node-info.d.ts.map \ No newline at end of file diff --git a/dist/types/node-value-types.d.ts b/dist/types/node-value-types.d.ts index 46eae6f..e768938 100644 --- a/dist/types/node-value-types.d.ts +++ b/dist/types/node-value-types.d.ts @@ -11,7 +11,7 @@ declare const nodeValueTypes: { }; export type NodeValueType = typeof nodeValueTypes[keyof typeof nodeValueTypes]; export declare const VALUE_TYPES: Record<"OBJECT" | "ARRAY" | "NUMBER" | "BOOLEAN" | "STRING" | "BIGINT" | "DATETIME" | "BINARY" | "REFERENCE", NodeValueType>; -export declare function getValueTypeName(valueType: number): "object" | "string" | "number" | "binary" | "date" | "bigint" | "boolean" | "array" | "reference"; +export declare function getValueTypeName(valueType: number): "object" | "string" | "number" | "binary" | "bigint" | "boolean" | "date" | "array" | "reference"; export declare function getNodeValueType(value: unknown): NodeValueType; export declare function getValueType(value: unknown): NodeValueType; export {};