@ibgib/core-gib 0.1.12 → 0.1.13
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/dist/sync/sync-innerspace.respec.mjs +328 -165
- package/dist/sync/sync-innerspace.respec.mjs.map +1 -1
- package/dist/sync/sync-saga-coordinator.d.mts +57 -2
- package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
- package/dist/sync/sync-saga-coordinator.mjs +346 -153
- package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
- package/dist/witness/space/inner-space/inner-space-v1.d.mts.map +1 -1
- package/dist/witness/space/inner-space/inner-space-v1.mjs +3 -4
- package/dist/witness/space/inner-space/inner-space-v1.mjs.map +1 -1
- package/package.json +1 -1
- package/src/sync/sync-innerspace.respec.mts +359 -191
- package/src/sync/sync-saga-coordinator.mts +411 -161
- package/src/witness/space/inner-space/inner-space-v1.mts +3 -2
- package/src/witness/space/reconciliation-space/reconciliation-space-base.mts.OLD.md +884 -0
- package/src/witness/space/reconciliation-space/reconciliation-space-helper.mts.OLD.md +125 -0
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { extractErrorMsg, getUUID
|
|
1
|
+
import { extractErrorMsg, getUUID, // so our timestamp in ticks as a string are uniform
|
|
2
|
+
pretty, clone } from "@ibgib/helper-gib/dist/helpers/utils-helper.mjs";
|
|
2
3
|
import { getIbGibAddr } from "@ibgib/ts-gib/dist/helper.mjs";
|
|
3
4
|
import { splitPerTjpAndOrDna, getTimelinesGroupedByTjp } from "../common/other/ibgib-helper.mjs";
|
|
4
5
|
import { Factory_V1 } from "@ibgib/ts-gib/dist/V1/factory.mjs";
|
|
5
6
|
import { isPrimitive } from "@ibgib/ts-gib/dist/V1/transforms/transform-helper.mjs";
|
|
6
7
|
import { GLOBAL_LOG_A_LOT } from "../core-constants.mjs";
|
|
7
|
-
import { putInSpace, lockSpace, unlockSpace,
|
|
8
|
+
import { putInSpace, lockSpace, unlockSpace, getLatestAddrs, getFromSpace } from "../witness/space/space-helper.mjs";
|
|
8
9
|
import { SyncStage, SYNC_ATOM } from "./sync-constants.mjs";
|
|
9
10
|
import { getSyncIb } from "./sync-helpers.mjs";
|
|
10
11
|
import { getDependencyGraph } from "../common/other/graph-helper.mjs";
|
|
11
|
-
const logalot = GLOBAL_LOG_A_LOT;
|
|
12
|
+
const logalot = GLOBAL_LOG_A_LOT || true;
|
|
12
13
|
/**
|
|
13
14
|
* Orchestrates the synchronization process between two spaces (Source and Destination).
|
|
14
15
|
*
|
|
@@ -82,7 +83,7 @@ export class SyncSagaCoordinator {
|
|
|
82
83
|
* @param opts.domainIbGibs The root ibGibs that define the scope of the sync (the "Dependency Graph").
|
|
83
84
|
* @param opts.identitySecret Optional secret if needed (usually handled by `keystone` service).
|
|
84
85
|
*/
|
|
85
|
-
async sync({ source, dest, identity, domainIbGibs, identitySecret }) {
|
|
86
|
+
async sync({ source, dest, identity, domainIbGibs, identitySecret, conflictStrategy }) {
|
|
86
87
|
const lc = `${this.lc}[${this.sync.name}]`;
|
|
87
88
|
try {
|
|
88
89
|
if (logalot) {
|
|
@@ -97,122 +98,54 @@ export class SyncSagaCoordinator {
|
|
|
97
98
|
// ---------------------------------------------------------
|
|
98
99
|
// 1. Graph Generation & Classification
|
|
99
100
|
// ---------------------------------------------------------
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
ibGibs: domainIbGibs,
|
|
104
|
-
live: true,
|
|
105
|
-
space: source,
|
|
101
|
+
const { srcStones, srcTimelinesMap, srcSortedTjps, srcGraph } = await this.analyzeTimelines({
|
|
102
|
+
domainIbGibs,
|
|
103
|
+
space: source
|
|
106
104
|
});
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
// 2. Classification
|
|
112
|
-
// We differentiate between "Stones" (Immutable, no timeline) and "Living" (Timelines).
|
|
113
|
-
// Stones can be synced in bulk without ordering.
|
|
114
|
-
// Living ibGibs must be grouped by timeline and ordered.
|
|
115
|
-
const ibGibs = validGraph ? Object.values(graph) : [];
|
|
116
|
-
const { mapWithTjp_YesDna, mapWithTjp_NoDna, mapWithoutTjps } = splitPerTjpAndOrDna({ ibGibs });
|
|
117
|
-
// "Stones" come from mapWithoutTjps
|
|
118
|
-
const stones = Object.values(mapWithoutTjps);
|
|
119
|
-
// "Living" come from both TJP maps
|
|
120
|
-
// We combine them to group by TJP
|
|
121
|
-
const living = [...Object.values(mapWithTjp_YesDna), ...Object.values(mapWithTjp_NoDna)];
|
|
122
|
-
if (logalot) {
|
|
123
|
-
console.log(`${lc} classification results (count):`);
|
|
124
|
-
console.log(`stones: ${stones.length}`);
|
|
125
|
-
console.log(`living: ${living.length}`);
|
|
126
|
-
}
|
|
127
|
-
// 3. Timeline Ordering
|
|
128
|
-
// Group living ibGibs by TJP to identify distinct timelines.
|
|
129
|
-
// The helper returns them sorted by 'n' ascending.
|
|
130
|
-
const timelinesMap = getTimelinesGroupedByTjp({ ibGibs: living });
|
|
131
|
-
// todo: perform topological sort on timelinesMap based on inter-timeline references.
|
|
132
|
-
// For now, we sync independent timelines.
|
|
133
|
-
const payloadAddrs = [];
|
|
134
|
-
payloadAddrs.push(...stones.map(x => getIbGibAddr({ ibGib: x })));
|
|
135
|
-
// 3. Timeline Ordering (Topological Sort)
|
|
136
|
-
// Living ibGibs are grouped by timeline (TJP).
|
|
137
|
-
// We need to order these timelines based on dependencies.
|
|
138
|
-
const sortedTjps = this.sortTimelinesTopologically(timelinesMap);
|
|
139
|
-
// Add ordered timelines to payload
|
|
140
|
-
sortedTjps.forEach(tjp => {
|
|
141
|
-
const timeline = timelinesMap[tjp];
|
|
142
|
-
payloadAddrs.push(...timeline.map(x => getIbGibAddr({ ibGib: x })));
|
|
143
|
-
});
|
|
144
|
-
// 2. INIT & Phase 2: Knowledge Exchange
|
|
105
|
+
// ---------------------------------------------------------
|
|
106
|
+
// 2. Knowledge Exchange (Init) & 3. Conflict Resolution
|
|
107
|
+
// ---------------------------------------------------------
|
|
108
|
+
// Phase 1: Init Data
|
|
145
109
|
const srcKnowledgeVector = {};
|
|
146
|
-
Object.keys(
|
|
147
|
-
const timeline =
|
|
148
|
-
const tip = timeline
|
|
110
|
+
Object.keys(srcTimelinesMap).forEach(tjp => {
|
|
111
|
+
const timeline = srcTimelinesMap[tjp];
|
|
112
|
+
const tip = timeline.at(-1);
|
|
149
113
|
srcKnowledgeVector[tjp] = getIbGibAddr({ ibGib: tip });
|
|
150
114
|
});
|
|
115
|
+
// Need to determine mode correctly. Just defaulting to push for now
|
|
116
|
+
// as per original impl instructions (or TODO)
|
|
151
117
|
const initData = {
|
|
152
118
|
knowledgeVector: srcKnowledgeVector,
|
|
153
119
|
identity: identity,
|
|
154
120
|
mode: 'push'
|
|
155
121
|
};
|
|
156
|
-
// Get Source Knowledge (Time -> Latest)
|
|
157
|
-
const srcTjps = Object.keys(timelinesMap);
|
|
158
|
-
// Get Dest Knowledge
|
|
159
|
-
const destKnowledge = await this.getLatestAddrsFromSpace({ space: dest, tjpAddrs: srcTjps });
|
|
160
|
-
const conflicts = [];
|
|
161
|
-
for (const tjp of srcTjps) {
|
|
162
|
-
const srcTimeline = timelinesMap[tjp];
|
|
163
|
-
const srcTip = srcTimeline[srcTimeline.length - 1];
|
|
164
|
-
const srcTipAddr = getIbGibAddr({ ibGib: srcTip });
|
|
165
|
-
const destTipAddr = destKnowledge[tjp];
|
|
166
|
-
if (destTipAddr && destTipAddr !== srcTipAddr) {
|
|
167
|
-
// Divergence found. Check if Source knows Dest's tip.
|
|
168
|
-
if (graph[destTipAddr]) {
|
|
169
|
-
// Fast-Forward: Dest tip IS in our graph, so we are ahead.
|
|
170
|
-
// No action needed, proceed to push.
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
// Conflict: Dest has a tip we don't know about.
|
|
174
|
-
conflicts.push(tjp);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
// Lock conflicts
|
|
179
|
-
for (const tjp of conflicts) {
|
|
180
|
-
if (logalot) {
|
|
181
|
-
console.log(`${lc} Conflict detected for TJP ${tjp}. Acquiring lock...`);
|
|
182
|
-
}
|
|
183
|
-
// Lock VALIDITY: 60 seconds?
|
|
184
|
-
await lockSpace({
|
|
185
|
-
space: dest,
|
|
186
|
-
scope: tjp,
|
|
187
|
-
secondsValid: 60,
|
|
188
|
-
instanceId: uuid,
|
|
189
|
-
});
|
|
190
|
-
// todo: Implement Pull & Merge here
|
|
191
|
-
// 1. Pull delta from Dest (destTip -> ... -> common ancestor)
|
|
192
|
-
// 2. Merge locally
|
|
193
|
-
// 3. Update graph/timelinesMap with merged result
|
|
194
|
-
if (logalot) {
|
|
195
|
-
console.warn(`${lc} Merge not fully implemented yet. Releasing lock.`);
|
|
196
|
-
}
|
|
197
|
-
await unlockSpace({
|
|
198
|
-
space: dest,
|
|
199
|
-
scope: tjp,
|
|
200
|
-
instanceId: uuid,
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
122
|
const initFrame = await this.createSyncFrame({
|
|
204
123
|
uuid,
|
|
205
124
|
stage: SyncStage.init,
|
|
206
125
|
payload: initData,
|
|
207
126
|
identity
|
|
208
127
|
});
|
|
209
|
-
// Persist Init to Dest (Handshake)
|
|
210
128
|
await putInSpace({ space: dest, ibGib: initFrame });
|
|
211
|
-
//
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
129
|
+
// Phase 2: Resolving Conflicts (Pull/Merge)
|
|
130
|
+
await this.resolveConflicts({
|
|
131
|
+
source,
|
|
132
|
+
dest,
|
|
133
|
+
srcTimelinesMap,
|
|
134
|
+
srcKnowledgeVector,
|
|
135
|
+
srcGraph,
|
|
136
|
+
uuid,
|
|
137
|
+
conflictStrategy: conflictStrategy || 'abort',
|
|
138
|
+
});
|
|
139
|
+
// ---------------------------------------------------------
|
|
140
|
+
// 4. Batch Stream (Delta)
|
|
141
|
+
// ---------------------------------------------------------
|
|
142
|
+
const payloadAddrs = [];
|
|
143
|
+
payloadAddrs.push(...srcStones.map(x => getIbGibAddr({ ibGib: x })));
|
|
144
|
+
srcSortedTjps.forEach(tjp => {
|
|
145
|
+
const timeline = srcTimelinesMap[tjp];
|
|
146
|
+
payloadAddrs.push(...timeline.map(x => getIbGibAddr({ ibGib: x })));
|
|
147
|
+
});
|
|
148
|
+
const deltaData = { payloadAddrs };
|
|
216
149
|
const deltaFrame = await this.createSyncFrame({
|
|
217
150
|
uuid,
|
|
218
151
|
stage: SyncStage.delta,
|
|
@@ -220,34 +153,16 @@ export class SyncSagaCoordinator {
|
|
|
220
153
|
identity
|
|
221
154
|
});
|
|
222
155
|
await putInSpace({ space: dest, ibGib: deltaFrame });
|
|
223
|
-
//
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
throw new Error(`(UNEXPECTED) addr not found in graph: ${addr} (E: 8a402324057849318625aa85721665a5)`);
|
|
234
|
-
}
|
|
235
|
-
return ibGib;
|
|
236
|
-
})
|
|
237
|
-
.filter(ibGib => !isPrimitive({ ibGib }));
|
|
238
|
-
if (chunkIbGibs.length > 0) {
|
|
239
|
-
if (logalot) {
|
|
240
|
-
console.log(`${lc} streaming batch ${Math.ceil(i / BATCH_SIZE) + 1} (${chunkIbGibs.length} ibGibs)...`);
|
|
241
|
-
}
|
|
242
|
-
// We don't set isDna: true here because the batch might contain mixed types.
|
|
243
|
-
// The Space implementation should handle routing based on internal metadata if needed.
|
|
244
|
-
await putInSpace({ space: dest, ibGibs: chunkIbGibs });
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
// 4. COMMIT
|
|
248
|
-
const commitData = {
|
|
249
|
-
success: true
|
|
250
|
-
};
|
|
156
|
+
// Streaming Logic
|
|
157
|
+
await this.processBatchStream({
|
|
158
|
+
dest,
|
|
159
|
+
payloadAddrs,
|
|
160
|
+
srcGraph
|
|
161
|
+
});
|
|
162
|
+
// ---------------------------------------------------------
|
|
163
|
+
// 5. Commit
|
|
164
|
+
// ---------------------------------------------------------
|
|
165
|
+
const commitData = { success: true };
|
|
251
166
|
const commitFrame = await this.createSyncFrame({
|
|
252
167
|
uuid,
|
|
253
168
|
stage: SyncStage.commit,
|
|
@@ -266,6 +181,237 @@ export class SyncSagaCoordinator {
|
|
|
266
181
|
}
|
|
267
182
|
}
|
|
268
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* Analyses the timelines in the provided graph, classifying them into stones and living timelines,
|
|
186
|
+
* and performing topological sort on the timelines.
|
|
187
|
+
*/
|
|
188
|
+
async analyzeTimelines({ domainIbGibs, space, }) {
|
|
189
|
+
const lc = `${this.lc}[${this.analyzeTimelines.name}]`;
|
|
190
|
+
const srcGraph = await getDependencyGraph({
|
|
191
|
+
ibGibs: domainIbGibs,
|
|
192
|
+
live: true,
|
|
193
|
+
space,
|
|
194
|
+
});
|
|
195
|
+
const srcGraphIsValid = srcGraph && Object.keys(srcGraph).length > 0;
|
|
196
|
+
if (logalot) {
|
|
197
|
+
console.log(`${lc} graph generated. nodes: ${srcGraphIsValid ? Object.keys(srcGraph).length : 0}`);
|
|
198
|
+
}
|
|
199
|
+
const srcIbGibs = srcGraphIsValid ? Object.values(srcGraph) : [];
|
|
200
|
+
const { mapWithTjp_YesDna: srcMapWithTjp_YesDna, mapWithTjp_NoDna: srcMapWithTjp_NoDna, mapWithoutTjps: src_MapWithoutTjps } = splitPerTjpAndOrDna({ ibGibs: srcIbGibs });
|
|
201
|
+
const srcStones = Object.values(src_MapWithoutTjps);
|
|
202
|
+
const srcLiving = [...Object.values(srcMapWithTjp_YesDna), ...Object.values(srcMapWithTjp_NoDna)];
|
|
203
|
+
if (logalot) {
|
|
204
|
+
console.log(`${lc} classification results (count):`);
|
|
205
|
+
console.log(`srcStones.length: ${srcStones.length}`);
|
|
206
|
+
console.log(`srcLiving.length: ${srcLiving.length}`);
|
|
207
|
+
}
|
|
208
|
+
const srcTimelinesMap = getTimelinesGroupedByTjp({ ibGibs: srcLiving });
|
|
209
|
+
const srcSortedTjps = this.sortTimelinesTopologically(srcTimelinesMap);
|
|
210
|
+
return { srcStones, srcTimelinesMap, srcSortedTjps, srcGraph };
|
|
211
|
+
}
|
|
212
|
+
async resolveConflicts({ source, dest, srcTimelinesMap, srcKnowledgeVector, srcGraph, uuid, conflictStrategy, }) {
|
|
213
|
+
const lc = `${this.lc}[${this.resolveConflicts.name}]`;
|
|
214
|
+
const srcTjps = Object.keys(srcTimelinesMap);
|
|
215
|
+
if (logalot) {
|
|
216
|
+
console.log(`${lc} getting latest addrs from space as destKnowledge. srcTjps: ${srcTjps} (I: a954369f2b58843a6773b00dd18eb325)`);
|
|
217
|
+
}
|
|
218
|
+
// Get Dest Knowledge
|
|
219
|
+
const destKnowledge = await this.getLatestAddrsFromSpace({ space: dest, tjpAddrs: srcTjps });
|
|
220
|
+
if (logalot) {
|
|
221
|
+
console.log(`${lc} destKnowledge:\n${pretty(destKnowledge)} (I: f76108b5f228f4e2e1e79ad387deb325)`);
|
|
222
|
+
}
|
|
223
|
+
const conflicts = [];
|
|
224
|
+
for (const tjp of srcTjps) {
|
|
225
|
+
const srcTimeline = srcTimelinesMap[tjp];
|
|
226
|
+
const srcTip = srcTimeline[srcTimeline.length - 1];
|
|
227
|
+
const srcTipAddr = getIbGibAddr({ ibGib: srcTip });
|
|
228
|
+
const destTipAddr = destKnowledge[tjp];
|
|
229
|
+
if (logalot) {
|
|
230
|
+
console.log(`${lc} Checking TJP: ${tjp}`);
|
|
231
|
+
console.log(`${lc} Source Tip: ${srcTipAddr}`);
|
|
232
|
+
console.log(`${lc} Dest Tip: ${destTipAddr}`);
|
|
233
|
+
}
|
|
234
|
+
if (destTipAddr && destTipAddr !== srcTipAddr) {
|
|
235
|
+
if (logalot) {
|
|
236
|
+
console.log(`${lc} Divergence found. Check if Source knows Dest's tip. (I: d084d8abb6a84cc4a8301b51dec98825)`);
|
|
237
|
+
}
|
|
238
|
+
if (srcGraph[destTipAddr]) {
|
|
239
|
+
// Fast-Forward: Dest tip IS in our graph, so we are ahead.
|
|
240
|
+
// No action needed, proceed to push.
|
|
241
|
+
if (logalot) {
|
|
242
|
+
console.log(`${lc} Fast-Forward (Source is ahead).`);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
// Conflict: Dest has a tip we don't know about.
|
|
247
|
+
conflicts.push(tjp);
|
|
248
|
+
if (logalot) {
|
|
249
|
+
console.log(`${lc} CONFLICT detected (Desc is ahead/divergent).`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
if (logalot) {
|
|
255
|
+
console.log(`${lc} No divergence detected (Tips match or Dest unknown).`);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
// Lock conflicts
|
|
260
|
+
for (const tjp of conflicts) {
|
|
261
|
+
if (logalot) {
|
|
262
|
+
console.log(`${lc} Conflict detected for TJP ${tjp}. Acquiring lock...`);
|
|
263
|
+
}
|
|
264
|
+
// Lock VALIDITY: 60 seconds?
|
|
265
|
+
await lockSpace({
|
|
266
|
+
space: dest,
|
|
267
|
+
scope: tjp,
|
|
268
|
+
secondsValid: 60,
|
|
269
|
+
instanceId: uuid,
|
|
270
|
+
});
|
|
271
|
+
// Pull & Merge Logic
|
|
272
|
+
try {
|
|
273
|
+
const destTipAddr = destKnowledge[tjp];
|
|
274
|
+
if (!destTipAddr) {
|
|
275
|
+
console.warn(`${lc} destTipAddr falsy in conflict loop? skipping. (W: 1a2b3c)`);
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
const srcTipAddr = srcKnowledgeVector[tjp];
|
|
279
|
+
if (logalot) {
|
|
280
|
+
console.log(`${lc} Pulling TJP ${tjp} from Dest...`);
|
|
281
|
+
}
|
|
282
|
+
// 1. Get Delta from Dest
|
|
283
|
+
// We want everything from Dest's tip back to what Source has.
|
|
284
|
+
// We can use getDependencyGraph with 'skipAddrs' if we know what to skip.
|
|
285
|
+
// Or just get the graph for the tip and filter?
|
|
286
|
+
// Graph helper is robust. Let's try to get the graph stopping at Source's tip.
|
|
287
|
+
// Optimization: We can't easily pass "stop at" to getDependencyGraph directly like "stopAt: [srcTipAddr]",
|
|
288
|
+
// but we can pass `gotten` or `skipAddrs`.
|
|
289
|
+
// If we pass `skipAddrs: [srcTipAddr]`, it should prune the graph traversal beyond that point?
|
|
290
|
+
// Actually `skipAddrs` prevents retrieving that node AND its past. So yes!
|
|
291
|
+
const skipAddrs = [];
|
|
292
|
+
if (srcTipAddr) {
|
|
293
|
+
skipAddrs.push(srcTipAddr);
|
|
294
|
+
}
|
|
295
|
+
const deltaGraph = await getDependencyGraph({
|
|
296
|
+
space: dest,
|
|
297
|
+
ibGibs: [],
|
|
298
|
+
ibGibAddrs: [destTipAddr],
|
|
299
|
+
live: false, // We usually just want the static graph back to the divergence point for now? Or live? Live is safer but slower.
|
|
300
|
+
// If Dest is ahead, its tip IS the latest.
|
|
301
|
+
skipAddrs,
|
|
302
|
+
});
|
|
303
|
+
if (logalot) {
|
|
304
|
+
console.log(`${lc} Delta graph size: ${Object.keys(deltaGraph).length}`);
|
|
305
|
+
}
|
|
306
|
+
// 2. Put Delta into Source
|
|
307
|
+
const deltaIbGibs = Object.values(deltaGraph);
|
|
308
|
+
if (deltaIbGibs.length > 0) {
|
|
309
|
+
if (logalot) {
|
|
310
|
+
console.log(`${lc} Putting ${deltaIbGibs.length} ibGibs into Source (UUID: ${source.data?.uuid})...`);
|
|
311
|
+
console.log(`${lc} Delta addrs: ${deltaIbGibs.map(x => getIbGibAddr({ ibGib: x })).join(', ')}`);
|
|
312
|
+
}
|
|
313
|
+
await putInSpace({ space: source, ibGibs: deltaIbGibs });
|
|
314
|
+
if (logalot) {
|
|
315
|
+
console.log(`${lc} Put complete.`);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
// 3. Re-evaluate / Merge
|
|
319
|
+
// Now Source has destTipAddr.
|
|
320
|
+
// If Source was strictly behind, srcTipAddr was an ancestor of destTipAddr.
|
|
321
|
+
// Source is now effectively fast-forwarded to destTipAddr.
|
|
322
|
+
// We need to check if we need to do a "Merge" (i.e. if Source HAD changes that are not in Dest).
|
|
323
|
+
// If srcTipAddr was in deltaGraph (Wait, we skipped it), or rather if srcTipAddr is an ancestor of destTip.
|
|
324
|
+
// If `skipAddrs` worked, we stopped AT srcTipAddr.
|
|
325
|
+
// Ideally check if `destTipAddr` reaches `srcTipAddr`.
|
|
326
|
+
// For now, in "Dest Ahead" scenario, we just assume we updated Source.
|
|
327
|
+
// We update our local tracking to proceed with potential Pushing back (if we were merging).
|
|
328
|
+
// If we simply pulled, do we need to push back?
|
|
329
|
+
// If Dest was strictly ahead, Source catch up. Source == Dest. No Push needed.
|
|
330
|
+
// Logic:
|
|
331
|
+
// If Source now has destTipAddr as Latest, we are good.
|
|
332
|
+
// TODO: Handle actual DIVERGENCE (Merge).
|
|
333
|
+
// This implementation covers "Dest Ahead" (Fast-Backward).
|
|
334
|
+
// But if we truly diverged (Source has changes not in Dest, and Dest has changes not in Source),
|
|
335
|
+
// checks are needed.
|
|
336
|
+
// If conflictStrategy is abort, we should probably check if `srcTipAddr` is an ancestor of `destTipAddr`.
|
|
337
|
+
// If `srcTipAddr` is NOT an ancestor, then we have a divergence.
|
|
338
|
+
// Getting ancestry is expensive without graph traversal.
|
|
339
|
+
// But we just pulled `deltaGraph`. If `srcTipAddr` was `skipped` during traversal,
|
|
340
|
+
// it implies it WAS reachable from `destTipAddr`.
|
|
341
|
+
// Wait, `skipAddrs` just stops traversal. It doesn't confirm reachability if we assume it stops *at* the addr.
|
|
342
|
+
// Actually `getDependencyGraph` with `skipAddrs` stops descending if it hits a skipped addr.
|
|
343
|
+
// If it hits it, it means `srcTipAddr` IS an ancestor.
|
|
344
|
+
// If it never hits it, `srcTipAddr` might NOT be an ancestor (divergence).
|
|
345
|
+
// Or `srcTipAddr` is just disjoint?
|
|
346
|
+
// Let's rely on the fact that if we simply "Pull", we are essentially overwriting Source's "Latest" pointer
|
|
347
|
+
// if we don't do anything else.
|
|
348
|
+
// If Source had 'A', and Dest had 'B', and we pull 'B'. Source now has 'A' and 'B'.
|
|
349
|
+
// If we don't merge, Source is now just "containing" B.
|
|
350
|
+
if (conflictStrategy === 'abort') {
|
|
351
|
+
// Verify if it's a true divergence or just a Fast-Forward we haven't tracked yet.
|
|
352
|
+
// If srcTipAddr is an ancestor of destTipAddr, it is a valid FF.
|
|
353
|
+
if (srcTipAddr) {
|
|
354
|
+
const isFF = await this.isAncestor({
|
|
355
|
+
ancestorAddr: srcTipAddr,
|
|
356
|
+
descendantAddr: destTipAddr,
|
|
357
|
+
space: source
|
|
358
|
+
});
|
|
359
|
+
if (isFF) {
|
|
360
|
+
if (logalot) {
|
|
361
|
+
console.log(`${lc} Verified Fast-Forward/Pull (srcTip is ancestor). No abort.`);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
throw new Error(`Sync Aborted: Divergence detected on TJP ${tjp}. Source Tip: ${srcTipAddr}, Dest Tip: ${destTipAddr}. Strategy is 'abort'.`);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
// source has no tip (new timeline for source), so it's a valid pull.
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
else if (conflictStrategy === 'optimistic') {
|
|
373
|
+
console.warn(`${lc} Optimistic merge not yet fully implemented. Proceeding with Pulled data but Source Tip is still the effective 'latest' for this session unless merged. (W: todo_merge)`);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
catch (err) {
|
|
377
|
+
console.error(`${lc} Error dealing with conflict/pull for TJP ${tjp}: ${extractErrorMsg(err)}`);
|
|
378
|
+
if (conflictStrategy === 'abort')
|
|
379
|
+
throw err;
|
|
380
|
+
}
|
|
381
|
+
await unlockSpace({
|
|
382
|
+
space: dest,
|
|
383
|
+
scope: tjp,
|
|
384
|
+
instanceId: uuid,
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
async processBatchStream({ dest, payloadAddrs, srcGraph }) {
|
|
389
|
+
const lc = `${this.lc}[${this.processBatchStream.name}]`;
|
|
390
|
+
// 3.1 Stream the actual data (Batch Stream)
|
|
391
|
+
// We must preserve the order in payloadAddrs to respect dependencies.
|
|
392
|
+
// We batch them to improve throughput.
|
|
393
|
+
const BATCH_SIZE = 20;
|
|
394
|
+
for (let i = 0; i < payloadAddrs.length; i += BATCH_SIZE) {
|
|
395
|
+
const chunkAddrs = payloadAddrs.slice(i, i + BATCH_SIZE);
|
|
396
|
+
const chunkIbGibs = chunkAddrs
|
|
397
|
+
.map(addr => {
|
|
398
|
+
const ibGib = srcGraph[addr];
|
|
399
|
+
if (!ibGib) {
|
|
400
|
+
throw new Error(`(UNEXPECTED) addr not found in graph: ${addr} (E: 8a402324057849318625aa85721665a5)`);
|
|
401
|
+
}
|
|
402
|
+
return ibGib;
|
|
403
|
+
})
|
|
404
|
+
.filter(ibGib => !isPrimitive({ ibGib }));
|
|
405
|
+
if (chunkIbGibs.length > 0) {
|
|
406
|
+
if (logalot) {
|
|
407
|
+
console.log(`${lc} streaming batch ${Math.ceil(i / BATCH_SIZE) + 1} (${chunkIbGibs.length} ibGibs)...`);
|
|
408
|
+
}
|
|
409
|
+
// We don't set isDna: true here because the batch might contain mixed types.
|
|
410
|
+
// The Space implementation should handle routing based on internal metadata if needed.
|
|
411
|
+
await putInSpace({ space: dest, ibGibs: chunkIbGibs });
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
269
415
|
async createSyncFrame({ uuid, stage, payload, identity }) {
|
|
270
416
|
const data = {
|
|
271
417
|
uuid,
|
|
@@ -305,31 +451,45 @@ export class SyncSagaCoordinator {
|
|
|
305
451
|
const lc = `${this.lc}[${this.getLatestAddrsFromSpace.name}]`;
|
|
306
452
|
try {
|
|
307
453
|
if (tjpAddrs.length === 0) {
|
|
454
|
+
console.warn(`${lc} getting latest addrs for empty tjpAddrs? this may be reasonable but sounds odd. (W: 2f57c6d7c195034e982dfd38201db825)`);
|
|
308
455
|
return {};
|
|
309
456
|
}
|
|
310
|
-
|
|
311
|
-
const
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
cmd: 'get',
|
|
315
|
-
cmdModifiers: ['latest', 'addrs'],
|
|
316
|
-
ibGibAddrs: tjpAddrs,
|
|
317
|
-
}
|
|
457
|
+
let map = {};
|
|
458
|
+
const resLatest = await getLatestAddrs({
|
|
459
|
+
tjpAddrs,
|
|
460
|
+
space,
|
|
318
461
|
});
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
else {
|
|
330
|
-
console.warn(`${lc} result addrs length mismatch. requested: ${tjpAddrs.length}, got: ${result.data.addrs.length}. Mapping might be unsafe.`);
|
|
331
|
-
}
|
|
462
|
+
if (!resLatest.data) {
|
|
463
|
+
throw new Error(`(UNEXPECTED) resLatest.data falsy? (E: 289dd61a79fa33a4f87baaa83e3c0825)`);
|
|
464
|
+
}
|
|
465
|
+
if (resLatest.data.success) {
|
|
466
|
+
map = clone(resLatest.data.latestAddrsMap);
|
|
467
|
+
}
|
|
468
|
+
else {
|
|
469
|
+
tjpAddrs.forEach(x => { map[x] = null; });
|
|
332
470
|
}
|
|
471
|
+
// Using the space's witness/argy pattern to invoke 'get' with 'latest' modifier
|
|
472
|
+
// const arg = await space.argy({
|
|
473
|
+
// ibMetadata: getSpaceArgMetadata({ space }),
|
|
474
|
+
// argData: {
|
|
475
|
+
// cmd: 'get',
|
|
476
|
+
// cmdModifiers: ['latest', 'addrs'],
|
|
477
|
+
// ibGibAddrs: tjpAddrs,
|
|
478
|
+
// }
|
|
479
|
+
// });
|
|
480
|
+
// const result = await space.witness(arg);
|
|
481
|
+
// const map: { [tjp: string]: string } = {};
|
|
482
|
+
// if (result?.data?.success && result.data.addrs) {
|
|
483
|
+
// // assume 1-to-1 mapping order as per convention if successful
|
|
484
|
+
// // verification is hard without specific return map
|
|
485
|
+
// if (result.data.addrs.length === tjpAddrs.length) {
|
|
486
|
+
// for (let i = 0; i < tjpAddrs.length; i++) {
|
|
487
|
+
// map[tjpAddrs[i]] = result.data.addrs[i];
|
|
488
|
+
// }
|
|
489
|
+
// } else {
|
|
490
|
+
// console.warn(`${lc} result addrs length mismatch. requested: ${tjpAddrs.length}, got: ${result.data.addrs.length}. Mapping might be unsafe.`);
|
|
491
|
+
// }
|
|
492
|
+
// }
|
|
333
493
|
return map;
|
|
334
494
|
}
|
|
335
495
|
catch (error) {
|
|
@@ -395,5 +555,38 @@ export class SyncSagaCoordinator {
|
|
|
395
555
|
});
|
|
396
556
|
return sorted;
|
|
397
557
|
}
|
|
558
|
+
/**
|
|
559
|
+
* Checks if an address is an ancestor of another by traversing `past` relations.
|
|
560
|
+
* Uses BFS. Returns true if `ancestorAddr` is found in the history of `descendantAddr`.
|
|
561
|
+
*/
|
|
562
|
+
async isAncestor({ ancestorAddr, descendantAddr, space, }) {
|
|
563
|
+
if (ancestorAddr === descendantAddr)
|
|
564
|
+
return true;
|
|
565
|
+
const queue = [descendantAddr];
|
|
566
|
+
const visited = new Set();
|
|
567
|
+
while (queue.length > 0) {
|
|
568
|
+
const currentAddr = queue.shift();
|
|
569
|
+
if (visited.has(currentAddr))
|
|
570
|
+
continue;
|
|
571
|
+
visited.add(currentAddr);
|
|
572
|
+
if (currentAddr === ancestorAddr)
|
|
573
|
+
return true;
|
|
574
|
+
// Get node to find past
|
|
575
|
+
const res = await getFromSpace({ space, addr: currentAddr });
|
|
576
|
+
if (!res.success || !res.ibGibs || res.ibGibs.length === 0) {
|
|
577
|
+
continue;
|
|
578
|
+
}
|
|
579
|
+
const node = res.ibGibs[0];
|
|
580
|
+
if (node.rel8ns && node.rel8ns.past) {
|
|
581
|
+
// Check pasts
|
|
582
|
+
for (const pastAddr of node.rel8ns.past) {
|
|
583
|
+
if (!visited.has(pastAddr)) {
|
|
584
|
+
queue.push(pastAddr);
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
return false;
|
|
590
|
+
}
|
|
398
591
|
}
|
|
399
592
|
//# sourceMappingURL=sync-saga-coordinator.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-saga-coordinator.mjs","sourceRoot":"","sources":["../../src/sync/sync-saga-coordinator.mts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-saga-coordinator.mjs","sourceRoot":"","sources":["../../src/sync/sync-saga-coordinator.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inner-space-v1.d.mts","sourceRoot":"","sources":["../../../../src/witness/space/inner-space/inner-space-v1.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAKzD,OAAO,EACa,qBAAqB,EAAE,uBAAuB,EAC9D,sBAAsB,EAAE,oBAAoB,EAAE,sBAAsB,EACpE,qBAAqB,EACxB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,uBAAuB,EAAsD,MAAM,uDAAuD,CAAC;AACpJ,OAAO,EAA+B,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAM3D;;;;;;GAMG;AACH,qBAAa,aAAa,CACtB,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,KAAK,SAAS,iBAAiB,GAAG,iBAAiB,EACnD,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,CAC3D,SAAQ,uBAAuB,CAC7B,MAAM,EACN,KAAK,EACL,OAAO,EACP,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,EAAE,uBAAuB,CAAC,EAC9E,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;IAE5E;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,CAA6B;IAEjD;;;;OAIG;IACH,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;gBAGnC,WAAW,EAAE,KAAK,EAClB,aAAa,CAAC,EAAE,OAAO;IAK3B;;OAEG;cACa,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"inner-space-v1.d.mts","sourceRoot":"","sources":["../../../../src/witness/space/inner-space/inner-space-v1.mts"],"names":[],"mappings":"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"}
|