FluidFramework icon indicating copy to clipboard operation
FluidFramework copied to clipboard

[BREAKING] Offline: Add recent batch info from DuplicateBatchDetector to summary

Open markfields opened this issue 1 year ago • 2 comments

Description

Fixes AB#13963

We've added a new data structure for tracking "recent" (based on MSN) batchIds which are at risk for seeing a duplicate sequence batchID come in. This data structure is consulted and modified on each incoming batch.

Whenever we summarize, we need to include this state as of the given sequence number, and when we load from a snapshot we need to repopulate it as well.

Why? Because summaries can happen at any time, and a future container loading from that point will need to know the recent batch IDs that may possibly be followed by a sequenced duplicate.

Breaking Changes

This changes the signature of ContainerRuntime's constructor, which is an Alpha-API-breaking change, which is currently prohibited. So this PR will remain in draft state until such a breaking change is allowed.

Reviewer Guidance

See note about needing to wait to make the breaking change

markfields avatar Sep 09 '24 23:09 markfields

@fluid-example/bundle-size-tests: +2.02 KB
Metric NameBaseline SizeCompare SizeSize Diff
aqueduct.js 465.94 KB 466.42 KB +492 Bytes
azureClient.js 562.76 KB 563.25 KB +506 Bytes
connectionState.js 724 Bytes 724 Bytes No change
containerRuntime.js 262.1 KB 262.56 KB +468 Bytes
fluidFramework.js 427.12 KB 427.13 KB +14 Bytes
loader.js 134.18 KB 134.19 KB +14 Bytes
map.js 42.71 KB 42.71 KB +7 Bytes
matrix.js 150.15 KB 150.16 KB +7 Bytes
odspClient.js 528.59 KB 529.09 KB +506 Bytes
odspDriver.js 97.88 KB 97.9 KB +21 Bytes
odspPrefetchSnapshot.js 42.81 KB 42.83 KB +14 Bytes
sharedString.js 166.23 KB 166.24 KB +7 Bytes
sharedTree.js 417.58 KB 417.58 KB +7 Bytes
Total Size 3.37 MB 3.37 MB +2.02 KB

Baseline commit: ac5883c8b713420cfa746a625db86a833fbb73bd

Generated by :no_entry_sign: dangerJS against 076fe47b2f60c06ff43719952fc9ebcf9f744e4e

msfluid-bot avatar Sep 24 '24 21:09 msfluid-bot

@kian-thompson can you please take a look? This can't be merged until we're allowed to make breaking changes (it updates the constructor signature of ContainerRuntime). But I'd like to have it ready to go.

markfields avatar Oct 09 '24 22:10 markfields

🔗 No broken links found! ✅

Your attention to detail is admirable.

linkcheck output


> [email protected] ci:check-links /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test "npm run serve -- --no-open" 3000 check-links

1: starting server using command "npm run serve -- --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> [email protected] serve
> docusaurus serve --no-open

[SUCCESS] Serving "build" directory at: http://localhost:3000/

> [email protected] check-links
> linkcheck http://localhost:3000 --skip-file skipped-urls.txt

Crawling...

Stats:
  171745 links
    1640 destination URLs
    1840 URLs ignored
       0 warnings
       0 errors


github-actions[bot] avatar Nov 15 '24 22:11 github-actions[bot]