@milaboratories/pl-middle-layer 1.36.1 → 1.36.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"driver_kit.d.ts","sourceRoot":"","sources":["../../src/middle_layer/driver_kit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EACV,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAKL,cAAc,EACd,uBAAuB,EACvB,UAAU,EAGV,YAAY,EACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,GAAG,MAAM,iCAAiC,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,OAAO,CAAC;AAMf;;;;;;KAMK;AACL,MAAM,WAAW,oBAAqB,SAAQ,GAAG,CAAC,SAAS;IAEzD,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAElD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAEpC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAE5C;;;SAGK;IACL,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;SAGK;IACL,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACrC;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CA4D/B"}
1
+ {"version":3,"file":"driver_kit.d.ts","sourceRoot":"","sources":["../../src/middle_layer/driver_kit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EACV,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAKL,cAAc,EACd,uBAAuB,EACvB,UAAU,EAGV,YAAY,EACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,GAAG,MAAM,iCAAiC,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,OAAO,CAAC;AAMf;;;;;;KAMK;AACL,MAAM,WAAW,oBAAqB,SAAQ,GAAG,CAAC,SAAS;IAEzD,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAElD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAEpC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAE5C;;;SAGK;IACL,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;SAGK;IACL,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACrC;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAgE/B"}
@@ -25,6 +25,8 @@ export type DriverKitOpsPaths = {
25
25
  * If undefined, default list will be created.
26
26
  * */
27
27
  readonly virtualLocalStoragesOverride?: VirtualLocalStorageSpec[];
28
+ /** Path to the directory where pframes will spill temporary files and store materialized views */
29
+ readonly pframesSpillPath: string;
28
30
  };
29
31
  /** Options required to initialize full set of middle layer driver kit */
30
32
  export type DriverKitOpsSettings = {
@@ -59,7 +61,7 @@ export type DriverKitOpsSettings = {
59
61
  export type DriverKitOps = DriverKitOpsPaths & DriverKitOpsSettings;
60
62
  /** Some defaults fot MiddleLayerOps. */
61
63
  export declare const DefaultDriverKitOpsSettings: Pick<DriverKitOpsSettings, 'logger' | 'blobDriverOps' | 'downloadBlobToURLDriverOps' | 'uploadDriverOps' | 'logStreamDriverOps'>;
62
- export declare function DefaultDriverKitOpsPaths(workDir: string): Pick<DriverKitOpsPaths, 'blobDownloadPath' | 'downloadBlobToURLPath'>;
64
+ export declare function DefaultDriverKitOpsPaths(workDir: string): Pick<DriverKitOpsPaths, 'blobDownloadPath' | 'downloadBlobToURLPath' | 'pframesSpillPath'>;
63
65
  /** Fields with default values are marked as optional here. */
64
66
  export type DriverKitOpsConstructor = Omit<DriverKitOpsSettings, keyof typeof DefaultDriverKitOpsSettings> & Partial<typeof DefaultDriverKitOpsSettings> & Omit<DriverKitOpsPaths, keyof ReturnType<typeof DefaultDriverKitOpsPaths>> & Partial<ReturnType<typeof DefaultDriverKitOpsPaths>>;
65
67
  export type MiddleLayerOpsPaths = DriverKitOpsPaths & {
@@ -1 +1 @@
1
- {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/middle_layer/ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/middle_layer/ops.ts"],"names":[],"mappings":"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"}
@@ -20,10 +20,11 @@ export interface InternalPFrameDriver extends SdkPFrameDriver {
20
20
  export declare class PFrameDriver implements InternalPFrameDriver {
21
21
  private readonly blobDriver;
22
22
  private readonly logger;
23
+ private readonly spillPath;
23
24
  private readonly pFrames;
24
25
  private readonly pTables;
25
- private readonly blobContentCache;
26
- constructor(blobDriver: DownloadDriver, logger: MiLogger);
26
+ static init(blobDriver: DownloadDriver, logger: MiLogger, spillPath: string): Promise<PFrameDriver>;
27
+ private constructor();
27
28
  createPFrame(def: PFrameDef<PlTreeNodeAccessor | PColumnValues | DataInfo<PlTreeNodeAccessor>>, ctx: ComputableCtx): PFrameHandle;
28
29
  createPTable(def: PTableDef<PColumn<PlTreeNodeAccessor | PColumnValues | DataInfo<PlTreeNodeAccessor>>>, ctx: ComputableCtx, signal?: AbortSignal): PTableHandle;
29
30
  findColumns(handle: PFrameHandle, request: FindColumnsRequest): Promise<FindColumnsResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/pool/driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/pool/driver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/pl-middle-layer",
3
- "version": "1.36.1",
3
+ "version": "1.36.3",
4
4
  "description": "Pl Middle Layer",
5
5
  "engines": {
6
6
  "node": ">=20.16.0"
@@ -22,7 +22,7 @@
22
22
  "keywords": [],
23
23
  "license": "UNLICENSED",
24
24
  "dependencies": {
25
- "@milaboratories/pframes-rs-node": "1.0.27",
25
+ "@milaboratories/pframes-rs-node": "1.0.29",
26
26
  "canonicalize": "~2.1.0",
27
27
  "denque": "^2.1.0",
28
28
  "lru-cache": "^11.1.0",
@@ -33,21 +33,21 @@
33
33
  "zod": "~3.23.8",
34
34
  "remeda": "^2.21.2",
35
35
  "@milaboratories/pl-http": "^1.1.2",
36
+ "@milaboratories/computable": "^2.4.6",
36
37
  "@milaboratories/resolve-helper": "^1.1.0",
37
- "@milaboratories/computable": "^2.4.5",
38
- "@platforma-sdk/block-tools": "^2.5.40",
39
- "@milaboratories/pl-client": "^2.8.1",
40
- "@milaboratories/pl-drivers": "^1.5.48",
41
- "@milaboratories/pl-model-middle-layer": "^1.7.26",
38
+ "@platforma-sdk/block-tools": "^2.5.41",
39
+ "@milaboratories/pl-client": "^2.8.2",
42
40
  "@milaboratories/pl-model-common": "^1.13.8",
41
+ "@milaboratories/pl-drivers": "^1.5.49",
43
42
  "@milaboratories/pl-model-backend": "^1.1.0",
44
- "@milaboratories/pl-tree": "^1.5.7",
43
+ "@milaboratories/pl-tree": "^1.5.8",
44
+ "@milaboratories/pl-model-middle-layer": "^1.7.26",
45
45
  "@platforma-sdk/model": "^1.29.22",
46
- "@milaboratories/ts-helpers": "^1.1.6",
47
46
  "@platforma-sdk/workflow-tengo": "4.1.3",
48
- "@milaboratories/pl-config": "^1.4.7",
49
- "@milaboratories/pl-errors": "^1.0.7",
50
- "@milaboratories/pl-deployments": "^2.1.0"
47
+ "@milaboratories/pl-errors": "^1.0.8",
48
+ "@milaboratories/pl-config": "^1.4.8",
49
+ "@milaboratories/ts-helpers": "^1.1.7",
50
+ "@milaboratories/pl-deployments": "^2.1.1"
51
51
  },
52
52
  "devDependencies": {
53
53
  "semver": "^7.6.3",
@@ -60,8 +60,8 @@
60
60
  "jest": "^29.7.0",
61
61
  "@jest/globals": "^29.7.0",
62
62
  "ts-jest": "^29.2.6",
63
- "@milaboratories/eslint-config": "^1.0.4",
64
- "@milaboratories/platforma-build-configs": "1.0.3"
63
+ "@milaboratories/platforma-build-configs": "1.0.3",
64
+ "@milaboratories/eslint-config": "^1.0.4"
65
65
  },
66
66
  "scripts": {
67
67
  "type-check": "tsc --noEmit --composite false",
@@ -112,7 +112,11 @@ export async function initDriverKit(
112
112
  ops.virtualLocalStoragesOverride,
113
113
  );
114
114
 
115
- const pFrameDriver = new PFrameDriver(blobDriver, ops.logger);
115
+ const pFrameDriver = await PFrameDriver.init(
116
+ blobDriver,
117
+ ops.logger,
118
+ ops.pframesSpillPath,
119
+ );
116
120
 
117
121
  return {
118
122
  blobDriver,
@@ -39,6 +39,9 @@ export type DriverKitOpsPaths = {
39
39
  * If undefined, default list will be created.
40
40
  * */
41
41
  readonly virtualLocalStoragesOverride?: VirtualLocalStorageSpec[];
42
+
43
+ /** Path to the directory where pframes will spill temporary files and store materialized views */
44
+ readonly pframesSpillPath: string;
42
45
  };
43
46
 
44
47
  /** Options required to initialize full set of middle layer driver kit */
@@ -144,10 +147,12 @@ export function DefaultDriverKitOpsPaths(
144
147
  workDir: string,
145
148
  ): Pick<DriverKitOpsPaths,
146
149
  | 'blobDownloadPath'
147
- | 'downloadBlobToURLPath'> {
150
+ | 'downloadBlobToURLPath'
151
+ | 'pframesSpillPath'> {
148
152
  return {
149
153
  blobDownloadPath: path.join(workDir, 'download'),
150
154
  downloadBlobToURLPath: path.join(workDir, 'downloadToURL'),
155
+ pframesSpillPath: path.join(workDir, 'pframes'),
151
156
  };
152
157
  }
153
158
 
@@ -42,10 +42,11 @@ import { RefCountResourcePool } from './ref_count_pool';
42
42
  import { allBlobs, makeDataInfoFromPColumnValues, mapBlobs, parseDataInfoResource } from './data';
43
43
  import { createHash } from 'node:crypto';
44
44
  import type { MiLogger } from '@milaboratories/ts-helpers';
45
- import { assertNever } from '@milaboratories/ts-helpers';
45
+ import { assertNever, emptyDir } from '@milaboratories/ts-helpers';
46
46
  import canonicalize from 'canonicalize';
47
- import { PFrame as PFrameRs } from '@milaboratories/pframes-rs-node';
47
+ import { PFrame } from '@milaboratories/pframes-rs-node';
48
48
  import * as fsp from 'node:fs/promises';
49
+ import * as path from 'node:path';
49
50
  import { LRUCache } from 'lru-cache';
50
51
  import { getDebugFlags } from '../debug';
51
52
 
@@ -83,7 +84,7 @@ function migrateFilters(filters: PTableRecordFilter[]): PTableRecordFilter[] {
83
84
  const bigintReplacer = (_: string, v: unknown) => (typeof v === 'bigint' ? v.toString() : v);
84
85
 
85
86
  class PFrameHolder implements PFrameInternal.PFrameDataSource, Disposable {
86
- public readonly rustPFrame: PFrameInternal.PFrameV4;
87
+ public readonly pFrame: PFrameInternal.PFrameV4;
87
88
  private readonly blobIdToResource = new Map<string, ResourceInfo>();
88
89
  private readonly blobHandleComputables = new Map<
89
90
  string,
@@ -93,20 +94,11 @@ class PFrameHolder implements PFrameInternal.PFrameDataSource, Disposable {
93
94
  constructor(
94
95
  private readonly blobDriver: DownloadDriver,
95
96
  private readonly logger: MiLogger,
97
+ private readonly spillPath: string,
96
98
  private readonly blobContentCache: LRUCache<string, Uint8Array>,
97
99
  columns: InternalPFrameData,
98
100
  ) {
99
- const logFunc: PFrameInternal.Logger = (level: 'info' | 'warn' | 'error', message: string) => {
100
- switch (level) {
101
- default:
102
- case 'info':
103
- return this.logger.info(message);
104
- case 'warn':
105
- return this.logger.warn(message);
106
- case 'error':
107
- return this.logger.error(message);
108
- }
109
- };
101
+ const logFunc: PFrameInternal.Logger = (level, message) => this.logger[level](message);
110
102
 
111
103
  for (const column of columns) {
112
104
  for (const blob of allBlobs(column.data)) {
@@ -123,13 +115,13 @@ class PFrameHolder implements PFrameInternal.PFrameDataSource, Disposable {
123
115
  ];
124
116
 
125
117
  try {
126
- const pFrame = new PFrameRs(getDebugFlags().logPFrameRequests ? logFunc : undefined);
118
+ const pFrame = new PFrame(this.spillPath, getDebugFlags().logPFrameRequests ? logFunc : undefined);
127
119
  pFrame.setDataSource(this);
128
120
  for (const column of distinctСolumns) {
129
121
  pFrame.addColumnSpec(column.id, column.spec);
130
122
  pFrame.setColumnData(column.id, column.data);
131
123
  }
132
- this.rustPFrame = pFrame;
124
+ this.pFrame = pFrame;
133
125
  } catch (err: unknown) {
134
126
  throw new Error(
135
127
  `Rust PFrame creation failed, columns: ${JSON.stringify(distinctСolumns)}, error: ${err as Error}`,
@@ -176,7 +168,7 @@ class PFrameHolder implements PFrameInternal.PFrameDataSource, Disposable {
176
168
 
177
169
  [Symbol.dispose](): void {
178
170
  for (const computable of this.blobHandleComputables.values()) computable.resetState();
179
- this.rustPFrame.dispose();
171
+ this.pFrame.dispose();
180
172
  }
181
173
  }
182
174
 
@@ -232,23 +224,33 @@ export interface InternalPFrameDriver extends SdkPFrameDriver {
232
224
  export class PFrameDriver implements InternalPFrameDriver {
233
225
  private readonly pFrames: RefCountResourcePool<InternalPFrameData, PFrameHolder>;
234
226
  private readonly pTables: RefCountResourcePool<FullPTableDef, PTableHolder>;
235
- private readonly blobContentCache: LRUCache<string, Uint8Array>;
236
227
 
237
- constructor(
228
+ public static async init(
229
+ blobDriver: DownloadDriver,
230
+ logger: MiLogger,
231
+ spillPath: string,
232
+ ): Promise<PFrameDriver> {
233
+ const resolvedSpillPath = path.resolve(spillPath);
234
+ await emptyDir(resolvedSpillPath);
235
+ return new PFrameDriver(blobDriver, logger, resolvedSpillPath);
236
+ }
237
+
238
+ private constructor(
238
239
  private readonly blobDriver: DownloadDriver,
239
240
  private readonly logger: MiLogger,
241
+ private readonly spillPath: string,
240
242
  ) {
241
243
  const blobContentCache = new LRUCache<string, Uint8Array>({
242
244
  maxSize: 1_000_000_000, // 1Gb
243
245
  fetchMethod: async (key) => await fsp.readFile(key),
244
246
  sizeCalculation: (v) => v.length,
245
247
  });
246
- this.blobContentCache = blobContentCache;
247
248
 
248
249
  this.pFrames = new (class extends RefCountResourcePool<InternalPFrameData, PFrameHolder> {
249
250
  constructor(
250
251
  private readonly blobDriver: DownloadDriver,
251
252
  private readonly logger: MiLogger,
253
+ private readonly spillPath: string,
252
254
  ) {
253
255
  super();
254
256
  }
@@ -258,13 +260,13 @@ export class PFrameDriver implements InternalPFrameDriver {
258
260
  logger.info(
259
261
  `PFrame creation (pFrameHandle = ${this.calculateParamsKey(params)}): ${JSON.stringify(params, bigintReplacer)}`,
260
262
  );
261
- return new PFrameHolder(this.blobDriver, this.logger, blobContentCache, params);
263
+ return new PFrameHolder(this.blobDriver, this.logger, this.spillPath, blobContentCache, params);
262
264
  }
263
265
 
264
266
  protected calculateParamsKey(params: InternalPFrameData): string {
265
267
  return stableKeyFromPFrameData(params);
266
268
  }
267
- })(this.blobDriver, this.logger);
269
+ })(this.blobDriver, this.logger, this.spillPath);
268
270
 
269
271
  this.pTables = new (class extends RefCountResourcePool<
270
272
  FullPTableDef,
@@ -283,7 +285,7 @@ export class PFrameDriver implements InternalPFrameDriver {
283
285
  `PTable creation (pTableHandle = ${this.calculateParamsKey(params)}): ${JSON.stringify(params, bigintReplacer)}`,
284
286
  );
285
287
  }
286
- const tablePromise = this.pFrames.getByKey(handle).rustPFrame.createTable({
288
+ const tablePromise = this.pFrames.getByKey(handle).pFrame.createTable({
287
289
  src: joinEntryToInternal(params.def.src),
288
290
  filters: migrateFilters(params.def.filters),
289
291
  }, params.signal).then(async (table) => {
@@ -368,7 +370,7 @@ export class PFrameDriver implements InternalPFrameDriver {
368
370
  }]
369
371
  : [],
370
372
  };
371
- const responce = await this.pFrames.getByKey(handle).rustPFrame.findColumns(iRequest);
373
+ const responce = await this.pFrames.getByKey(handle).pFrame.findColumns(iRequest);
372
374
  return {
373
375
  hits: responce.hits
374
376
  .filter((h) => // only exactly matching columns
@@ -381,11 +383,11 @@ export class PFrameDriver implements InternalPFrameDriver {
381
383
  }
382
384
 
383
385
  public async getColumnSpec(handle: PFrameHandle, columnId: PObjectId): Promise<PColumnSpec> {
384
- return await this.pFrames.getByKey(handle).rustPFrame.getColumnSpec(columnId);
386
+ return await this.pFrames.getByKey(handle).pFrame.getColumnSpec(columnId);
385
387
  }
386
388
 
387
389
  public async listColumns(handle: PFrameHandle): Promise<PColumnIdAndSpec[]> {
388
- return await this.pFrames.getByKey(handle).rustPFrame.listColumns();
390
+ return await this.pFrames.getByKey(handle).pFrame.listColumns();
389
391
  }
390
392
 
391
393
  public async calculateTableData(
@@ -398,7 +400,7 @@ export class PFrameDriver implements InternalPFrameDriver {
398
400
  `Call calculateTableData, handle = ${handle}, request = ${JSON.stringify(request, bigintReplacer)}`,
399
401
  );
400
402
  }
401
- return await this.pFrames.getByKey(handle).rustPFrame.createTable({
403
+ return await this.pFrames.getByKey(handle).pFrame.createTable({
402
404
  src: joinEntryToInternal(request.src),
403
405
  filters: migrateFilters(request.filters),
404
406
  }, signal).then(async (table) => {
@@ -432,7 +434,7 @@ export class PFrameDriver implements InternalPFrameDriver {
432
434
  `Call getUniqueValues, handle = ${handle}, request = ${JSON.stringify(request, bigintReplacer)}`,
433
435
  );
434
436
  }
435
- return await this.pFrames.getByKey(handle).rustPFrame.getUniqueValues({
437
+ return await this.pFrames.getByKey(handle).pFrame.getUniqueValues({
436
438
  ...request,
437
439
  filters: migrateFilters(request.filters),
438
440
  }, signal);