@optimystic/db-p2p 1.0.0-beta.3 → 1.1.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.
Files changed (234) hide show
  1. package/dist/src/cluster/block-transfer-service.d.ts +73 -1
  2. package/dist/src/cluster/block-transfer-service.d.ts.map +1 -1
  3. package/dist/src/cluster/block-transfer-service.js +70 -3
  4. package/dist/src/cluster/block-transfer-service.js.map +1 -1
  5. package/dist/src/cluster/block-transfer.d.ts +16 -1
  6. package/dist/src/cluster/block-transfer.d.ts.map +1 -1
  7. package/dist/src/cluster/block-transfer.js +73 -72
  8. package/dist/src/cluster/block-transfer.js.map +1 -1
  9. package/dist/src/cluster/client.d.ts +4 -6
  10. package/dist/src/cluster/client.d.ts.map +1 -1
  11. package/dist/src/cluster/client.js +8 -13
  12. package/dist/src/cluster/client.js.map +1 -1
  13. package/dist/src/cluster/cluster-policy.d.ts +2 -1
  14. package/dist/src/cluster/cluster-policy.d.ts.map +1 -1
  15. package/dist/src/cluster/cluster-policy.js.map +1 -1
  16. package/dist/src/cluster/cluster-repo.d.ts +155 -9
  17. package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
  18. package/dist/src/cluster/cluster-repo.js +446 -58
  19. package/dist/src/cluster/cluster-repo.js.map +1 -1
  20. package/dist/src/cluster/commit-proof.js +2 -2
  21. package/dist/src/cluster/race-resolution.d.ts +51 -7
  22. package/dist/src/cluster/race-resolution.d.ts.map +1 -1
  23. package/dist/src/cluster/race-resolution.js +71 -7
  24. package/dist/src/cluster/race-resolution.js.map +1 -1
  25. package/dist/src/cluster/rebalance-monitor.d.ts +67 -5
  26. package/dist/src/cluster/rebalance-monitor.d.ts.map +1 -1
  27. package/dist/src/cluster/rebalance-monitor.js +120 -26
  28. package/dist/src/cluster/rebalance-monitor.js.map +1 -1
  29. package/dist/src/cluster/spread-on-churn.d.ts.map +1 -1
  30. package/dist/src/cluster/spread-on-churn.js +34 -47
  31. package/dist/src/cluster/spread-on-churn.js.map +1 -1
  32. package/dist/src/cohort-topic/host.d.ts.map +1 -1
  33. package/dist/src/cohort-topic/host.js +8 -6
  34. package/dist/src/cohort-topic/host.js.map +1 -1
  35. package/dist/src/cohort-topic/membership-source.js +1 -1
  36. package/dist/src/cohort-topic/membership-source.js.map +1 -1
  37. package/dist/src/cohort-topic/peer-codec.d.ts.map +1 -1
  38. package/dist/src/cohort-topic/peer-codec.js +5 -2
  39. package/dist/src/cohort-topic/peer-codec.js.map +1 -1
  40. package/dist/src/cohort-topic/stream-util.d.ts +24 -3
  41. package/dist/src/cohort-topic/stream-util.d.ts.map +1 -1
  42. package/dist/src/cohort-topic/stream-util.js +36 -3
  43. package/dist/src/cohort-topic/stream-util.js.map +1 -1
  44. package/dist/src/cohort-topic/topic-router.d.ts +9 -0
  45. package/dist/src/cohort-topic/topic-router.d.ts.map +1 -1
  46. package/dist/src/cohort-topic/topic-router.js +12 -2
  47. package/dist/src/cohort-topic/topic-router.js.map +1 -1
  48. package/dist/src/dispute/client.d.ts.map +1 -1
  49. package/dist/src/dispute/client.js +15 -3
  50. package/dist/src/dispute/client.js.map +1 -1
  51. package/dist/src/index.d.ts +5 -0
  52. package/dist/src/index.d.ts.map +1 -1
  53. package/dist/src/index.js +5 -0
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/libp2p-key-network.d.ts +78 -17
  56. package/dist/src/libp2p-key-network.d.ts.map +1 -1
  57. package/dist/src/libp2p-key-network.js +234 -147
  58. package/dist/src/libp2p-key-network.js.map +1 -1
  59. package/dist/src/libp2p-node-base.d.ts +35 -1
  60. package/dist/src/libp2p-node-base.d.ts.map +1 -1
  61. package/dist/src/libp2p-node-base.js +151 -26
  62. package/dist/src/libp2p-node-base.js.map +1 -1
  63. package/dist/src/libp2p-node-rn.d.ts +2 -2
  64. package/dist/src/libp2p-node-rn.d.ts.map +1 -1
  65. package/dist/src/libp2p-node-rn.js.map +1 -1
  66. package/dist/src/libp2p-node.d.ts +2 -2
  67. package/dist/src/libp2p-node.d.ts.map +1 -1
  68. package/dist/src/libp2p-node.js.map +1 -1
  69. package/dist/src/logger.d.ts.map +1 -1
  70. package/dist/src/logger.js +6 -1
  71. package/dist/src/logger.js.map +1 -1
  72. package/dist/src/matchmaking/query-transport.d.ts +3 -4
  73. package/dist/src/matchmaking/query-transport.d.ts.map +1 -1
  74. package/dist/src/matchmaking/query-transport.js +9 -9
  75. package/dist/src/matchmaking/query-transport.js.map +1 -1
  76. package/dist/src/network/network-manager-service.d.ts +10 -5
  77. package/dist/src/network/network-manager-service.d.ts.map +1 -1
  78. package/dist/src/network/network-manager-service.js +11 -2
  79. package/dist/src/network/network-manager-service.js.map +1 -1
  80. package/dist/src/network/relay-reservation.d.ts +170 -0
  81. package/dist/src/network/relay-reservation.d.ts.map +1 -0
  82. package/dist/src/network/relay-reservation.js +527 -0
  83. package/dist/src/network/relay-reservation.js.map +1 -0
  84. package/dist/src/pend-validation.d.ts +3 -2
  85. package/dist/src/pend-validation.d.ts.map +1 -1
  86. package/dist/src/pend-validation.js +3 -2
  87. package/dist/src/pend-validation.js.map +1 -1
  88. package/dist/src/protocol-client.d.ts +8 -1
  89. package/dist/src/protocol-client.d.ts.map +1 -1
  90. package/dist/src/protocol-client.js +11 -0
  91. package/dist/src/protocol-client.js.map +1 -1
  92. package/dist/src/reactivity/forwarder-host.d.ts +2 -1
  93. package/dist/src/reactivity/forwarder-host.d.ts.map +1 -1
  94. package/dist/src/reactivity/forwarder-host.js +2 -1
  95. package/dist/src/reactivity/forwarder-host.js.map +1 -1
  96. package/dist/src/reactivity/origination-manager.d.ts +3 -3
  97. package/dist/src/reactivity/origination-manager.js +3 -3
  98. package/dist/src/reactivity/recover-transport.d.ts +22 -14
  99. package/dist/src/reactivity/recover-transport.d.ts.map +1 -1
  100. package/dist/src/reactivity/recover-transport.js +32 -19
  101. package/dist/src/reactivity/recover-transport.js.map +1 -1
  102. package/dist/src/reactivity/subscription-manager.d.ts +2 -2
  103. package/dist/src/reactivity/topic-bytes.d.ts +6 -7
  104. package/dist/src/reactivity/topic-bytes.d.ts.map +1 -1
  105. package/dist/src/reactivity/topic-bytes.js +8 -9
  106. package/dist/src/reactivity/topic-bytes.js.map +1 -1
  107. package/dist/src/repo/client.d.ts +5 -2
  108. package/dist/src/repo/client.d.ts.map +1 -1
  109. package/dist/src/repo/client.js +49 -40
  110. package/dist/src/repo/client.js.map +1 -1
  111. package/dist/src/repo/cluster-coordinator.d.ts +96 -11
  112. package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
  113. package/dist/src/repo/cluster-coordinator.js +164 -25
  114. package/dist/src/repo/cluster-coordinator.js.map +1 -1
  115. package/dist/src/repo/coordinator-repo.d.ts +240 -122
  116. package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
  117. package/dist/src/repo/coordinator-repo.js +627 -473
  118. package/dist/src/repo/coordinator-repo.js.map +1 -1
  119. package/dist/src/repo/i-under-replication-ledger.d.ts +87 -0
  120. package/dist/src/repo/i-under-replication-ledger.d.ts.map +1 -0
  121. package/dist/src/repo/i-under-replication-ledger.js +2 -0
  122. package/dist/src/repo/i-under-replication-ledger.js.map +1 -0
  123. package/dist/src/repo/kv-under-replication-ledger.d.ts +91 -0
  124. package/dist/src/repo/kv-under-replication-ledger.d.ts.map +1 -0
  125. package/dist/src/repo/kv-under-replication-ledger.js +287 -0
  126. package/dist/src/repo/kv-under-replication-ledger.js.map +1 -0
  127. package/dist/src/repo/responsibility.d.ts +37 -0
  128. package/dist/src/repo/responsibility.d.ts.map +1 -0
  129. package/dist/src/repo/responsibility.js +37 -0
  130. package/dist/src/repo/responsibility.js.map +1 -0
  131. package/dist/src/repo/service.d.ts +44 -15
  132. package/dist/src/repo/service.d.ts.map +1 -1
  133. package/dist/src/repo/service.js +64 -27
  134. package/dist/src/repo/service.js.map +1 -1
  135. package/dist/src/repo/stuck-reservation.d.ts +127 -0
  136. package/dist/src/repo/stuck-reservation.d.ts.map +1 -0
  137. package/dist/src/repo/stuck-reservation.js +179 -0
  138. package/dist/src/repo/stuck-reservation.js.map +1 -0
  139. package/dist/src/repo/under-replication-drain.d.ts +208 -0
  140. package/dist/src/repo/under-replication-drain.d.ts.map +1 -0
  141. package/dist/src/repo/under-replication-drain.js +461 -0
  142. package/dist/src/repo/under-replication-drain.js.map +1 -0
  143. package/dist/src/rn.d.ts +5 -0
  144. package/dist/src/rn.d.ts.map +1 -1
  145. package/dist/src/rn.js +5 -0
  146. package/dist/src/rn.js.map +1 -1
  147. package/dist/src/storage/block-latch.d.ts +3 -2
  148. package/dist/src/storage/block-latch.d.ts.map +1 -1
  149. package/dist/src/storage/block-latch.js +7 -4
  150. package/dist/src/storage/block-latch.js.map +1 -1
  151. package/dist/src/storage/block-storage.d.ts +45 -3
  152. package/dist/src/storage/block-storage.d.ts.map +1 -1
  153. package/dist/src/storage/block-storage.js +156 -9
  154. package/dist/src/storage/block-storage.js.map +1 -1
  155. package/dist/src/storage/i-block-storage.d.ts +57 -5
  156. package/dist/src/storage/i-block-storage.d.ts.map +1 -1
  157. package/dist/src/storage/i-block-storage.js.map +1 -1
  158. package/dist/src/storage/pending-claim.d.ts +167 -0
  159. package/dist/src/storage/pending-claim.d.ts.map +1 -0
  160. package/dist/src/storage/pending-claim.js +156 -0
  161. package/dist/src/storage/pending-claim.js.map +1 -0
  162. package/dist/src/storage/raw-store-codec.d.ts +13 -0
  163. package/dist/src/storage/raw-store-codec.d.ts.map +1 -1
  164. package/dist/src/storage/raw-store-codec.js +24 -3
  165. package/dist/src/storage/raw-store-codec.js.map +1 -1
  166. package/dist/src/storage/restoration-coordinator.d.ts.map +1 -1
  167. package/dist/src/storage/restoration-coordinator.js +2 -1
  168. package/dist/src/storage/restoration-coordinator.js.map +1 -1
  169. package/dist/src/storage/ring-shift-coordinator.d.ts.map +1 -1
  170. package/dist/src/storage/ring-shift-coordinator.js +3 -3
  171. package/dist/src/storage/ring-shift-coordinator.js.map +1 -1
  172. package/dist/src/storage/storage-repo.d.ts +122 -5
  173. package/dist/src/storage/storage-repo.d.ts.map +1 -1
  174. package/dist/src/storage/storage-repo.js +245 -68
  175. package/dist/src/storage/storage-repo.js.map +1 -1
  176. package/dist/src/storage/struct.d.ts +58 -0
  177. package/dist/src/storage/struct.d.ts.map +1 -1
  178. package/dist/src/testing/mesh-harness.d.ts +77 -11
  179. package/dist/src/testing/mesh-harness.d.ts.map +1 -1
  180. package/dist/src/testing/mesh-harness.js +226 -100
  181. package/dist/src/testing/mesh-harness.js.map +1 -1
  182. package/package.json +2 -2
  183. package/readme.md +27 -3
  184. package/src/cluster/block-transfer-service.ts +132 -4
  185. package/src/cluster/block-transfer.ts +79 -84
  186. package/src/cluster/client.ts +115 -119
  187. package/src/cluster/cluster-policy.ts +2 -1
  188. package/src/cluster/cluster-repo.ts +493 -65
  189. package/src/cluster/commit-proof.ts +2 -2
  190. package/src/cluster/race-resolution.ts +76 -7
  191. package/src/cluster/rebalance-monitor.ts +677 -539
  192. package/src/cluster/spread-on-churn.ts +34 -54
  193. package/src/cohort-topic/host.ts +8 -6
  194. package/src/cohort-topic/membership-source.ts +1 -1
  195. package/src/cohort-topic/peer-codec.ts +34 -31
  196. package/src/cohort-topic/stream-util.ts +39 -4
  197. package/src/cohort-topic/topic-router.ts +12 -2
  198. package/src/dispute/client.ts +17 -7
  199. package/src/index.ts +64 -59
  200. package/src/libp2p-key-network.ts +1377 -1260
  201. package/src/libp2p-node-base.ts +186 -27
  202. package/src/libp2p-node-rn.ts +31 -30
  203. package/src/libp2p-node.ts +37 -36
  204. package/src/logger.ts +6 -1
  205. package/src/matchmaking/query-transport.ts +9 -9
  206. package/src/network/network-manager-service.ts +16 -5
  207. package/src/network/relay-reservation.ts +636 -0
  208. package/src/pend-validation.ts +3 -2
  209. package/src/protocol-client.ts +13 -1
  210. package/src/reactivity/forwarder-host.ts +2 -1
  211. package/src/reactivity/origination-manager.ts +3 -3
  212. package/src/reactivity/recover-transport.ts +39 -22
  213. package/src/reactivity/subscription-manager.ts +2 -2
  214. package/src/reactivity/topic-bytes.ts +35 -37
  215. package/src/repo/client.ts +172 -173
  216. package/src/repo/cluster-coordinator.ts +183 -25
  217. package/src/repo/coordinator-repo.ts +656 -506
  218. package/src/repo/i-under-replication-ledger.ts +89 -0
  219. package/src/repo/kv-under-replication-ledger.ts +302 -0
  220. package/src/repo/responsibility.ts +48 -0
  221. package/src/repo/service.ts +76 -39
  222. package/src/repo/stuck-reservation.ts +224 -0
  223. package/src/repo/under-replication-drain.ts +582 -0
  224. package/src/rn.ts +74 -69
  225. package/src/storage/block-latch.ts +7 -4
  226. package/src/storage/block-storage.ts +161 -10
  227. package/src/storage/i-block-storage.ts +60 -5
  228. package/src/storage/pending-claim.ts +200 -0
  229. package/src/storage/raw-store-codec.ts +26 -3
  230. package/src/storage/restoration-coordinator.ts +212 -211
  231. package/src/storage/ring-shift-coordinator.ts +271 -271
  232. package/src/storage/storage-repo.ts +280 -72
  233. package/src/storage/struct.ts +58 -0
  234. package/src/testing/mesh-harness.ts +293 -112
@@ -0,0 +1 @@
1
+ {"version":3,"file":"under-replication-drain.js","sourceRoot":"","sources":["../../../src/repo/under-replication-drain.ts"],"names":[],"mappings":"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"}
package/dist/src/rn.d.ts CHANGED
@@ -14,6 +14,10 @@ export * from './protocol-client.js';
14
14
  export * from './repo/client.js';
15
15
  export * from './repo/cluster-coordinator.js';
16
16
  export * from './repo/coordinator-repo.js';
17
+ export * from './repo/i-under-replication-ledger.js';
18
+ export * from './repo/kv-under-replication-ledger.js';
19
+ export * from './repo/under-replication-drain.js';
20
+ export * from './repo/responsibility.js';
17
21
  export * from './repo/served-repo-proxy.js';
18
22
  export * from './repo/service.js';
19
23
  export * from './storage/block-storage.js';
@@ -30,6 +34,7 @@ export * from './storage/memory-storage.js';
30
34
  export * from './storage/i-block-storage.js';
31
35
  export * from './storage/i-raw-storage.js';
32
36
  export * from './storage/struct.js';
37
+ export * from './storage/pending-claim.js';
33
38
  export * from './storage/block-archive.js';
34
39
  export * from './storage/storage-repo.js';
35
40
  export * from './storage/restoration-coordinator.js';
@@ -1 +1 @@
1
- {"version":3,"file":"rn.d.ts","sourceRoot":"","sources":["../../src/rn.ts"],"names":[],"mappings":"AAUA,cAAc,qBAAqB,CAAC;AACpC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"rn.d.ts","sourceRoot":"","sources":["../../src/rn.ts"],"names":[],"mappings":"AAUA,cAAc,qBAAqB,CAAC;AACpC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
package/dist/src/rn.js CHANGED
@@ -23,6 +23,10 @@ export * from './protocol-client.js';
23
23
  export * from './repo/client.js';
24
24
  export * from './repo/cluster-coordinator.js';
25
25
  export * from './repo/coordinator-repo.js';
26
+ export * from './repo/i-under-replication-ledger.js';
27
+ export * from './repo/kv-under-replication-ledger.js';
28
+ export * from './repo/under-replication-drain.js';
29
+ export * from './repo/responsibility.js';
26
30
  export * from './repo/served-repo-proxy.js';
27
31
  export * from './repo/service.js';
28
32
  export * from './storage/block-storage.js';
@@ -39,6 +43,7 @@ export * from './storage/memory-storage.js';
39
43
  export * from './storage/i-block-storage.js';
40
44
  export * from './storage/i-raw-storage.js';
41
45
  export * from './storage/struct.js';
46
+ export * from './storage/pending-claim.js';
42
47
  export * from './storage/block-archive.js';
43
48
  export * from './storage/storage-repo.js';
44
49
  export * from './storage/restoration-coordinator.js';
@@ -1 +1 @@
1
- {"version":3,"file":"rn.js","sourceRoot":"","sources":["../../src/rn.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,0CAA0C;AAC1C,EAAE;AACF,gFAAgF;AAChF,iGAAiG;AACjG,0FAA0F;AAC1F,+FAA+F;AAC/F,iGAAiG;AACjG,oFAAoF;AAEpF,cAAc,qBAAqB,CAAC;AACpC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"rn.js","sourceRoot":"","sources":["../../src/rn.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,0CAA0C;AAC1C,EAAE;AACF,gFAAgF;AAChF,iGAAiG;AACjG,0FAA0F;AAC1F,+FAA+F;AAC/F,iGAAiG;AACjG,oFAAoF;AAEpF,cAAc,qBAAqB,CAAC;AACpC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
@@ -28,8 +28,9 @@ export declare const blockWriteLatchKey: (blockId: BlockId) => string;
28
28
  /**
29
29
  * Opaque proof that the bearer is executing inside {@link blockWriteLatchKey}`(blockId)`. Only
30
30
  * {@link acquireBlockWriteLatch} (and {@link withBlockWriteLatch} through it) can construct one:
31
- * the constructor is private and the module-scoped minter is assigned from a static block, where
32
- * the private constructor is callable — no cast, nothing outside this module can build a token.
31
+ * the constructor is private and the module-scoped minter is assigned from a static field
32
+ * initializer, where the private constructor is callable — no cast, nothing outside this module can
33
+ * build a token.
33
34
  *
34
35
  * A token is only valid while the latch it proves is actually held: releasing expires it, so a
35
36
  * callback that stashes its token and writes after its scope closed is rejected instead of silently
@@ -1 +1 @@
1
- {"version":3,"file":"block-latch.d.ts","sourceRoot":"","sources":["../../../src/storage/block-latch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,KAAG,MAAkC,CAAC;AAKzF;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAe;;IAGP,QAAQ,CAAC,OAAO,EAAE,OAAO;IAA7C,OAAO;IAEP,gEAAgE;IAChE,IAAI,IAAI,IAAI,OAAO,CAElB;CAMD;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAUvH;AAED,qGAAqG;AACrG,MAAM,MAAM,iBAAiB,GAAG;IAC/B,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACxD,6FAA6F;IAC7F,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqBtG;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOrH"}
1
+ {"version":3,"file":"block-latch.d.ts","sourceRoot":"","sources":["../../../src/storage/block-latch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,KAAG,MAAkC,CAAC;AAKzF;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAe;;IAGP,QAAQ,CAAC,OAAO,EAAE,OAAO;IAA7C,OAAO;IAEP,gEAAgE;IAChE,IAAI,IAAI,IAAI,OAAO,CAElB;CAQD;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAUvH;AAED,qGAAqG;AACrG,MAAM,MAAM,iBAAiB,GAAG;IAC/B,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACxD,6FAA6F;IAC7F,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqBtG;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOrH"}
@@ -30,8 +30,9 @@ let expire;
30
30
  /**
31
31
  * Opaque proof that the bearer is executing inside {@link blockWriteLatchKey}`(blockId)`. Only
32
32
  * {@link acquireBlockWriteLatch} (and {@link withBlockWriteLatch} through it) can construct one:
33
- * the constructor is private and the module-scoped minter is assigned from a static block, where
34
- * the private constructor is callable — no cast, nothing outside this module can build a token.
33
+ * the constructor is private and the module-scoped minter is assigned from a static field
34
+ * initializer, where the private constructor is callable — no cast, nothing outside this module can
35
+ * build a token.
35
36
  *
36
37
  * A token is only valid while the latch it proves is actually held: releasing expires it, so a
37
38
  * callback that stashes its token and writes after its scope closed is rejected instead of silently
@@ -50,10 +51,12 @@ export class BlockWriteLatch {
50
51
  get live() {
51
52
  return this.#live;
52
53
  }
53
- static {
54
+ // A static field initializer, not a `static { }` block: React Native's Metro/Babel bundling cannot
55
+ // transform static blocks, and this module ships in the RN bundle (lint enforces it).
56
+ static #wired = (() => {
54
57
  mint = (blockId) => new BlockWriteLatch(blockId);
55
58
  expire = (latch) => { latch.#live = false; };
56
- }
59
+ })();
57
60
  }
58
61
  /**
59
62
  * Acquire the write latch for `blockId`. The non-scoped single-block form is the building block for
@@ -1 +1 @@
1
- {"version":3,"file":"block-latch.js","sourceRoot":"","sources":["../../../src/storage/block-latch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAU,EAAE,CAAC,eAAe,OAAO,EAAE,CAAC;AAEzF,IAAI,IAA4C,CAAC;AACjD,IAAI,MAAyC,CAAC;AAE9C;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAe;IAGE;IAF7B,KAAK,GAAG,IAAI,CAAC;IAEb,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAI,CAAC;IAElD,gEAAgE;IAChE,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED;QACC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;CACD;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAgB;IAC5D,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO;QACN,KAAK;QACL,OAAO,EAAE,GAAG,EAAE;YACb,MAAM,CAAC,KAAK,CAAC,CAAC;YACd,YAAY,EAAE,CAAC;QAChB,CAAC;KACD,CAAC;AACH,CAAC;AAUD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,QAA2B;IACzE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,GAAG,EAAE;QACpB,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC;QAChB,CAAC;QACD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IACpD,IAAI,CAAC;QACJ,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;QACV,MAAM,GAAG,CAAC;IACX,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAI,OAAgB,EAAE,EAA0C;IACxG,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACjE,IAAI,CAAC;QACJ,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;YAAS,CAAC;QACV,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"block-latch.js","sourceRoot":"","sources":["../../../src/storage/block-latch.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import type { BlockId, IBlock, Transform, ActionId, ActionRev } from "@optimystic/db-core";
1
+ import type { BlockId, IBlock, Transform, ActionId, ActionRev, BlockLineage } from "@optimystic/db-core";
2
2
  import type { BlockCommitProof } from "../cluster/commit-proof.js";
3
3
  import type { RestoreCallback } from "./struct.js";
4
4
  import type { IRawStorage } from "./i-raw-storage.js";
5
5
  import { type IBlockStorage } from "./i-block-storage.js";
6
6
  import type { BlockWriteLatch } from "./block-latch.js";
7
+ import type { PendingClaim } from "./pending-claim.js";
7
8
  export declare class BlockStorage implements IBlockStorage {
8
9
  private readonly blockId;
9
10
  private readonly storage;
@@ -45,14 +46,46 @@ export declare class BlockStorage implements IBlockStorage {
45
46
  saveBlockProof(rev: number, proof: BlockCommitProof, latch: BlockWriteLatch): Promise<void>;
46
47
  getPendingTransaction(actionId: ActionId): Promise<Transform | undefined>;
47
48
  listPendingTransactions(): AsyncIterable<ActionId>;
48
- savePendingTransaction(actionId: ActionId, transform: Transform, rev: number | undefined, latch: BlockWriteLatch): Promise<void>;
49
+ listPendingClaims(): Promise<PendingClaim[]>;
50
+ pendingClaimOf(actionId: ActionId): Promise<PendingClaim | undefined>;
51
+ /** The claim `meta` describes for `actionId`'s (existing) record: its slot and its base, each
52
+ * present only when on file. */
53
+ private static claimOf;
54
+ savePendingTransaction(actionId: ActionId, transform: Transform, rev: number | undefined, baseRev: number | undefined, latch: BlockWriteLatch): Promise<void>;
49
55
  deletePendingTransaction(actionId: ActionId, latch: BlockWriteLatch): Promise<void>;
56
+ /**
57
+ * Set (`claim` given) or clear (`undefined`) what `meta` says about `actionId`'s pending record —
58
+ * the slot it claims and the base it was computed against — keeping each map absent while it is
59
+ * empty. The two are always written together, so no path can drop a record's slot and leave its
60
+ * base behind, or the reverse: clearing is what every drop site calls — a delete, a promotion
61
+ * (`setLatest`), a same-action forward write (`saveForwardRevision`) and the dead-claim sweep.
62
+ */
63
+ private static recordClaim;
64
+ /** `meta[map][actionId] = value`, or removes the entry when `value` is undefined; the map itself
65
+ * is dropped from `meta` once empty, so an idle block's metadata carries neither key. */
66
+ private static setEntry;
67
+ /**
68
+ * Every pending record claiming a revision at or below `latestRev` can never be promoted here:
69
+ * promotion needs `latest.rev < rev`, and `latest` only advances. Such a record is DEAD — a rival
70
+ * that lost the slot, or a torn write's leftover on a block a later commit has since moved past —
71
+ * and left in place it is reported as a live conflicting action to every reader of the block.
72
+ * Delete those records and drop their claims from `meta`, which the caller then saves; a record
73
+ * with no claim on file is left alone (its slot is unknown, so its death is unprovable here).
74
+ *
75
+ * Runs under the block's write latch on every path that advances `latest`, which is the one moment
76
+ * a record's death becomes provable. This is the locally decidable half of what backlog
77
+ * `debt-unpromotable-pending-records-need-a-sweep` asks for; the other half — a record whose slot
78
+ * the block has NOT reached, whose writer simply never came back — is not decidable from local
79
+ * state and is not touched here.
80
+ */
81
+ private sweepDeadClaims;
50
82
  listRevisions(startRev: number, endRev: number): AsyncIterable<ActionRev>;
51
83
  saveMaterializedBlock(actionId: ActionId, block: IBlock | undefined, latch: BlockWriteLatch): Promise<void>;
52
84
  pruneSupersededMaterialization(prior: ActionRev, latch: BlockWriteLatch): Promise<void>;
53
85
  saveRevision(rev: number, actionId: ActionId, latch: BlockWriteLatch): Promise<void>;
54
86
  promotePendingTransaction(actionId: ActionId, latch: BlockWriteLatch): Promise<void>;
55
- setLatest(latest: ActionRev, latch: BlockWriteLatch): Promise<void>;
87
+ lineageOf({ actionId, rev }: ActionRev): Promise<BlockLineage>;
88
+ setLatest(latest: ActionRev, builtOnPrior: boolean, latch: BlockWriteLatch): Promise<void>;
56
89
  recover(latch: BlockWriteLatch): Promise<{
57
90
  reconciled: boolean;
58
91
  latest?: ActionRev;
@@ -213,6 +246,15 @@ export declare class BlockStorage implements IBlockStorage {
213
246
  * before reaching here.
214
247
  */
215
248
  private saveRestored;
249
+ /**
250
+ * The lineage floor after a COMMIT lands `rev` on top of `prevRev` (see
251
+ * {@link BlockMetadata.lineageFloor}). A revision built on the prior content extends the known
252
+ * lineage downwards as far as it already reached — or, for metadata that predates the field,
253
+ * to the revision it was just built on, which is all this commit can vouch for. A revision that
254
+ * stands on its own (an insert replaces the block wholesale), and a block's first revision,
255
+ * start the lineage at themselves.
256
+ */
257
+ private static nextLineageFloor;
216
258
  private inRanges;
217
259
  /**
218
260
  * Checkpoint retention predicate. A materialization at `rev` must be kept iff it is the tip
@@ -1 +1 @@
1
- {"version":3,"file":"block-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/block-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/block-storage.ts"],"names":[],"mappings":"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"}
@@ -130,9 +130,36 @@ export class BlockStorage {
130
130
  async *listPendingTransactions() {
131
131
  yield* this.storage.listPendingTransactions(this.blockId);
132
132
  }
133
- async savePendingTransaction(actionId, transform, rev, latch) {
133
+ async listPendingClaims() {
134
+ const meta = await this.storage.getMetadata(this.blockId);
135
+ const claims = [];
136
+ for await (const actionId of this.storage.listPendingTransactions(this.blockId)) {
137
+ claims.push(BlockStorage.claimOf(meta, actionId));
138
+ }
139
+ return claims;
140
+ }
141
+ async pendingClaimOf(actionId) {
142
+ // Joined against the record, exactly as the listing is: a metadata entry whose record is gone
143
+ // is inert (see BlockMetadata.pendingRevs) and must not read as a live claim.
144
+ if (await this.storage.getPendingTransaction(this.blockId, actionId) === undefined) {
145
+ return undefined;
146
+ }
147
+ return BlockStorage.claimOf(await this.storage.getMetadata(this.blockId), actionId);
148
+ }
149
+ /** The claim `meta` describes for `actionId`'s (existing) record: its slot and its base, each
150
+ * present only when on file. */
151
+ static claimOf(meta, actionId) {
152
+ const rev = meta?.pendingRevs?.[actionId];
153
+ const baseRev = meta?.pendingBases?.[actionId];
154
+ return {
155
+ actionId,
156
+ ...(rev === undefined ? {} : { rev }),
157
+ ...(baseRev === undefined ? {} : { baseRev })
158
+ };
159
+ }
160
+ async savePendingTransaction(actionId, transform, rev, baseRev, latch) {
134
161
  this.assertLatch(latch);
135
- log('pend blockId=%s actionId=%s rev=%s', this.blockId, actionId, rev);
162
+ log('pend blockId=%s actionId=%s rev=%s baseRev=%s', this.blockId, actionId, rev, baseRev);
136
163
  let meta = await this.storage.getMetadata(this.blockId);
137
164
  // Refuse a record that could never be promoted (see IBlockStorage.savePendingTransaction).
138
165
  // The metadata read above is unconditional anyway, so this costs one comparison and no I/O.
@@ -152,14 +179,75 @@ export class BlockStorage {
152
179
  // This read-then-seed is exactly the window a concurrent replica used to land in (the
153
180
  // seed then erased its `latest`); the latch the caller holds is what closes it.
154
181
  meta = { latest: undefined, ranges: [] };
155
- await this.storage.saveMetadata(this.blockId, meta);
156
182
  }
183
+ // Record the slot the record claims (see BlockMetadata.pendingRevs) and the base it was computed
184
+ // against (`pendingBases`) in the same metadata write that seeds a fresh block, BEFORE the record
185
+ // itself: a crash between the two leaves an inert entry with no record, whereas the other order
186
+ // would leave a record with no claim — which every reader treats as the strongest kind and would
187
+ // refuse rivals on more than it should — and with no base, which the read-driven promotion
188
+ // would then decline to apply. A redelivered pend for the same action overwrites all three.
189
+ BlockStorage.recordClaim(meta, actionId, { rev, baseRev });
190
+ await this.storage.saveMetadata(this.blockId, meta);
157
191
  await this.storage.savePendingTransaction(this.blockId, actionId, transform);
158
192
  }
159
193
  async deletePendingTransaction(actionId, latch) {
160
194
  this.assertLatch(latch);
161
195
  log('cancel blockId=%s actionId=%s', this.blockId, actionId);
162
196
  await this.storage.deletePendingTransaction(this.blockId, actionId);
197
+ // Metadata is written only when the record had a claim to drop: a cancel of an absent or
198
+ // claim-less record (the common torn-cancel retry) stays a pure no-op on the metadata blob.
199
+ const meta = await this.storage.getMetadata(this.blockId);
200
+ if (meta && (meta.pendingRevs?.[actionId] !== undefined || meta.pendingBases?.[actionId] !== undefined)) {
201
+ BlockStorage.recordClaim(meta, actionId, undefined);
202
+ await this.storage.saveMetadata(this.blockId, meta);
203
+ }
204
+ }
205
+ /**
206
+ * Set (`claim` given) or clear (`undefined`) what `meta` says about `actionId`'s pending record —
207
+ * the slot it claims and the base it was computed against — keeping each map absent while it is
208
+ * empty. The two are always written together, so no path can drop a record's slot and leave its
209
+ * base behind, or the reverse: clearing is what every drop site calls — a delete, a promotion
210
+ * (`setLatest`), a same-action forward write (`saveForwardRevision`) and the dead-claim sweep.
211
+ */
212
+ static recordClaim(meta, actionId, claim) {
213
+ BlockStorage.setEntry(meta, 'pendingRevs', actionId, claim?.rev);
214
+ BlockStorage.setEntry(meta, 'pendingBases', actionId, claim?.baseRev);
215
+ }
216
+ /** `meta[map][actionId] = value`, or removes the entry when `value` is undefined; the map itself
217
+ * is dropped from `meta` once empty, so an idle block's metadata carries neither key. */
218
+ static setEntry(meta, map, actionId, value) {
219
+ const entries = { ...meta[map] };
220
+ if (value === undefined)
221
+ delete entries[actionId];
222
+ else
223
+ entries[actionId] = value;
224
+ if (Object.keys(entries).length === 0)
225
+ delete meta[map];
226
+ else
227
+ meta[map] = entries;
228
+ }
229
+ /**
230
+ * Every pending record claiming a revision at or below `latestRev` can never be promoted here:
231
+ * promotion needs `latest.rev < rev`, and `latest` only advances. Such a record is DEAD — a rival
232
+ * that lost the slot, or a torn write's leftover on a block a later commit has since moved past —
233
+ * and left in place it is reported as a live conflicting action to every reader of the block.
234
+ * Delete those records and drop their claims from `meta`, which the caller then saves; a record
235
+ * with no claim on file is left alone (its slot is unknown, so its death is unprovable here).
236
+ *
237
+ * Runs under the block's write latch on every path that advances `latest`, which is the one moment
238
+ * a record's death becomes provable. This is the locally decidable half of what backlog
239
+ * `debt-unpromotable-pending-records-need-a-sweep` asks for; the other half — a record whose slot
240
+ * the block has NOT reached, whose writer simply never came back — is not decidable from local
241
+ * state and is not touched here.
242
+ */
243
+ async sweepDeadClaims(meta, latestRev) {
244
+ for (const [actionId, rev] of Object.entries(meta.pendingRevs ?? {})) {
245
+ if (rev > latestRev)
246
+ continue;
247
+ await this.storage.deletePendingTransaction(this.blockId, actionId);
248
+ BlockStorage.recordClaim(meta, actionId, undefined);
249
+ log('sweep-dead-claim blockId=%s actionId=%s claimedRev=%d latestRev=%d', this.blockId, actionId, rev, latestRev);
250
+ }
163
251
  }
164
252
  async *listRevisions(startRev, endRev) {
165
253
  yield* this.storage.listRevisions(this.blockId, startRev, endRev);
@@ -196,7 +284,30 @@ export class BlockStorage {
196
284
  log('commit blockId=%s actionId=%s', this.blockId, actionId);
197
285
  await this.storage.promotePendingTransaction(this.blockId, actionId);
198
286
  }
199
- async setLatest(latest, latch) {
287
+ async lineageOf({ actionId, rev }) {
288
+ const meta = await this.storage.getMetadata(this.blockId);
289
+ const latest = meta?.latest;
290
+ if (!latest || latest.rev < rev) {
291
+ return 'behind';
292
+ }
293
+ if (latest.rev === rev) {
294
+ return latest.actionId === actionId ? 'contains' : 'excludes';
295
+ }
296
+ const heldBy = await this.storage.getRevision(this.blockId, rev);
297
+ if (heldBy !== undefined && heldBy !== actionId) {
298
+ return 'excludes';
299
+ }
300
+ // Past the revision. The index alone cannot answer from here: holding the action at `rev`
301
+ // does not prove `latest` was built from it (a replica taken since may descend from a base
302
+ // below `rev`), and holding nothing at `rev` does not prove it was not (a replica taken since
303
+ // may descend from it). Only a history derived HERE across `rev` settles it either way.
304
+ const floor = meta.lineageFloor;
305
+ if (floor === undefined || floor > rev) {
306
+ return 'unknown';
307
+ }
308
+ return heldBy === actionId ? 'contains' : 'excludes';
309
+ }
310
+ async setLatest(latest, builtOnPrior, latch) {
200
311
  this.assertLatch(latch);
201
312
  const meta = await this.storage.getMetadata(this.blockId);
202
313
  if (!meta) {
@@ -205,6 +316,7 @@ export class BlockStorage {
205
316
  // Capture the prior latest rev BEFORE overwriting: coverage anchors to the earliest held rev.
206
317
  const prevRev = meta.latest?.rev;
207
318
  meta.latest = latest;
319
+ meta.lineageFloor = BlockStorage.nextLineageFloor(meta.lineageFloor, prevRev, latest.rev, builtOnPrior);
208
320
  // NOTE: re-sorts (mergeRanges) the whole ranges array on every commit; if a block ever
209
321
  // accumulates many disjoint ranges and commits show as slow, keep a running merged structure.
210
322
  // `getBlock(r)` is served by materializeBlock's DESCENDING walk (highest committed rev <= r).
@@ -220,6 +332,11 @@ export class BlockStorage {
220
332
  // before this call advances neither.
221
333
  meta.ranges.unshift([prevRev ?? latest.rev]);
222
334
  meta.ranges = mergeRanges(meta.ranges);
335
+ // The committing action's own record was just MOVED by `promotePendingTransaction`: drop its
336
+ // claim without a delete, so the sweep does not pay a raw-storage op on a record that is already
337
+ // gone. Any other record claiming a slot at or below the new latest is dead and swept.
338
+ BlockStorage.recordClaim(meta, latest.actionId, undefined);
339
+ await this.sweepDeadClaims(meta, latest.rev);
223
340
  await this.storage.saveMetadata(this.blockId, meta);
224
341
  }
225
342
  async recover(latch) {
@@ -231,6 +348,7 @@ export class BlockStorage {
231
348
  const currentRev = meta.latest?.rev ?? 0;
232
349
  let maxRev = currentRev;
233
350
  let maxActionId = meta.latest?.actionId;
351
+ let lineageFloor = meta.lineageFloor;
234
352
  // Probe forward until we hit a gap or a revision whose action is not yet
235
353
  // in the committed log (Crash-D2 state — retry-commit owns that advance).
236
354
  for (let next = currentRev + 1;; next++) {
@@ -240,12 +358,16 @@ export class BlockStorage {
240
358
  const promoted = await this.storage.getTransaction(this.blockId, actionId);
241
359
  if (promoted === undefined)
242
360
  break;
361
+ // Each recovered revision is a commit whose `setLatest` was lost, so it owes the floor
362
+ // exactly what that `setLatest` would have recorded.
363
+ lineageFloor = BlockStorage.nextLineageFloor(lineageFloor, maxRev === 0 ? undefined : maxRev, next, promoted.insert === undefined);
243
364
  maxRev = next;
244
365
  maxActionId = actionId;
245
366
  }
246
367
  if (maxRev > currentRev && maxActionId !== undefined) {
247
368
  const advanced = { rev: maxRev, actionId: maxActionId };
248
369
  meta.latest = advanced;
370
+ meta.lineageFloor = lineageFloor;
249
371
  // The lost setLatest would have merged each recovered revision's range; redo that
250
372
  // here. Open-ended from currentRev+1 (see setLatest): every rev in (currentRev, maxRev]
251
373
  // was verified present in the committed log above, and any rev > maxRev resolves via the
@@ -253,6 +375,13 @@ export class BlockStorage {
253
375
  // the prior [E, currentRev+1) (from the earlier setLatest) into one open-ended [E, +inf).
254
376
  meta.ranges.unshift([currentRev + 1]);
255
377
  meta.ranges = mergeRanges(meta.ranges);
378
+ // Each recovered revision's lost `setLatest` also owed this sweep. Unlike `setLatest`, it
379
+ // DELETES each recovered action's record rather than just dropping its claim: a pend checks
380
+ // only `latest`, so a same-action retry re-pended while the `setLatest` was owed leaves a
381
+ // pending record beside the committed one (reachable through `StorageRepo.recoverBlock`).
382
+ // Dropping only its claim would leave a claim-less record, the strongest kind of reservation,
383
+ // that nothing ever removes. Recover runs only after a crash, so the extra op costs nothing.
384
+ await this.sweepDeadClaims(meta, maxRev);
256
385
  await this.storage.saveMetadata(this.blockId, meta);
257
386
  log('recover blockId=%s advanced latest from rev=%d to rev=%d', this.blockId, currentRev, maxRev);
258
387
  return { reconciled: true, latest: advanced };
@@ -344,18 +473,25 @@ export class BlockStorage {
344
473
  // record is not this writer's to delete. Both paths run under the block's write latch, so
345
474
  // this deletion is already mutually exclusive with a live commit.
346
475
  //
347
- // NOTE: deletes only this revision's actionId, not every pending whose action is already
348
- // committed. A broader sweep would repair records orphaned by routes that do not carry the
349
- // committing actionId; if orphaned pendings ever show up in the field on blocks whose
350
- // committing action id differs, widen to a sweep over listPendingTransactions filtered by
351
- // getTransaction.
476
+ // This same-action delete stays explicit even though the sweep below would usually cover it:
477
+ // Invariant P must hold for a record that has no claim on file (pended before claims were
478
+ // recorded), which the sweep which reasons from claims cannot see.
352
479
  await this.storage.deletePendingTransaction(this.blockId, actionId);
353
480
  // Seed metadata when absent, advance latest, and merge the covered range.
354
481
  const prevRev = meta?.latest?.rev;
355
482
  if (!meta) {
356
483
  meta = { latest: undefined, ranges: [] };
357
484
  }
485
+ // Every OTHER record claiming a slot at or below the landing revision is dead too: the
486
+ // orphaned records a route that does not carry the committing action id used to leave behind
487
+ // (the cohort reconcile of a block a member fell behind on lands a later revision under a
488
+ // later action, and the missed action's record would otherwise stand forever).
489
+ BlockStorage.recordClaim(meta, actionId, undefined);
490
+ await this.sweepDeadClaims(meta, rev);
358
491
  meta.latest = { rev, actionId };
492
+ // Content this node did not derive: nothing here says what it was built from, so the known
493
+ // lineage starts over at this revision (see BlockMetadata.lineageFloor).
494
+ meta.lineageFloor = rev;
359
495
  // Open-ended coverage from the earliest held rev (see setLatest): the descending walk serves
360
496
  // any rev >= the anchor. A prior latest at prevRev (< rev per the monotonic guard) is a
361
497
  // materialized point, so anchor at prevRev; the first write (prevRev undefined) anchors at
@@ -677,6 +813,17 @@ export class BlockStorage {
677
813
  ]);
678
814
  }
679
815
  }
816
+ /**
817
+ * The lineage floor after a COMMIT lands `rev` on top of `prevRev` (see
818
+ * {@link BlockMetadata.lineageFloor}). A revision built on the prior content extends the known
819
+ * lineage downwards as far as it already reached — or, for metadata that predates the field,
820
+ * to the revision it was just built on, which is all this commit can vouch for. A revision that
821
+ * stands on its own (an insert replaces the block wholesale), and a block's first revision,
822
+ * start the lineage at themselves.
823
+ */
824
+ static nextLineageFloor(floor, prevRev, rev, builtOnPrior) {
825
+ return builtOnPrior && prevRev !== undefined ? (floor ?? prevRev) : rev;
826
+ }
680
827
  inRanges(rev, ranges) {
681
828
  return ranges.some(range => rev >= range[0] && (range[1] === undefined || rev < range[1]));
682
829
  }
@@ -1 +1 @@
1
- {"version":3,"file":"block-storage.js","sourceRoot":"","sources":["../../../src/storage/block-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block-storage.js","sourceRoot":"","sources":["../../../src/storage/block-storage.ts"],"names":[],"mappings":"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"}