@balena/open-balena-api 52.0.3 → 52.0.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.
@@ -5,6 +5,9 @@ import { version } from "../../lib/config.js";
5
5
  import { getRedisOptions } from "../redis/config.js";
6
6
  const DEFAULT_LOCAL_MAX = 500;
7
7
  const DEFAULT_LOCAL_TTL = Infinity;
8
+ // The largest Smi on builds with 31 bit Smis, eg with pointer compression, which is used as the expiry of entries without
9
+ // a ttl so that the expiries of all entries can stay Smis
10
+ const NO_EXPIRY = 2 ** 30 - 1;
8
11
  const usedCacheKeys = new Set();
9
12
  // All stores share a single connection rather than one each, which also lets node-redis pipeline commands across all
10
13
  // of them. We create it here rather than using `infra/redis` because importing that also imports pinejs, and this
@@ -33,6 +36,17 @@ const getSharedRedis = () => {
33
36
  sharedRedis ??= createSharedRedis();
34
37
  return sharedRedis;
35
38
  };
39
+ /**
40
+ * Whole seconds since the process started, which stays a Smi so that storing it per entry does not need a HeapNumber
41
+ * like a millisecond timestamp would. A timer updates it twice a second because reading the clock was a large part of
42
+ * the cost of a local hit, and it reads the clock rather than counting ticks because timers run late, which would add up
43
+ * and make entries outlive their ttl by more the longer the ttl
44
+ */
45
+ const readNowSeconds = () => Math.floor(process.uptime());
46
+ let nowSeconds = readNowSeconds();
47
+ setInterval(() => {
48
+ nowSeconds = readNowSeconds();
49
+ }, 500).unref();
36
50
  /**
37
51
  * A plain Map LRU with a ttl, which avoids the cost of generic machinery on such a hot path. Maps iterate in insertion
38
52
  * order, so re-inserting on every hit keeps the least recently used entry first
@@ -40,10 +54,11 @@ const getSharedRedis = () => {
40
54
  class LocalCache {
41
55
  entries = new Map();
42
56
  max;
43
- ttlMs;
44
- constructor(max, ttlMs) {
57
+ ttl;
58
+ /** @param ttl In whole seconds, or `Infinity` for no expiry */
59
+ constructor(max, ttl) {
45
60
  this.max = max;
46
- this.ttlMs = ttlMs;
61
+ this.ttl = ttl;
47
62
  }
48
63
  get(key) {
49
64
  const entry = this.entries.get(key);
@@ -51,7 +66,9 @@ class LocalCache {
51
66
  return;
52
67
  }
53
68
  this.entries.delete(key);
54
- if (entry.expiresAt <= Date.now()) {
69
+ // Expiring only once the current second is past `expiresAt` means entries live for at least their ttl, less the half
70
+ // a second that `nowSeconds` can lag behind the clock
71
+ if (entry.expiresAt < nowSeconds) {
55
72
  return;
56
73
  }
57
74
  this.entries.set(key, entry);
@@ -62,7 +79,10 @@ class LocalCache {
62
79
  if (this.entries.size >= this.max) {
63
80
  this.entries.delete(this.entries.keys().next().value);
64
81
  }
65
- this.entries.set(key, { value, expiresAt: Date.now() + this.ttlMs });
82
+ this.entries.set(key, {
83
+ value,
84
+ expiresAt: this.ttl === Infinity ? NO_EXPIRY : nowSeconds + this.ttl,
85
+ });
66
86
  }
67
87
  delete(key) {
68
88
  this.entries.delete(key);
@@ -82,8 +102,9 @@ export function createMultiLevelStore(cacheKey, opts) {
82
102
  let localCache;
83
103
  if (local !== false) {
84
104
  const { max, ttl } = { ...baseOpts, ...local };
85
- // A max of 0 uses the default, as does a ttl of 0 for no expiry, the same as cache-manager's memory store
86
- localCache = new LocalCache(max == null || max === 0 ? DEFAULT_LOCAL_MAX : max, ttl ? ttl * 1000 : DEFAULT_LOCAL_TTL);
105
+ // A max of 0 uses the default, as does a ttl of 0 for no expiry, the same as cache-manager's memory store. The local
106
+ // expiry is only tracked to the second, so a fractional ttl is rounded up
107
+ localCache = new LocalCache(max == null || max === 0 ? DEFAULT_LOCAL_MAX : max, ttl ? Math.ceil(ttl) : DEFAULT_LOCAL_TTL);
87
108
  }
88
109
  const { ttl: sharedTtl, refreshThreshold } = { ...baseOpts, ...global };
89
110
  // redis cannot cache undefined/null values whilst others can, so we explicitly mark those as uncacheable
@@ -1 +1 @@
1
- {"version":3,"file":"multi-level-store.js","sourceRoot":"","sources":["../../../src/infra/cache/multi-level-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multi-level-store.js","sourceRoot":"","sources":["../../../src/infra/cache/multi-level-store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@balena/open-balena-api",
3
3
  "description": "Internet of things, Made Simple",
4
- "version": "52.0.3",
4
+ "version": "52.0.4",
5
5
  "license": "AGPL-3.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -175,6 +175,6 @@
175
175
  "_": "index.js"
176
176
  },
177
177
  "versionist": {
178
- "publishedAt": "2026-11-02T01:11:17.315Z"
178
+ "publishedAt": "2026-11-02T04:08:13.391Z"
179
179
  }
180
180
  }