Skip to content

Conversation

@joshua-spacetime
Copy link
Collaborator

Fixes #270

Description of Changes

Relational iterators return RelValues which for convenience
contained table headers for indexing into the underlying
ProductValues. This patch removes them to improve memory
bandwidth.

API and ABI

  • This is a breaking change to the module ABI
  • This is a breaking change to the module API
  • This is a breaking change to the ClientAPI
  • This is a breaking change to the SDK API

If the API is breaking, please state below what will break

@joshua-spacetime joshua-spacetime force-pushed the joshua/270/remove-table-headers-from-rows branch from 3c4ef3c to 9490776 Compare September 9, 2023 00:27
@joshua-spacetime
Copy link
Collaborator Author

benchmarks please

2 similar comments
@joshua-spacetime
Copy link
Collaborator Author

benchmarks please

@drogus
Copy link
Collaborator

drogus commented Sep 11, 2023

benchmarks please

@github-actions
Copy link
Contributor

Benchmark for 9490776

Click to view benchmark
Test Base PR %
empty reducer 24.5±1.34µs 24.2±1.58µs -1.22%
filter nonunique random/100 34.7±1.96µs 34.7±3.61µs 0.00%
filter nonunique random/1000 35.2±1.83µs 33.8±1.59µs -3.98%
filter nonunique random/10000 35.9±1.95µs 34.2±1.44µs -4.74%
filter nonunique sequential/100 34.9±2.12µs 34.3±4.49µs -1.72%
filter nonunique sequential/1000 36.0±4.05µs 35.3±3.12µs -1.94%
filter nonunique sequential/10000 36.8±1.21µs 35.1±1.22µs -4.62%
filter nonunique sequential/100000 36.3±2.02µs 37.4±3.14µs +3.03%
filter unique random/100 32.2±1.77µs 30.8±3.64µs -4.35%
filter unique random/1000 32.6±2.10µs 32.4±3.12µs -0.61%
filter unique random/10000 32.4±1.60µs 30.4±2.20µs -6.17%
filter unique sequential/100 32.5±2.68µs 32.0±1.50µs -1.54%
filter unique sequential/1000 32.8±3.17µs 33.0±1.05µs +0.61%
filter unique sequential/10000 32.9±1.77µs 32.2±1.54µs -2.13%
filter unique sequential/100000 33.2±2.86µs 33.5±1.67µs +0.90%
iterator/1_000_000 rows 624.0±7.44ms 635.9±7.39ms +1.91%
large input 1555.1±264.39µs 1483.1±217.06µs -4.63%
multi insert/10 68.0±2.68µs 66.8±2.19µs -1.76%
multi insert/100 366.1±11.28µs 352.7±9.71µs -3.66%
multi insert/1000 3.3±0.05ms 3.2±0.04ms -3.03%
multi insert/50 193.9±9.90µs 198.1±26.51µs +2.17%
multi insert/500 1708.8±22.44µs 1720.1±32.55µs +0.66%
multiple large arguments 16.6±0.45ms 15.2±0.44ms -8.43%
single insert 56.4±5.21µs 56.9±5.60µs +0.89%
with existing records/100000 52.7±6.96µs 51.3±6.18µs -2.66%
with existing records/1000000 65.1±5.60µs 58.2±4.65µs -10.60%
with existing records/200000 56.7±2.13µs 50.1±2.44µs -11.64%
with existing records/300000 55.4±3.90µs 60.1±6.19µs +8.48%
with existing records/400000 63.9±8.64µs 55.4±7.05µs -13.30%
with existing records/500000 63.8±7.89µs 58.6±2.91µs -8.15%
with existing records/600000 60.0±3.81µs 60.1±3.76µs +0.17%
with existing records/700000 66.5±8.69µs 62.1±4.10µs -6.62%
with existing records/800000 62.5±6.46µs 61.1±5.93µs -2.24%
with existing records/900000 64.0±3.53µs 54.6±4.90µs -14.69%

@joshua-spacetime joshua-spacetime force-pushed the joshua/270/remove-table-headers-from-rows branch 3 times, most recently from 6ee8524 to bd20b5e Compare September 12, 2023 23:17
@joshua-spacetime joshua-spacetime force-pushed the joshua/270/remove-table-headers-from-rows branch from bd20b5e to 413ee24 Compare September 12, 2023 23:27
@Centril Centril merged commit 39e7298 into master Sep 13, 2023
@joshua-spacetime joshua-spacetime deleted the joshua/270/remove-table-headers-from-rows branch September 13, 2023 14:50
bfops pushed a commit that referenced this pull request Jul 17, 2025
Adds an additional test of the `GenericEqualityComparer` function for
`Integer`, `String`, `Byte Array`, `Identity`, `User` and `TaggedEnum` type
comparisons.

This PR resolves additional checks as reported in by [Issue
230](clockworklabs/com.clockworklabs.spacetimedbsdk#230)
that where not-yet covered elsewhere.

## API

 - [ ] This is an API breaking change to the SDK

## Requires SpacetimeDB PRs
No other PR are needed for this to work.

## Testsuite
SpacetimeDB branch name: master

## Testing
- [X] Locally ran `dotnet test` against the `tests.csproj` project and
it passed all tests
bfops pushed a commit that referenced this pull request Aug 7, 2025
Adds an additional test of the `GenericEqualityComparer` function for
`Integer`, `String`, `Byte Array`, `Identity`, `User` and `TaggedEnum` type
comparisons.

This PR resolves additional checks as reported in by [Issue
230](clockworklabs/com.clockworklabs.spacetimedbsdk#230)
that where not-yet covered elsewhere.

## API

 - [ ] This is an API breaking change to the SDK

## Requires SpacetimeDB PRs
No other PR are needed for this to work.

## Testsuite
SpacetimeDB branch name: master

## Testing
- [X] Locally ran `dotnet test` against the `tests.csproj` project and
it passed all tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove table headers from rows

4 participants