Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Un-template DiskArray #971

Closed
ray6080 opened this issue Nov 11, 2022 · 1 comment
Closed

Un-template DiskArray #971

ray6080 opened this issue Nov 11, 2022 · 1 comment
Labels
feature New features or missing components of existing features performance optimization

Comments

@ray6080
Copy link
Contributor

ray6080 commented Nov 11, 2022

DiskArray is now templated with its element type. It can easily support simple data types, such as int64_t used in ListHeaders and ListMetadata. However it potentially propagates the use of temptation to its callers. HashIndex (and HashIndexBuilder) is an example.

Ideally, we need an array with a fixed size for each element without actually knowing its element's type. Element can be accessed and reinterpreted as expected data type by its caller. This is important for us to move all storage structures (including Columns and Lists) to DiskArray.
If we made above changes, for HashIndex:

  • We should no longer template Slot, thus HashIndex and HashIndexBuilder, and the proxy class PrimaryHashIndex should also be gone.
  • Get rid of templating of InMemNodeCSVCopier::populateColumnsAndCountUnstrPropertyListSizes.
    For DiskArray:
  • we can template the function U get(uint64_t idx, TransactionType trxType); to still provide access to typed element.

ListHeaders and ListMetadata should also change accordingly.

@ray6080 ray6080 added feature New features or missing components of existing features testing Testing related issues labels Nov 11, 2022
@ray6080 ray6080 added performance optimization and removed testing Testing related issues labels Oct 9, 2023
@ray6080
Copy link
Contributor Author

ray6080 commented Jun 7, 2024

This is done now.

@ray6080 ray6080 closed this as completed Jun 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New features or missing components of existing features performance optimization
Projects
None yet
Development

No branches or pull requests

1 participant