@origintrail-official/dkg-storage 10.0.5 → 10.0.6
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.
- package/README.md +35 -0
- package/dist/adapters/blazegraph-nquads.d.ts +36 -0
- package/dist/adapters/blazegraph-nquads.d.ts.map +1 -0
- package/dist/adapters/blazegraph-nquads.js +79 -0
- package/dist/adapters/blazegraph-nquads.js.map +1 -0
- package/dist/adapters/blazegraph.d.ts +9 -3
- package/dist/adapters/blazegraph.d.ts.map +1 -1
- package/dist/adapters/blazegraph.js +207 -76
- package/dist/adapters/blazegraph.js.map +1 -1
- package/dist/adapters/graph-enumeration-query.d.ts +33 -0
- package/dist/adapters/graph-enumeration-query.d.ts.map +1 -0
- package/dist/adapters/graph-enumeration-query.js +33 -0
- package/dist/adapters/graph-enumeration-query.js.map +1 -0
- package/dist/adapters/oxigraph-worker.d.ts +5 -2
- package/dist/adapters/oxigraph-worker.d.ts.map +1 -1
- package/dist/adapters/oxigraph-worker.js +41 -6
- package/dist/adapters/oxigraph-worker.js.map +1 -1
- package/dist/adapters/oxigraph.d.ts +5 -2
- package/dist/adapters/oxigraph.d.ts.map +1 -1
- package/dist/adapters/oxigraph.js +53 -77
- package/dist/adapters/oxigraph.js.map +1 -1
- package/dist/adapters/sparql-content-types.d.ts +16 -0
- package/dist/adapters/sparql-content-types.d.ts.map +1 -0
- package/dist/adapters/sparql-content-types.js +16 -0
- package/dist/adapters/sparql-content-types.js.map +1 -0
- package/dist/adapters/sparql-http.d.ts +5 -2
- package/dist/adapters/sparql-http.d.ts.map +1 -1
- package/dist/adapters/sparql-http.js +37 -31
- package/dist/adapters/sparql-http.js.map +1 -1
- package/dist/adapters/sparql-json-results.d.ts +32 -0
- package/dist/adapters/sparql-json-results.d.ts.map +1 -0
- package/dist/adapters/sparql-json-results.js +37 -0
- package/dist/adapters/sparql-json-results.js.map +1 -0
- package/dist/changelog-store.d.ts +239 -0
- package/dist/changelog-store.d.ts.map +1 -0
- package/dist/changelog-store.js +695 -0
- package/dist/changelog-store.js.map +1 -0
- package/dist/graph-manager.d.ts +157 -0
- package/dist/graph-manager.d.ts.map +1 -1
- package/dist/graph-manager.js +297 -22
- package/dist/graph-manager.js.map +1 -1
- package/dist/graph-set-index-store.d.ts +23 -6
- package/dist/graph-set-index-store.d.ts.map +1 -1
- package/dist/graph-set-index-store.js +135 -37
- package/dist/graph-set-index-store.js.map +1 -1
- package/dist/graph-write-gen.d.ts +52 -0
- package/dist/graph-write-gen.d.ts.map +1 -0
- package/dist/graph-write-gen.js +63 -0
- package/dist/graph-write-gen.js.map +1 -0
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/shared-memory-literal-blob-store.d.ts +2 -2
- package/dist/shared-memory-literal-blob-store.d.ts.map +1 -1
- package/dist/shared-memory-literal-blob-store.js +2 -1
- package/dist/shared-memory-literal-blob-store.js.map +1 -1
- package/dist/store-priority-scheduler.d.ts +25 -1
- package/dist/store-priority-scheduler.d.ts.map +1 -1
- package/dist/store-priority-scheduler.js +92 -4
- package/dist/store-priority-scheduler.js.map +1 -1
- package/dist/triple-store.d.ts +34 -1
- package/dist/triple-store.d.ts.map +1 -1
- package/dist/triple-store.js +39 -1
- package/dist/triple-store.js.map +1 -1
- package/dist/unsupported-capability-error.d.ts +20 -0
- package/dist/unsupported-capability-error.d.ts.map +1 -0
- package/dist/unsupported-capability-error.js +20 -0
- package/dist/unsupported-capability-error.js.map +1 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -66,6 +66,41 @@ For heavy / production workloads, prefer an out-of-process SPARQL server
|
|
|
66
66
|
(`sparql-http` or `blazegraph`), which handles reads and writes concurrently
|
|
67
67
|
and keeps the daemon responsive under load.
|
|
68
68
|
|
|
69
|
+
## External-store admission and deadlines
|
|
70
|
+
|
|
71
|
+
All external adapters share a process-wide priority scheduler. Waiting work is
|
|
72
|
+
bounded independently for `ack`, `normal`, and `background` traffic, and an
|
|
73
|
+
operation rejected before dispatch receives `StoreSchedulerBusyError` with
|
|
74
|
+
`code: STORE_SCHEDULER_BUSY`, `retryable: true`, and a reason of either
|
|
75
|
+
`queue_full` or `queue_wait_timeout`. Because this error is only created before
|
|
76
|
+
the operation closure starts, retrying it cannot duplicate a write that might
|
|
77
|
+
already have reached the store.
|
|
78
|
+
|
|
79
|
+
| Environment variable | Default | Purpose |
|
|
80
|
+
|---|---:|---|
|
|
81
|
+
| `DKG_STORE_MAX_CONCURRENT` | `8` | Maximum external-store operations in flight. |
|
|
82
|
+
| `DKG_STORE_ACK_RESERVED_SLOTS` | `1` | In-flight capacity reserved for ACK work. |
|
|
83
|
+
| `DKG_STORE_BACKGROUND_RESERVED_SLOTS` | `1` | Non-ACK capacity reserved for background progress. |
|
|
84
|
+
| `DKG_STORE_QUEUE_LIMIT` | `64` | Maximum waiting operations in each priority queue. |
|
|
85
|
+
| `DKG_STORE_ACK_QUEUE_LIMIT` | common limit | Optional ACK queue override. |
|
|
86
|
+
| `DKG_STORE_NORMAL_QUEUE_LIMIT` | common limit | Optional normal queue override. |
|
|
87
|
+
| `DKG_STORE_BACKGROUND_QUEUE_LIMIT` | common limit | Optional background queue override. |
|
|
88
|
+
| `DKG_STORE_QUEUE_WAIT_TIMEOUT_MS` | `10000` | Maximum pre-dispatch wait before a retryable busy rejection. |
|
|
89
|
+
| `DKG_BLAZEGRAPH_OPERATION_TIMEOUT_MS` | `30000` | Blazegraph end-to-end operation deadline, including scheduler wait, HTTP, response decoding, and mapping. |
|
|
90
|
+
|
|
91
|
+
Blazegraph's deadline can also be set per store, which takes precedence over
|
|
92
|
+
the environment default:
|
|
93
|
+
|
|
94
|
+
```jsonc
|
|
95
|
+
"store": {
|
|
96
|
+
"backend": "blazegraph",
|
|
97
|
+
"options": {
|
|
98
|
+
"url": "http://127.0.0.1:9999/blazegraph/namespace/dkg/sparql",
|
|
99
|
+
"timeout": 30000
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
69
104
|
## Internal Dependencies
|
|
70
105
|
|
|
71
106
|
- `@origintrail-official/dkg-core` — configuration types, logging, constants
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Blazegraph N-Quads wire encoder.
|
|
3
|
+
*
|
|
4
|
+
* A focused boundary for the one structural quirk of Blazegraph's bulk-insert
|
|
5
|
+
* endpoint: its N-Quads parser reads the request body BYTE-wise as ASCII (the
|
|
6
|
+
* Content-Type charset is ignored), so any non-ASCII byte is replaced with
|
|
7
|
+
* U+FFFD before parsing — silent stored-value corruption. Downstream, a
|
|
8
|
+
* published KA carrying such a literal fails its storage-ACK merkle
|
|
9
|
+
* recomputation (MERKLE_MISMATCH_IN_SWM) and the publish dies.
|
|
10
|
+
*
|
|
11
|
+
* Verified against the stock `lyrasis/blazegraph:2.1.5` image (image CI + the
|
|
12
|
+
* devnet run). Kept here, separate from the adapter's transport/query/mutation
|
|
13
|
+
* orchestration, so the wire-format invariant is a single testable unit.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Make an assembled N-Quads line ASCII-safe for Blazegraph's bulk-insert
|
|
17
|
+
* endpoint:
|
|
18
|
+
*
|
|
19
|
+
* - Raw non-ASCII UTF-8 (a 2-byte `é` as much as a 4-byte astral emoji) →
|
|
20
|
+
* `\uXXXX` per UTF-16 code unit (astral chars as their surrogate pair) — the
|
|
21
|
+
* exact Java-String form Blazegraph itself emits on CONSTRUCT read-back and
|
|
22
|
+
* the one encoding that round-trips every scalar, including the
|
|
23
|
+
* supplementary plane.
|
|
24
|
+
* - In-range `\UXXXXXXXX` escapes (which Blazegraph truncates to their low 16
|
|
25
|
+
* bits on parse, e.g. `\U0001F600` 😀 → U+F600) → equivalent `\uXXXX`
|
|
26
|
+
* escape(s). Out-of-range `\U` (> U+10FFFF, unrepresentable) passes through.
|
|
27
|
+
*
|
|
28
|
+
* `\uXXXX` is a valid UCHAR in both IRIREF and STRING_LITERAL_QUOTED, so the
|
|
29
|
+
* transform is safe to apply to the whole line. Existing escape sequences are
|
|
30
|
+
* consumed pairwise (backslash parity), so a literal backslash followed by
|
|
31
|
+
* `U…` text (`\\U0001F600`) is never mis-rewritten. The transform is line-level
|
|
32
|
+
* by design — the `\U` normalization and the backslash-parity guard are
|
|
33
|
+
* properties of the rendered line, not of an individual term.
|
|
34
|
+
*/
|
|
35
|
+
export declare function toBlazegraphAsciiSafeNQuads(line: string): string;
|
|
36
|
+
//# sourceMappingURL=blazegraph-nquads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blazegraph-nquads.d.ts","sourceRoot":"","sources":["../../src/adapters/blazegraph-nquads.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmChE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Blazegraph N-Quads wire encoder.
|
|
3
|
+
*
|
|
4
|
+
* A focused boundary for the one structural quirk of Blazegraph's bulk-insert
|
|
5
|
+
* endpoint: its N-Quads parser reads the request body BYTE-wise as ASCII (the
|
|
6
|
+
* Content-Type charset is ignored), so any non-ASCII byte is replaced with
|
|
7
|
+
* U+FFFD before parsing — silent stored-value corruption. Downstream, a
|
|
8
|
+
* published KA carrying such a literal fails its storage-ACK merkle
|
|
9
|
+
* recomputation (MERKLE_MISMATCH_IN_SWM) and the publish dies.
|
|
10
|
+
*
|
|
11
|
+
* Verified against the stock `lyrasis/blazegraph:2.1.5` image (image CI + the
|
|
12
|
+
* devnet run). Kept here, separate from the adapter's transport/query/mutation
|
|
13
|
+
* orchestration, so the wire-format invariant is a single testable unit.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Make an assembled N-Quads line ASCII-safe for Blazegraph's bulk-insert
|
|
17
|
+
* endpoint:
|
|
18
|
+
*
|
|
19
|
+
* - Raw non-ASCII UTF-8 (a 2-byte `é` as much as a 4-byte astral emoji) →
|
|
20
|
+
* `\uXXXX` per UTF-16 code unit (astral chars as their surrogate pair) — the
|
|
21
|
+
* exact Java-String form Blazegraph itself emits on CONSTRUCT read-back and
|
|
22
|
+
* the one encoding that round-trips every scalar, including the
|
|
23
|
+
* supplementary plane.
|
|
24
|
+
* - In-range `\UXXXXXXXX` escapes (which Blazegraph truncates to their low 16
|
|
25
|
+
* bits on parse, e.g. `\U0001F600` 😀 → U+F600) → equivalent `\uXXXX`
|
|
26
|
+
* escape(s). Out-of-range `\U` (> U+10FFFF, unrepresentable) passes through.
|
|
27
|
+
*
|
|
28
|
+
* `\uXXXX` is a valid UCHAR in both IRIREF and STRING_LITERAL_QUOTED, so the
|
|
29
|
+
* transform is safe to apply to the whole line. Existing escape sequences are
|
|
30
|
+
* consumed pairwise (backslash parity), so a literal backslash followed by
|
|
31
|
+
* `U…` text (`\\U0001F600`) is never mis-rewritten. The transform is line-level
|
|
32
|
+
* by design — the `\U` normalization and the backslash-parity guard are
|
|
33
|
+
* properties of the rendered line, not of an individual term.
|
|
34
|
+
*/
|
|
35
|
+
export function toBlazegraphAsciiSafeNQuads(line) {
|
|
36
|
+
let out = '';
|
|
37
|
+
for (let i = 0; i < line.length; i++) {
|
|
38
|
+
const code = line.charCodeAt(i);
|
|
39
|
+
if (code === 0x5c /* backslash */) {
|
|
40
|
+
// In-range \UXXXXXXXX → equivalent \uXXXX escape(s) Blazegraph parses
|
|
41
|
+
// correctly. Out-of-range \U (> U+10FFFF, unrepresentable) passes through.
|
|
42
|
+
if (line[i + 1] === 'U') {
|
|
43
|
+
const hex = line.slice(i + 2, i + 10);
|
|
44
|
+
if (/^[0-9A-Fa-f]{8}$/.test(hex)) {
|
|
45
|
+
const cp = parseInt(hex, 16);
|
|
46
|
+
if (cp <= 0x10ffff) {
|
|
47
|
+
out += escapeUtf16CodeUnits(String.fromCodePoint(cp));
|
|
48
|
+
i += 9;
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Any other escape: copy the pair verbatim so the escaped char is never
|
|
54
|
+
// re-inspected (preserves backslash parity for the \U check above).
|
|
55
|
+
out += line[i];
|
|
56
|
+
if (i + 1 < line.length) {
|
|
57
|
+
const nextCode = line.charCodeAt(i + 1);
|
|
58
|
+
out += nextCode >= 0x7f ? escapeUtf16CodeUnits(line[i + 1]) : line[i + 1];
|
|
59
|
+
i++;
|
|
60
|
+
}
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (code >= 0x7f) {
|
|
64
|
+
out += escapeUtf16CodeUnits(line[i]);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
out += line[i];
|
|
68
|
+
}
|
|
69
|
+
return out;
|
|
70
|
+
}
|
|
71
|
+
/** `\uXXXX` escape per UTF-16 code unit (surrogate halves stay split). */
|
|
72
|
+
function escapeUtf16CodeUnits(s) {
|
|
73
|
+
let out = '';
|
|
74
|
+
for (let i = 0; i < s.length; i++) {
|
|
75
|
+
out += `\\u${s.charCodeAt(i).toString(16).toUpperCase().padStart(4, '0')}`;
|
|
76
|
+
}
|
|
77
|
+
return out;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=blazegraph-nquads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blazegraph-nquads.js","sourceRoot":"","sources":["../../src/adapters/blazegraph-nquads.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACtD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YAClC,sEAAsE;YACtE,2EAA2E;YAC3E,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtC,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjC,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC7B,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC;wBACnB,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;wBACtD,CAAC,IAAI,CAAC,CAAC;wBACP,SAAS;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;YACD,wEAAwE;YACxE,oEAAoE;YACpE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxC,GAAG,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1E,CAAC,EAAE,CAAC;YACN,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,SAAS;QACX,CAAC;QACD,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,0EAA0E;AAC1E,SAAS,oBAAoB,CAAC,CAAS;IACrC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,GAAG,IAAI,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAC7E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import type { TripleStore, Quad as DKGQuad, QueryOptions, StorePressureSnapshot, TripleStoreQueryOptions, QueryResult } from '../triple-store.js';
|
|
1
|
+
import type { TripleStore, Quad as DKGQuad, QueryOptions, UpdateOptions, StorePressureSnapshot, TripleStoreQueryOptions, QueryResult } from '../triple-store.js';
|
|
2
|
+
export declare const DEFAULT_BLAZEGRAPH_OPERATION_TIMEOUT_MS = 30000;
|
|
3
|
+
export interface BlazegraphStoreOptions {
|
|
4
|
+
/** End-to-end timeout including scheduler wait, HTTP work, and response decoding. */
|
|
5
|
+
timeout?: number;
|
|
6
|
+
}
|
|
2
7
|
/**
|
|
3
8
|
* BlazegraphStore — TripleStore adapter backed by a remote Blazegraph
|
|
4
9
|
* SPARQL endpoint over HTTP. Works with any Blazegraph 2.x instance
|
|
@@ -10,7 +15,8 @@ import type { TripleStore, Quad as DKGQuad, QueryOptions, StorePressureSnapshot,
|
|
|
10
15
|
export declare class BlazegraphStore implements TripleStore {
|
|
11
16
|
readonly queryCancellation: "interruptible";
|
|
12
17
|
private readonly url;
|
|
13
|
-
|
|
18
|
+
private readonly operationTimeoutMs;
|
|
19
|
+
constructor(url: string, options?: BlazegraphStoreOptions);
|
|
14
20
|
private runStoreWork;
|
|
15
21
|
getPressureSnapshot(): StorePressureSnapshot;
|
|
16
22
|
insert(quads: DKGQuad[], options?: QueryOptions): Promise<void>;
|
|
@@ -27,7 +33,7 @@ export declare class BlazegraphStore implements TripleStore {
|
|
|
27
33
|
* delete with two full-graph `countQuads` scans (see above), which is
|
|
28
34
|
* prohibitive on a CPU-pegged core.
|
|
29
35
|
*/
|
|
30
|
-
update(sparql: string, options?:
|
|
36
|
+
update(sparql: string, options?: UpdateOptions): Promise<void>;
|
|
31
37
|
query(sparql: string, options?: TripleStoreQueryOptions): Promise<QueryResult>;
|
|
32
38
|
private queryConstruct;
|
|
33
39
|
hasGraph(graphUri: string, options?: QueryOptions): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blazegraph.d.ts","sourceRoot":"","sources":["../../src/adapters/blazegraph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blazegraph.d.ts","sourceRoot":"","sources":["../../src/adapters/blazegraph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,IAAI,IAAI,OAAO,EACf,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,EAIZ,MAAM,oBAAoB,CAAC;AAY5B,eAAO,MAAM,uCAAuC,QAAS,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6ID;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,iBAAiB,EAAG,eAAe,CAAU;IAEtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;gBAEhC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B;IAK7D,OAAO,CAAC,YAAY;IAoBpB,mBAAmB,IAAI,qBAAqB;IAQtC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B/D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/D,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BnF,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBtG;;;;;;;;;OASG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;YA8CtE,cAAc;IA2BtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlE,UAAU,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAahE,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBtE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAQd,YAAY;CA2B3B"}
|
|
@@ -1,7 +1,133 @@
|
|
|
1
|
+
import { performance } from 'node:perf_hooks';
|
|
1
2
|
import { registerTripleStoreAdapter } from '../triple-store.js';
|
|
2
3
|
import { buildBlankNodeSafeDelete } from './sparql-http.js';
|
|
4
|
+
import { formatSparqlJsonBindings, } from './sparql-json-results.js';
|
|
5
|
+
import { toBlazegraphAsciiSafeNQuads } from './blazegraph-nquads.js';
|
|
6
|
+
import { SPARQL_QUERY_CONTENT_TYPE, SPARQL_UPDATE_CONTENT_TYPE } from './sparql-content-types.js';
|
|
3
7
|
import { assertQuadLiteralsMutf8Safe, JAVA_WRITE_UTF_MAX_BYTES } from '@origintrail-official/dkg-core';
|
|
4
8
|
import { externalStorePriorityScheduler } from '../store-priority-scheduler.js';
|
|
9
|
+
export const DEFAULT_BLAZEGRAPH_OPERATION_TIMEOUT_MS = 30_000;
|
|
10
|
+
function parsePositiveIntegerEnv(name, fallback) {
|
|
11
|
+
const raw = process.env[name]?.trim();
|
|
12
|
+
if (!raw)
|
|
13
|
+
return fallback;
|
|
14
|
+
const parsed = Number(raw);
|
|
15
|
+
return Number.isInteger(parsed) && parsed > 0 ? parsed : fallback;
|
|
16
|
+
}
|
|
17
|
+
function resolveOperationTimeout(configured) {
|
|
18
|
+
if (configured === undefined) {
|
|
19
|
+
return parsePositiveIntegerEnv('DKG_BLAZEGRAPH_OPERATION_TIMEOUT_MS', DEFAULT_BLAZEGRAPH_OPERATION_TIMEOUT_MS);
|
|
20
|
+
}
|
|
21
|
+
if (!Number.isInteger(configured) || configured <= 0) {
|
|
22
|
+
throw new Error('BlazegraphStore timeout must be a positive integer in milliseconds');
|
|
23
|
+
}
|
|
24
|
+
return configured;
|
|
25
|
+
}
|
|
26
|
+
function abortError(signal) {
|
|
27
|
+
const reason = signal.reason;
|
|
28
|
+
return reason instanceof Error ? reason : new Error(String(reason ?? 'aborted'));
|
|
29
|
+
}
|
|
30
|
+
function createStoreOperationDeadline(timeoutMs, callerSignal) {
|
|
31
|
+
const controller = new AbortController();
|
|
32
|
+
const deadlineAt = performance.now() + timeoutMs;
|
|
33
|
+
let timer;
|
|
34
|
+
let callerAttached = false;
|
|
35
|
+
const timeoutError = () => new DOMException(`Blazegraph operation exceeded its ${timeoutMs}ms deadline`, 'TimeoutError');
|
|
36
|
+
const detachCaller = () => {
|
|
37
|
+
if (!callerAttached)
|
|
38
|
+
return;
|
|
39
|
+
callerAttached = false;
|
|
40
|
+
callerSignal?.removeEventListener('abort', onCallerAbort);
|
|
41
|
+
};
|
|
42
|
+
const onCallerAbort = () => {
|
|
43
|
+
detachCaller();
|
|
44
|
+
controller.abort(callerSignal?.reason);
|
|
45
|
+
};
|
|
46
|
+
if (callerSignal?.aborted) {
|
|
47
|
+
controller.abort(callerSignal.reason);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
if (callerSignal) {
|
|
51
|
+
callerAttached = true;
|
|
52
|
+
callerSignal.addEventListener('abort', onCallerAbort, { once: true });
|
|
53
|
+
}
|
|
54
|
+
timer = setTimeout(() => {
|
|
55
|
+
timer = undefined;
|
|
56
|
+
detachCaller();
|
|
57
|
+
controller.abort(timeoutError());
|
|
58
|
+
}, timeoutMs);
|
|
59
|
+
if (typeof timer.unref === 'function')
|
|
60
|
+
timer.unref();
|
|
61
|
+
}
|
|
62
|
+
const check = () => {
|
|
63
|
+
if (controller.signal.aborted)
|
|
64
|
+
throw abortError(controller.signal);
|
|
65
|
+
if (performance.now() < deadlineAt)
|
|
66
|
+
return;
|
|
67
|
+
const error = timeoutError();
|
|
68
|
+
detachCaller();
|
|
69
|
+
controller.abort(error);
|
|
70
|
+
throw error;
|
|
71
|
+
};
|
|
72
|
+
const waitFor = async (work) => {
|
|
73
|
+
let result;
|
|
74
|
+
try {
|
|
75
|
+
result = await raceAgainstAbort(work, controller.signal);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
// The timer callback may be delayed by synchronous response processing.
|
|
79
|
+
// Re-check the monotonic deadline before preserving an underlying error
|
|
80
|
+
// so elapsed operations still surface the deadline's TimeoutError.
|
|
81
|
+
check();
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
check();
|
|
85
|
+
return result;
|
|
86
|
+
};
|
|
87
|
+
return {
|
|
88
|
+
signal: controller.signal,
|
|
89
|
+
waitFor,
|
|
90
|
+
check,
|
|
91
|
+
dispose: () => {
|
|
92
|
+
if (timer) {
|
|
93
|
+
clearTimeout(timer);
|
|
94
|
+
timer = undefined;
|
|
95
|
+
}
|
|
96
|
+
detachCaller();
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function raceAgainstAbort(work, signal) {
|
|
101
|
+
return new Promise((resolve, reject) => {
|
|
102
|
+
let listening = false;
|
|
103
|
+
const cleanup = () => {
|
|
104
|
+
if (!listening)
|
|
105
|
+
return;
|
|
106
|
+
listening = false;
|
|
107
|
+
signal.removeEventListener('abort', onAbort);
|
|
108
|
+
};
|
|
109
|
+
const onAbort = () => {
|
|
110
|
+
cleanup();
|
|
111
|
+
reject(abortError(signal));
|
|
112
|
+
};
|
|
113
|
+
work.then((value) => {
|
|
114
|
+
cleanup();
|
|
115
|
+
resolve(value);
|
|
116
|
+
}, (error) => {
|
|
117
|
+
cleanup();
|
|
118
|
+
reject(error);
|
|
119
|
+
});
|
|
120
|
+
if (signal.aborted) {
|
|
121
|
+
onAbort();
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
listening = true;
|
|
125
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
126
|
+
if (signal.aborted)
|
|
127
|
+
onAbort();
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
5
131
|
/**
|
|
6
132
|
* BlazegraphStore — TripleStore adapter backed by a remote Blazegraph
|
|
7
133
|
* SPARQL endpoint over HTTP. Works with any Blazegraph 2.x instance
|
|
@@ -13,11 +139,20 @@ import { externalStorePriorityScheduler } from '../store-priority-scheduler.js';
|
|
|
13
139
|
export class BlazegraphStore {
|
|
14
140
|
queryCancellation = 'interruptible';
|
|
15
141
|
url;
|
|
16
|
-
|
|
142
|
+
operationTimeoutMs;
|
|
143
|
+
constructor(url, options = {}) {
|
|
17
144
|
this.url = url.replace(/\/$/, '');
|
|
145
|
+
this.operationTimeoutMs = resolveOperationTimeout(options.timeout);
|
|
18
146
|
}
|
|
19
147
|
runStoreWork(operation, options, work) {
|
|
20
|
-
|
|
148
|
+
const deadline = createStoreOperationDeadline(this.operationTimeoutMs, options?.signal);
|
|
149
|
+
const scheduled = externalStorePriorityScheduler.run(options?.priority, options?.source ?? `blazegraph.${operation}`, async () => {
|
|
150
|
+
deadline.check();
|
|
151
|
+
const result = await work(deadline);
|
|
152
|
+
deadline.check();
|
|
153
|
+
return result;
|
|
154
|
+
}, deadline.signal);
|
|
155
|
+
return scheduled.finally(deadline.dispose);
|
|
21
156
|
}
|
|
22
157
|
getPressureSnapshot() {
|
|
23
158
|
return externalStorePriorityScheduler.snapshot;
|
|
@@ -28,24 +163,30 @@ export class BlazegraphStore {
|
|
|
28
163
|
async insert(quads, options) {
|
|
29
164
|
if (quads.length === 0)
|
|
30
165
|
return;
|
|
31
|
-
|
|
32
|
-
maxBytes: JAVA_WRITE_UTF_MAX_BYTES,
|
|
33
|
-
label: 'BlazegraphStore.insert',
|
|
34
|
-
});
|
|
35
|
-
const nquads = quads.map(quadToNQuad).join('\n') + '\n';
|
|
36
|
-
const res = await this.runStoreWork('insert', {
|
|
166
|
+
await this.runStoreWork('insert', {
|
|
37
167
|
...options,
|
|
38
168
|
source: options?.source ?? 'blazegraph.insert',
|
|
39
|
-
}, async () =>
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
169
|
+
}, async (deadline) => {
|
|
170
|
+
assertQuadLiteralsMutf8Safe(quads, {
|
|
171
|
+
maxBytes: JAVA_WRITE_UTF_MAX_BYTES,
|
|
172
|
+
label: 'BlazegraphStore.insert',
|
|
173
|
+
});
|
|
174
|
+
// Serialize only after scheduler admission. A blocked store therefore
|
|
175
|
+
// retains the caller's quad array, not an additional potentially-large
|
|
176
|
+
// N-Quads copy for every waiting insert.
|
|
177
|
+
const nquads = quads.map(quadToBlazegraphNQuad).join('\n') + '\n';
|
|
178
|
+
deadline.check();
|
|
179
|
+
const res = await deadline.waitFor(fetch(this.url, {
|
|
180
|
+
method: 'POST',
|
|
181
|
+
headers: { 'Content-Type': 'text/x-nquads' },
|
|
182
|
+
body: nquads,
|
|
183
|
+
signal: deadline.signal,
|
|
184
|
+
}));
|
|
185
|
+
if (!res.ok) {
|
|
186
|
+
const text = await deadline.waitFor(res.text().catch(() => ''));
|
|
187
|
+
throw new Error(`Blazegraph insert failed (${res.status}): ${text.slice(0, 200)}`);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
49
190
|
}
|
|
50
191
|
async delete(quads, options) {
|
|
51
192
|
if (quads.length === 0)
|
|
@@ -113,17 +254,13 @@ export class BlazegraphStore {
|
|
|
113
254
|
// Queries
|
|
114
255
|
// -------------------------------------------------------------------
|
|
115
256
|
async query(sparql, options) {
|
|
116
|
-
return this.runStoreWork('query', options, async () => {
|
|
117
|
-
if (options?.signal?.aborted) {
|
|
118
|
-
const reason = options.signal.reason;
|
|
119
|
-
throw reason instanceof Error ? reason : new Error(String(reason ?? 'aborted'));
|
|
120
|
-
}
|
|
257
|
+
return this.runStoreWork('query', options, async (deadline) => {
|
|
121
258
|
const trimmed = sparql.trim();
|
|
122
259
|
const upper = trimmed.toUpperCase();
|
|
123
260
|
const isAsk = upper.startsWith('ASK');
|
|
124
261
|
const isConstruct = upper.startsWith('CONSTRUCT') || upper.startsWith('DESCRIBE');
|
|
125
262
|
if (isConstruct) {
|
|
126
|
-
return this.queryConstruct(trimmed,
|
|
263
|
+
return this.queryConstruct(trimmed, deadline);
|
|
127
264
|
}
|
|
128
265
|
// Direct POST (W3C SPARQL 1.1 Protocol): send the query as the raw
|
|
129
266
|
// request body with `application/sparql-query` rather than URL-encoded
|
|
@@ -132,53 +269,45 @@ export class BlazegraphStore {
|
|
|
132
269
|
// on stock Blazegraph) and rejects larger payloads with HTTP 400
|
|
133
270
|
// "Unable to parse form content". The direct-POST body is not form
|
|
134
271
|
// parsed, so large queries (e.g. CONSTRUCT/VALUES) are not capped.
|
|
135
|
-
|
|
272
|
+
// SPARQL_QUERY_CONTENT_TYPE carries charset=utf-8 (see sparql-content-types.ts).
|
|
273
|
+
const res = await deadline.waitFor(fetch(this.url, {
|
|
136
274
|
method: 'POST',
|
|
137
275
|
headers: {
|
|
138
|
-
'Content-Type':
|
|
276
|
+
'Content-Type': SPARQL_QUERY_CONTENT_TYPE,
|
|
139
277
|
Accept: 'application/sparql-results+json',
|
|
140
278
|
},
|
|
141
279
|
body: trimmed,
|
|
142
|
-
signal:
|
|
143
|
-
});
|
|
280
|
+
signal: deadline.signal,
|
|
281
|
+
}));
|
|
144
282
|
if (!res.ok) {
|
|
145
|
-
const text = await res.text().catch(() => '');
|
|
283
|
+
const text = await deadline.waitFor(res.text().catch(() => ''));
|
|
146
284
|
throw new Error(`Blazegraph query failed (${res.status}): ${text.slice(0, 300)}`);
|
|
147
285
|
}
|
|
148
|
-
const json =
|
|
286
|
+
const json = await deadline.waitFor(res.json());
|
|
149
287
|
if (isAsk || 'boolean' in json) {
|
|
150
288
|
return { type: 'boolean', value: json.boolean };
|
|
151
289
|
}
|
|
152
|
-
const
|
|
153
|
-
const vars = sr.head?.vars ?? [];
|
|
154
|
-
const bindings = (sr.results?.bindings ?? []).map((row) => {
|
|
155
|
-
const obj = {};
|
|
156
|
-
for (const v of vars) {
|
|
157
|
-
const cell = row[v];
|
|
158
|
-
if (cell)
|
|
159
|
-
obj[v] = blazeTermToString(cell);
|
|
160
|
-
}
|
|
161
|
-
return obj;
|
|
162
|
-
});
|
|
290
|
+
const bindings = formatSparqlJsonBindings(json);
|
|
163
291
|
return { type: 'bindings', bindings };
|
|
164
292
|
});
|
|
165
293
|
}
|
|
166
|
-
async queryConstruct(sparql,
|
|
167
|
-
const res = await fetch(this.url, {
|
|
294
|
+
async queryConstruct(sparql, deadline) {
|
|
295
|
+
const res = await deadline.waitFor(fetch(this.url, {
|
|
168
296
|
method: 'POST',
|
|
169
297
|
headers: {
|
|
170
|
-
'Content-Type':
|
|
298
|
+
'Content-Type': SPARQL_QUERY_CONTENT_TYPE,
|
|
171
299
|
Accept: 'text/x-nquads, application/n-quads',
|
|
172
300
|
},
|
|
173
301
|
body: sparql,
|
|
174
|
-
signal:
|
|
175
|
-
});
|
|
302
|
+
signal: deadline.signal,
|
|
303
|
+
}));
|
|
176
304
|
if (!res.ok) {
|
|
177
|
-
const text = await res.text().catch(() => '');
|
|
305
|
+
const text = await deadline.waitFor(res.text().catch(() => ''));
|
|
178
306
|
throw new Error(`Blazegraph construct failed (${res.status}): ${text.slice(0, 300)}`);
|
|
179
307
|
}
|
|
180
|
-
const text = await res.text();
|
|
308
|
+
const text = await deadline.waitFor(res.text());
|
|
181
309
|
const quads = parseNQuadsText(text);
|
|
310
|
+
deadline.check();
|
|
182
311
|
return { type: 'quads', quads };
|
|
183
312
|
}
|
|
184
313
|
// -------------------------------------------------------------------
|
|
@@ -235,34 +364,21 @@ export class BlazegraphStore {
|
|
|
235
364
|
// HTTP 400 "Unable to parse form content" — which broke large publishes
|
|
236
365
|
// (a publish issues a DELETE DATA / INSERT over the full quad set). The
|
|
237
366
|
// raw body is not form parsed, so large updates succeed.
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
}
|
|
253
|
-
function blazeTermToString(t) {
|
|
254
|
-
if (t.type === 'bnode')
|
|
255
|
-
return `_:${t.value}`;
|
|
256
|
-
if (t.type === 'literal' || t.type === 'typed-literal') {
|
|
257
|
-
const escaped = escapeNQuadsLiteral(t.value);
|
|
258
|
-
if (t['xml:lang'])
|
|
259
|
-
return `"${escaped}"@${t['xml:lang']}`;
|
|
260
|
-
if (t.datatype && t.datatype !== 'http://www.w3.org/2001/XMLSchema#string') {
|
|
261
|
-
return `"${escaped}"^^<${t.datatype}>`;
|
|
262
|
-
}
|
|
263
|
-
return `"${escaped}"`;
|
|
367
|
+
//
|
|
368
|
+
// SPARQL_UPDATE_CONTENT_TYPE carries charset=utf-8 (see sparql-content-types.ts).
|
|
369
|
+
await this.runStoreWork(operation, options, async (deadline) => {
|
|
370
|
+
const res = await deadline.waitFor(fetch(this.url, {
|
|
371
|
+
method: 'POST',
|
|
372
|
+
headers: { 'Content-Type': SPARQL_UPDATE_CONTENT_TYPE },
|
|
373
|
+
body: update,
|
|
374
|
+
signal: deadline.signal,
|
|
375
|
+
}));
|
|
376
|
+
if (!res.ok) {
|
|
377
|
+
const text = await deadline.waitFor(res.text().catch(() => ''));
|
|
378
|
+
throw new Error(`Blazegraph update failed (${res.status}): ${text.slice(0, 300)}`);
|
|
379
|
+
}
|
|
380
|
+
});
|
|
264
381
|
}
|
|
265
|
-
return t.value;
|
|
266
382
|
}
|
|
267
383
|
// =====================================================================
|
|
268
384
|
// N-Quad serialisation / parsing helpers (shared with oxigraph adapter)
|
|
@@ -274,6 +390,20 @@ function quadToNQuad(q) {
|
|
|
274
390
|
const g = q.graph ? ` <${q.graph}>` : '';
|
|
275
391
|
return `${s} ${p} ${o}${g} .`;
|
|
276
392
|
}
|
|
393
|
+
/**
|
|
394
|
+
* N-Quads serializer for Blazegraph's bulk-insert wire format: a standard
|
|
395
|
+
* N-Quads line ({@link quadToNQuad}) made ASCII-safe
|
|
396
|
+
* ({@link toBlazegraphAsciiSafeNQuads}). This is the single serialization
|
|
397
|
+
* entry point for the adapter's write path, so the Blazegraph wire-format
|
|
398
|
+
* invariant lives at the serialization boundary rather than as a separate
|
|
399
|
+
* post-processing pass a caller must remember to apply. The ASCII-safe pass
|
|
400
|
+
* operates on the assembled line by design: it normalizes `\U` escapes and
|
|
401
|
+
* relies on backslash parity across the whole line, both of which are
|
|
402
|
+
* line-level properties of the rendered N-Quads, not of an individual term.
|
|
403
|
+
*/
|
|
404
|
+
function quadToBlazegraphNQuad(q) {
|
|
405
|
+
return toBlazegraphAsciiSafeNQuads(quadToNQuad(q));
|
|
406
|
+
}
|
|
277
407
|
function formatTerm(term) {
|
|
278
408
|
if (term.startsWith('"')) {
|
|
279
409
|
const m = term.match(/^("(?:[^"\\]|\\.)*")\^\^(?!<)(.+)$/);
|
|
@@ -394,6 +524,7 @@ registerTripleStoreAdapter('blazegraph', async (opts) => {
|
|
|
394
524
|
const url = opts?.url;
|
|
395
525
|
if (!url)
|
|
396
526
|
throw new Error('blazegraph adapter requires options.url (SPARQL endpoint)');
|
|
397
|
-
|
|
527
|
+
const timeout = opts?.timeout;
|
|
528
|
+
return new BlazegraphStore(url, { timeout });
|
|
398
529
|
});
|
|
399
530
|
//# sourceMappingURL=blazegraph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blazegraph.js","sourceRoot":"","sources":["../../src/adapters/blazegraph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blazegraph.js","sourceRoot":"","sources":["../../src/adapters/blazegraph.ts"],"names":[],"mappings":"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"}
|