Skip to content

Conversation

Josmithr
Copy link
Contributor

@Josmithr Josmithr commented Aug 13, 2025

There is a significant perf difference between inserting single columns/rows and inserting lists of them. To help encourage group inserts, insertColumn and insertRow have been removed. Users can leverage the group alternatives instead (insertColumns and insertRows).

Additionally, there is a significant performance difference between removing single / disjoint columns/rows and removing contiguous ranges of them. To address this, overloads have been added to removeColumns and removeRows to allow removing by index range. When possible, this is the most performant option. removeColumns and removeRows have also been updated to calculate the set of contiguous ranges represented lists of nodes or IDs to minimize the number of removal ops made in each transaction.

Benchmark test updates

Updates both SharedTree table and SharedMatrix perf tests to include batch column/row insertion tests.

Batch removal tests will come in a future PR, due to some of the current limitations around column + cell removal.

@Josmithr
Copy link
Contributor Author

Waiting on #25213

Copy link
Contributor

🔗 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:
  232440 links
    1714 destination URLs
    1946 URLs ignored
       0 warnings
       0 errors


@github-actions github-actions bot removed area: examples Changes that focus on our examples area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct public api change Changes to a public API labels Aug 19, 2025
@Josmithr
Copy link
Contributor Author

All of the test changes here have been merged in separately, as well as some of the structural changes in the table schema code. The final perf improvement is now being done in a separate PR here: #25329

Closing this PR.

@Josmithr Josmithr closed this Aug 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: dds: tree area: dds Issues related to distributed data structures base: main PRs targeted against main branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants