@trivago/samsa
Advanced tools
Comparing version 0.3.0-beta.3 to 0.3.0-beta.4
@@ -12,6 +12,7 @@ /// <reference types="node" /> | ||
private maxKeyBufferSize; | ||
private keyBufferInterval; | ||
private keyBuffer; | ||
private subProcesses; | ||
private keyBufferProcessInterval; | ||
constructor(primaryKTable: KTable, foreignKTable: KTable, projection: JoinProjection<any, any, any>, maxKeyBufferSize?: number); | ||
constructor(primaryKTable: KTable, foreignKTable: KTable, projection: JoinProjection<any, any, any>, maxKeyBufferSize?: number, keyBufferInterval?: number); | ||
private startProcessInterval; | ||
@@ -23,4 +24,4 @@ finishUp(): Promise<unknown>; | ||
} | ||
export declare const innerJoin: <P extends any, F extends any, R extends any>(primaryStream: Readable, foreignStream: Readable, project?: JoinProjection<P, F, any>, kTableConfig?: KTableConfig, maxKeyBufferSize?: number, window?: number) => Joiner; | ||
export declare const join: <P extends any, F extends any, R extends any>(primaryStream: Readable, foreignStream: Readable, project?: JoinProjection<P, F, any>, kTableConfig?: KTableConfig, maxKeyBufferSize?: number, window?: number) => Joiner; | ||
export declare const innerJoin: <P extends any, F extends any, R extends any>(primaryStream: Readable, foreignStream: Readable, project?: JoinProjection<P, F, any>, kTableConfig?: KTableConfig, maxKeyBufferSize?: number, keyBufferInterval?: number, window?: number) => Joiner; | ||
export declare const join: <P extends any, F extends any, R extends any>(primaryStream: Readable, foreignStream: Readable, project?: JoinProjection<P, F, any>, kTableConfig?: KTableConfig, maxKeyBufferSize?: number, keyBufferInterval?: number, window?: number) => Joiner; | ||
export {}; |
@@ -84,4 +84,5 @@ "use strict"; | ||
__extends(Joiner, _super); | ||
function Joiner(primaryKTable, foreignKTable, projection, maxKeyBufferSize) { | ||
function Joiner(primaryKTable, foreignKTable, projection, maxKeyBufferSize, keyBufferInterval) { | ||
if (maxKeyBufferSize === void 0) { maxKeyBufferSize = 10000; } | ||
if (keyBufferInterval === void 0) { keyBufferInterval = 1000; } | ||
var _this = _super.call(this) || this; | ||
@@ -92,2 +93,3 @@ _this.primaryKTable = primaryKTable; | ||
_this.maxKeyBufferSize = maxKeyBufferSize; | ||
_this.keyBufferInterval = keyBufferInterval; | ||
_this.keyBuffer = new Set(); | ||
@@ -102,3 +104,3 @@ _this.subProcesses = new Set(); | ||
_this.finalizeBuffer(); | ||
}, 1000); | ||
}, this.keyBufferInterval); | ||
return this.keyBufferProcessInterval; | ||
@@ -171,3 +173,3 @@ }; | ||
}(ObjectTransform_1.ObjectTransform)); | ||
exports.innerJoin = function (primaryStream, foreignStream, project, kTableConfig, maxKeyBufferSize, | ||
exports.innerJoin = function (primaryStream, foreignStream, project, kTableConfig, maxKeyBufferSize, keyBufferInterval, | ||
/** | ||
@@ -181,2 +183,3 @@ * Window currently won't do anything, until we can get a PR to RocksDB. | ||
if (maxKeyBufferSize === void 0) { maxKeyBufferSize = 10000; } | ||
if (keyBufferInterval === void 0) { keyBufferInterval = 1000; } | ||
if (window === void 0) { window = 0; } | ||
@@ -186,3 +189,3 @@ var batchAge = kTableConfig.batchAge, batchSize = kTableConfig.batchSize; | ||
var foreignTable = new KTable_1.KTable(batchSize, batchAge); | ||
var joiner = new Joiner(primaryTable, foreignTable, project, maxKeyBufferSize); | ||
var joiner = new Joiner(primaryTable, foreignTable, project, maxKeyBufferSize, keyBufferInterval); | ||
var primaryKeyStream = primaryStream.pipe(primaryTable); | ||
@@ -189,0 +192,0 @@ var foreignKeyStream = foreignStream.pipe(foreignTable); |
{ | ||
"name": "@trivago/samsa", | ||
"version": "0.3.0-beta.3", | ||
"version": "0.3.0-beta.4", | ||
"types": "lib/index.d.ts", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -28,3 +28,4 @@ import { Readable, TransformCallback } from "stream"; | ||
private projection: JoinProjection<any, any, any>, | ||
private maxKeyBufferSize: number = 10000 | ||
private maxKeyBufferSize: number = 10000, | ||
private keyBufferInterval: number = 1000 | ||
) { | ||
@@ -39,3 +40,3 @@ super(); | ||
this.finalizeBuffer(); | ||
}, 1000); | ||
}, this.keyBufferInterval); | ||
return this.keyBufferProcessInterval; | ||
@@ -126,2 +127,3 @@ } | ||
maxKeyBufferSize: number = 10000, | ||
keyBufferInterval: number = 1000, | ||
/** | ||
@@ -142,3 +144,4 @@ * Window currently won't do anything, until we can get a PR to RocksDB. | ||
project, | ||
maxKeyBufferSize | ||
maxKeyBufferSize, | ||
keyBufferInterval | ||
); | ||
@@ -145,0 +148,0 @@ |
201791
4839