@rocicorp/zero 1.4.0-canary.2 → 1.4.0-canary.4
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/out/analyze-query/src/analyze-cli.d.ts +0 -1
- package/out/analyze-query/src/analyze-cli.d.ts.map +1 -1
- package/out/analyze-query/src/analyze-cli.js +0 -1
- package/out/analyze-query/src/analyze-cli.js.map +1 -1
- package/out/analyze-query/src/bin-analyze.js +10 -9
- package/out/analyze-query/src/bin-analyze.js.map +1 -1
- package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
- package/out/replicache/src/kv/sqlite-store.js +7 -1
- package/out/replicache/src/kv/sqlite-store.js.map +1 -1
- package/out/replicache/src/with-transactions.d.ts.map +1 -1
- package/out/replicache/src/with-transactions.js +16 -2
- package/out/replicache/src/with-transactions.js.map +1 -1
- package/out/zero/package.js +8 -2
- package/out/zero/package.js.map +1 -1
- package/out/zero/src/adapters/kysely.d.ts +2 -0
- package/out/zero/src/adapters/kysely.d.ts.map +1 -0
- package/out/zero/src/adapters/kysely.js +2 -0
- package/out/zero/src/zero-cache-dev.js +2 -0
- package/out/zero/src/zero-cache-dev.js.map +1 -1
- package/out/zero/src/zero.js +2 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +14 -1
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/db/migration-lite.js +8 -1
- package/out/zero-cache/src/db/migration-lite.js.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.d.ts +1 -1
- package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.js +13 -13
- package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
- package/out/zero-cache/src/observability/metrics.d.ts +36 -6
- package/out/zero-cache/src/observability/metrics.d.ts.map +1 -1
- package/out/zero-cache/src/observability/metrics.js +55 -10
- package/out/zero-cache/src/observability/metrics.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +2 -0
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
- package/out/zero-cache/src/server/runner/run-worker.js +9 -1
- package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts +2 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.js +6 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
- package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
- package/out/zero-cache/src/services/analyze.js +1 -1
- package/out/zero-cache/src/services/analyze.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +6 -3
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +2 -0
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js +10 -3
- package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +3 -6
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +2 -2
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +5 -8
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js +4 -7
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +16 -26
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-client/src/client/version.js +1 -1
- package/out/zero-client/src/mod.d.ts +1 -0
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-client/src/mod.js +1 -0
- package/out/zero-react/src/zero.js +1 -0
- package/out/zero-server/src/adapters/kysely.d.ts +69 -0
- package/out/zero-server/src/adapters/kysely.d.ts.map +1 -0
- package/out/zero-server/src/adapters/kysely.js +82 -0
- package/out/zero-server/src/adapters/kysely.js.map +1 -0
- package/out/zero-solid/src/zero.js +1 -0
- package/out/zql/src/query/validate-input.d.ts +8 -0
- package/out/zql/src/query/validate-input.d.ts.map +1 -1
- package/out/zql/src/query/validate-input.js +15 -2
- package/out/zql/src/query/validate-input.js.map +1 -1
- package/out/zqlite/src/query-builder.js +19 -7
- package/out/zqlite/src/query-builder.js.map +1 -1
- package/package.json +10 -2
- package/out/analyze-query/src/explain-queries.d.ts +0 -4
- package/out/analyze-query/src/explain-queries.d.ts.map +0 -1
- package/out/analyze-query/src/explain-queries.js +0 -13
- package/out/analyze-query/src/explain-queries.js.map +0 -1
- package/out/otel/src/test-log-config.d.ts +0 -8
- package/out/otel/src/test-log-config.d.ts.map +0 -1
- package/out/otel/src/test-log-config.js +0 -12
- package/out/otel/src/test-log-config.js.map +0 -1
|
@@ -8,7 +8,7 @@ import { stringify } from "../../../../shared/src/bigint-json.js";
|
|
|
8
8
|
import { manualSpan, startAsyncSpan, startSpan } from "../../../../otel/src/span.js";
|
|
9
9
|
import { ZERO_VERSION_COLUMN_NAME } from "../replicator/schema/constants.js";
|
|
10
10
|
import { transformAndHashQuery } from "../../auth/read-authorizer.js";
|
|
11
|
-
import { getOrCreateCounter,
|
|
11
|
+
import { getOrCreateCounter, getOrCreateLatencyHistogram, getOrCreateUpDownCounter } from "../../observability/metrics.js";
|
|
12
12
|
import { rowIDString } from "../../types/row-key.js";
|
|
13
13
|
import "../replicator/schema/replication-state.js";
|
|
14
14
|
import { ResetPipelinesSignal } from "./snapshotter.js";
|
|
@@ -86,25 +86,13 @@ var ViewSyncerService = class {
|
|
|
86
86
|
#queryReplacements = /* @__PURE__ */ new Map();
|
|
87
87
|
#activeClients = getOrCreateUpDownCounter("sync", "active-clients", "Number of active sync clients");
|
|
88
88
|
#hydrations = getOrCreateCounter("sync", "hydration", "Number of query hydrations");
|
|
89
|
-
#hydrationTime =
|
|
90
|
-
|
|
91
|
-
unit: "s"
|
|
92
|
-
});
|
|
93
|
-
#transactionAdvanceTime = getOrCreateHistogram("sync", "advance-time", {
|
|
94
|
-
description: "Time to advance all queries for a given client group after applying a new transaction to the replica.",
|
|
95
|
-
unit: "s"
|
|
96
|
-
});
|
|
89
|
+
#hydrationTime = getOrCreateLatencyHistogram("sync", "hydration-time", "Time to hydrate a query.");
|
|
90
|
+
#transactionAdvanceTime = getOrCreateLatencyHistogram("sync", "advance-time", "Time to advance all queries for a given client group after applying a new transaction to the replica.");
|
|
97
91
|
#queryTransformations = getOrCreateCounter("sync", "query.transformations", "Number of query transformations performed");
|
|
98
|
-
#queryTransformationTime =
|
|
99
|
-
description: "Time to transform custom queries via API server",
|
|
100
|
-
unit: "s"
|
|
101
|
-
});
|
|
92
|
+
#queryTransformationTime = getOrCreateLatencyHistogram("sync", "query.transformation-time", "Time to transform custom queries via API server.");
|
|
102
93
|
#queryTransformationHashChanges = getOrCreateCounter("sync", "query.transformation-hash-changes", "Number of times query transformation hash changed");
|
|
103
94
|
#queryTransformationNoOps = getOrCreateCounter("sync", "query.transformation-no-ops", "Number of times query transformation resulted in no-op (hash unchanged)");
|
|
104
|
-
#lockWaitTime =
|
|
105
|
-
description: "Time spent waiting to acquire the ViewSyncer lock.",
|
|
106
|
-
unit: "s"
|
|
107
|
-
});
|
|
95
|
+
#lockWaitTime = getOrCreateLatencyHistogram("sync", "lock-wait-time", "Time spent waiting to acquire the ViewSyncer lock.");
|
|
108
96
|
#pipelineResets = getOrCreateCounter("sync", "pipeline-resets", "Number of pipeline resets");
|
|
109
97
|
#inspectorDelegate;
|
|
110
98
|
#config;
|
|
@@ -132,7 +120,7 @@ var ViewSyncerService = class {
|
|
|
132
120
|
this.#lc.debug?.("about to acquire lock for cvr ", rid);
|
|
133
121
|
const lockWaitStart = performance.now();
|
|
134
122
|
return this.#lock.withLock(async () => {
|
|
135
|
-
this.#lockWaitTime.
|
|
123
|
+
this.#lockWaitTime.recordMs(performance.now() - lockWaitStart);
|
|
136
124
|
this.#lc.debug?.("acquired lock in #runInLockWithCVR ", rid);
|
|
137
125
|
const lc = this.#lc.withContext("lock", rid);
|
|
138
126
|
if (!this.#stateChanges.active) {
|
|
@@ -625,7 +613,7 @@ var ViewSyncerService = class {
|
|
|
625
613
|
});
|
|
626
614
|
const elapsed = timer.totalElapsed();
|
|
627
615
|
this.#hydrations.add(1);
|
|
628
|
-
this.#hydrationTime.
|
|
616
|
+
this.#hydrationTime.recordMs(elapsed);
|
|
629
617
|
this.#addQueryMaterializationServerMetric(transformationHash, elapsed);
|
|
630
618
|
lc.debug?.(`hydrated ${count} rows for ${queryID} (${elapsed} ms)`);
|
|
631
619
|
}
|
|
@@ -727,8 +715,8 @@ var ViewSyncerService = class {
|
|
|
727
715
|
this.#queryTransformations.add(1, { result: "error" });
|
|
728
716
|
throw e;
|
|
729
717
|
} finally {
|
|
730
|
-
const transformDuration =
|
|
731
|
-
this.#queryTransformationTime.
|
|
718
|
+
const transformDuration = performance.now() - transformStart;
|
|
719
|
+
this.#queryTransformationTime.recordMs(transformDuration);
|
|
732
720
|
}
|
|
733
721
|
const successfullyTransformedCustomQueries = /* @__PURE__ */ new Map();
|
|
734
722
|
erroredQueryIDs = this.#processTransformedCustomQueries(lc, transformedCustomQueries.result, (q) => {
|
|
@@ -756,10 +744,11 @@ var ViewSyncerService = class {
|
|
|
756
744
|
}
|
|
757
745
|
}
|
|
758
746
|
const removeQueriesQueryIds = new Set([...Object.values(cvr.queries).filter((q) => expired(ttlClock, q)).map((q) => q.id), ...erroredQueryIDs || []]);
|
|
759
|
-
const addQueries = transformedQueries.map(({ id, transformed }) => ({
|
|
747
|
+
const addQueries = transformedQueries.map(({ id, origQuery, transformed }) => ({
|
|
760
748
|
id,
|
|
761
749
|
ast: transformed.transformedAst,
|
|
762
|
-
transformationHash: transformed.transformationHash
|
|
750
|
+
transformationHash: transformed.transformationHash,
|
|
751
|
+
name: origQuery.type === "custom" ? origQuery.name : void 0
|
|
763
752
|
})).filter((q) => !removeQueriesQueryIds.has(q.id) && this.#pipelines.queries().get(q.id)?.transformationHash !== q.transformationHash);
|
|
764
753
|
lc.info?.(`syncQueryPipelineSet: ${cvrQueryEntires.length} CVR queries, ${customQueriesToTransform.length} custom re-transformed, ${erroredQueryIDs?.length ?? 0} errored, ${removeQueriesQueryIds.size} to remove, ${addQueries.length} to add`);
|
|
765
754
|
for (const q of addQueries) {
|
|
@@ -832,11 +821,12 @@ var ViewSyncerService = class {
|
|
|
832
821
|
if (elapsed > slowHydrateThreshold) lc.warn?.("Slow query materialization", elapsed, q.ast);
|
|
833
822
|
manualSpan(tracer, "vs.addAndConsumeQuery", elapsed, {
|
|
834
823
|
hash: q.id,
|
|
835
|
-
transformationHash: q.transformationHash
|
|
824
|
+
transformationHash: q.transformationHash,
|
|
825
|
+
...q.name !== void 0 && { name: q.name }
|
|
836
826
|
});
|
|
837
827
|
}
|
|
838
828
|
hydrations.add(1);
|
|
839
|
-
hydrationTime.
|
|
829
|
+
hydrationTime.recordMs(totalProcessTime);
|
|
840
830
|
}
|
|
841
831
|
await this.#processChanges(lc, timer, generateRowChanges(this.#slowHydrateThreshold), updater, pokers);
|
|
842
832
|
await startAsyncSpan(tracer, "vs.#syncQueryPipelineSet.deleteUnreferencedRows", async () => {
|
|
@@ -1009,7 +999,7 @@ var ViewSyncerService = class {
|
|
|
1009
999
|
const wallTime = performance.now() - start;
|
|
1010
1000
|
const totalProcessTime = timer.totalElapsed();
|
|
1011
1001
|
lc.info?.(`finished processing advancement of ${numChanges} changes ((process: ${totalProcessTime} ms, wall: ${wallTime} ms))`);
|
|
1012
|
-
this.#transactionAdvanceTime.
|
|
1002
|
+
this.#transactionAdvanceTime.recordMs(totalProcessTime);
|
|
1013
1003
|
return "success";
|
|
1014
1004
|
});
|
|
1015
1005
|
}
|