@atlaspack/core 2.15.1 → 2.16.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @atlaspack/core
2
2
 
3
+ ## 2.16.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#520](https://github.com/atlassian-labs/atlaspack/pull/520) [`90150df`](https://github.com/atlassian-labs/atlaspack/commit/90150dfb68236e1d1c11813108ecabd92cff9366) Thanks [@pancaspe87](https://github.com/pancaspe87)! - Modify "large blobs" to be written to the LMDB cache
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [[`f27d39e`](https://github.com/atlassian-labs/atlaspack/commit/f27d39e767b06def059944b3bc5fd50797eaea96)]:
12
+ - @atlaspack/rust@3.1.1
13
+ - @atlaspack/cache@3.0.1
14
+ - @atlaspack/fs@2.14.3
15
+ - @atlaspack/logger@2.14.3
16
+ - @atlaspack/utils@2.14.3
17
+ - @atlaspack/package-manager@2.14.3
18
+ - @atlaspack/workers@2.14.3
19
+ - @atlaspack/types@2.14.3
20
+ - @atlaspack/plugin@2.14.3
21
+
3
22
  ## 2.15.1
4
23
 
5
24
  ### Patch Changes
@@ -759,8 +759,10 @@ class RequestTracker {
759
759
  return result;
760
760
  } else if (node.resultCacheKey != null && ifMatch == null) {
761
761
  let key = node.resultCacheKey;
762
- (0, _assert().default)(this.options.cache.hasLargeBlob(key));
763
- let cachedResult = (0, _buildCache().deserialize)(await this.options.cache.getLargeBlob(key));
762
+ if (!(0, _featureFlags().getFeatureFlag)('cachePerformanceImprovements')) {
763
+ (0, _assert().default)(this.options.cache.hasLargeBlob(key));
764
+ }
765
+ let cachedResult = (0, _featureFlags().getFeatureFlag)('cachePerformanceImprovements') ? (0, _nullthrows().default)(await this.options.cache.get(key)) : (0, _buildCache().deserialize)(await this.options.cache.getLargeBlob(key));
764
766
  node.result = cachedResult;
765
767
  return cachedResult;
766
768
  }
@@ -937,16 +939,21 @@ class RequestTracker {
937
939
  size: this.graph.nodes.length
938
940
  });
939
941
  let serialisedGraph = this.graph.serialize();
940
-
941
- // Delete an existing request graph cache, to prevent invalid states
942
- await this.options.cache.deleteLargeBlob(requestGraphKey);
942
+ if (!(0, _featureFlags().getFeatureFlag)('cachePerformanceImprovements')) {
943
+ // Delete an existing request graph cache, to prevent invalid states
944
+ await this.options.cache.deleteLargeBlob(requestGraphKey);
945
+ }
943
946
  const serialiseAndSet = async (key, contents) => {
944
947
  if (signal !== null && signal !== void 0 && signal.aborted) {
945
948
  throw new Error('Serialization was aborted');
946
949
  }
947
- await this.options.cache.setLargeBlob(key, (0, _buildCache().serialize)(contents), signal ? {
948
- signal: signal
949
- } : undefined);
950
+ if ((0, _featureFlags().getFeatureFlag)('cachePerformanceImprovements')) {
951
+ await this.options.cache.set(key, (0, _buildCache().serialize)(contents));
952
+ } else {
953
+ await this.options.cache.setLargeBlob(key, (0, _buildCache().serialize)(contents), signal ? {
954
+ signal: signal
955
+ } : undefined);
956
+ }
950
957
  total += 1;
951
958
  (0, _ReporterRunner.report)({
952
959
  type: 'cache',
@@ -1050,6 +1057,13 @@ function getRequestGraphNodeKey(index, cacheKey) {
1050
1057
  }
1051
1058
  async function readAndDeserializeRequestGraph(cache, requestGraphKey, cacheKey) {
1052
1059
  let bufferLength = 0;
1060
+ if ((0, _featureFlags().getFeatureFlag)('cachePerformanceImprovements')) {
1061
+ let data = (0, _nullthrows().default)(await cache.get(requestGraphKey));
1062
+ return {
1063
+ requestGraph: RequestGraph.deserialize(data),
1064
+ bufferLength
1065
+ };
1066
+ }
1053
1067
  const getAndDeserialize = async key => {
1054
1068
  let buffer = await cache.getLargeBlob(key);
1055
1069
  bufferLength += Buffer.byteLength(buffer);
@@ -1087,7 +1101,7 @@ async function loadRequestGraph(options) {
1087
1101
  snapshotKey
1088
1102
  }
1089
1103
  });
1090
- if (await options.cache.hasLargeBlob(requestGraphKey)) {
1104
+ if (!(0, _featureFlags().getFeatureFlag)('cachePerformanceImprovements') && (await options.cache.hasLargeBlob(requestGraphKey))) {
1091
1105
  try {
1092
1106
  let {
1093
1107
  requestGraph
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaspack/core",
3
- "version": "2.15.1",
3
+ "version": "2.16.0",
4
4
  "license": "(MIT OR Apache-2.0)",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -22,20 +22,20 @@
22
22
  "dependencies": {
23
23
  "@mischnic/json-sourcemap": "^0.1.0",
24
24
  "@atlaspack/build-cache": "2.13.3",
25
- "@atlaspack/cache": "3.0.0",
25
+ "@atlaspack/cache": "3.0.1",
26
26
  "@atlaspack/diagnostic": "2.14.1",
27
27
  "@atlaspack/events": "2.14.1",
28
28
  "@atlaspack/feature-flags": "2.14.2",
29
- "@atlaspack/fs": "2.14.2",
29
+ "@atlaspack/fs": "2.14.3",
30
30
  "@atlaspack/graph": "3.4.2",
31
- "@atlaspack/logger": "2.14.2",
32
- "@atlaspack/package-manager": "2.14.2",
33
- "@atlaspack/plugin": "2.14.2",
31
+ "@atlaspack/logger": "2.14.3",
32
+ "@atlaspack/package-manager": "2.14.3",
33
+ "@atlaspack/plugin": "2.14.3",
34
34
  "@atlaspack/profiler": "2.14.2",
35
- "@atlaspack/rust": "3.1.0",
36
- "@atlaspack/types": "2.14.2",
37
- "@atlaspack/utils": "2.14.2",
38
- "@atlaspack/workers": "2.14.2",
35
+ "@atlaspack/rust": "3.1.1",
36
+ "@atlaspack/types": "2.14.3",
37
+ "@atlaspack/utils": "2.14.3",
38
+ "@atlaspack/workers": "2.14.3",
39
39
  "@parcel/source-map": "^2.1.1",
40
40
  "base-x": "^3.0.8",
41
41
  "browserslist": "^4.6.6",
@@ -1228,10 +1228,13 @@ export default class RequestTracker {
1228
1228
  return result;
1229
1229
  } else if (node.resultCacheKey != null && ifMatch == null) {
1230
1230
  let key = node.resultCacheKey;
1231
- invariant(this.options.cache.hasLargeBlob(key));
1232
- let cachedResult: T = deserialize(
1233
- await this.options.cache.getLargeBlob(key),
1234
- );
1231
+ if (!getFeatureFlag('cachePerformanceImprovements')) {
1232
+ invariant(this.options.cache.hasLargeBlob(key));
1233
+ }
1234
+
1235
+ let cachedResult: T = getFeatureFlag('cachePerformanceImprovements')
1236
+ ? nullthrows(await this.options.cache.get<T>(key))
1237
+ : deserialize(await this.options.cache.getLargeBlob(key));
1235
1238
  node.result = cachedResult;
1236
1239
  return cachedResult;
1237
1240
  }
@@ -1472,8 +1475,10 @@ export default class RequestTracker {
1472
1475
 
1473
1476
  let serialisedGraph = this.graph.serialize();
1474
1477
 
1475
- // Delete an existing request graph cache, to prevent invalid states
1476
- await this.options.cache.deleteLargeBlob(requestGraphKey);
1478
+ if (!getFeatureFlag('cachePerformanceImprovements')) {
1479
+ // Delete an existing request graph cache, to prevent invalid states
1480
+ await this.options.cache.deleteLargeBlob(requestGraphKey);
1481
+ }
1477
1482
 
1478
1483
  const serialiseAndSet = async (
1479
1484
  key: string,
@@ -1484,15 +1489,19 @@ export default class RequestTracker {
1484
1489
  throw new Error('Serialization was aborted');
1485
1490
  }
1486
1491
 
1487
- await this.options.cache.setLargeBlob(
1488
- key,
1489
- serialize(contents),
1490
- signal
1491
- ? {
1492
- signal: signal,
1493
- }
1494
- : undefined,
1495
- );
1492
+ if (getFeatureFlag('cachePerformanceImprovements')) {
1493
+ await this.options.cache.set(key, serialize(contents));
1494
+ } else {
1495
+ await this.options.cache.setLargeBlob(
1496
+ key,
1497
+ serialize(contents),
1498
+ signal
1499
+ ? {
1500
+ signal: signal,
1501
+ }
1502
+ : undefined,
1503
+ );
1504
+ }
1496
1505
 
1497
1506
  total += 1;
1498
1507
 
@@ -1631,6 +1640,15 @@ export async function readAndDeserializeRequestGraph(
1631
1640
  cacheKey: string,
1632
1641
  ): Async<{|requestGraph: RequestGraph, bufferLength: number|}> {
1633
1642
  let bufferLength = 0;
1643
+
1644
+ if (getFeatureFlag('cachePerformanceImprovements')) {
1645
+ let data = nullthrows(await cache.get(requestGraphKey));
1646
+ return {
1647
+ requestGraph: RequestGraph.deserialize(data),
1648
+ bufferLength,
1649
+ };
1650
+ }
1651
+
1634
1652
  const getAndDeserialize = async (key: string) => {
1635
1653
  let buffer = await cache.getLargeBlob(key);
1636
1654
  bufferLength += Buffer.byteLength(buffer);
@@ -1680,7 +1698,11 @@ async function loadRequestGraph(options): Async<RequestGraph> {
1680
1698
  snapshotKey,
1681
1699
  },
1682
1700
  });
1683
- if (await options.cache.hasLargeBlob(requestGraphKey)) {
1701
+
1702
+ if (
1703
+ !getFeatureFlag('cachePerformanceImprovements') &&
1704
+ (await options.cache.hasLargeBlob(requestGraphKey))
1705
+ ) {
1684
1706
  try {
1685
1707
  let {requestGraph} = await readAndDeserializeRequestGraph(
1686
1708
  options.cache,