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

Fix FOR bug, also fix bench to compile #341

Merged
merged 16 commits into from
Jun 11, 2024
Merged

Fix FOR bug, also fix bench to compile #341

merged 16 commits into from
Jun 11, 2024

Conversation

a10y
Copy link
Contributor

@a10y a10y commented Jun 3, 2024

@robert3005

  1. Fix issue with FoR compression where nullability was getting stripped, causing compress benchmark to fail
  2. Fix some random tokio bs that was also causing compress benchmark to fail due to recursive runtime creations

@a10y a10y requested a review from robert3005 June 3, 2024 17:05
vortex-alp/src/compute.rs Outdated Show resolved Hide resolved
@@ -86,4 +94,31 @@ mod test {
assert_eq!(scalar_at(&forarr, 1).unwrap(), 15.into());
assert_eq!(scalar_at(&forarr, 2).unwrap(), 19.into());
}

#[test]
fn for_as_contiguous() {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i guess we should probably centralize 1-2 smoketests for each of the ArrayCompute functions for all of the variants.

@a10y
Copy link
Contributor Author

a10y commented Jun 5, 2024

Ok, I think I fixed all of the errors in the benchmarks now.

  1. Implemented AsContiguousFn for all of the types that get touched by the taxi dataset. I added an impl_default_as_contiguous! macro so that types can easily opt themselves in to implementing AsContiguous in terms of flattens. I wanted to do a blanket implementation but you can't override blanket implementations :(
  2. Fixed some bugs in how StructArray as_contiguous was implemented
  3. Fixed some bugs in how
  4. Fix how medicare data was being written

Now the benchmarks complete without error which is nice. I can FLUP with a github action to run the benchmarks in a scheduled action to get faster feedback if things break

bench-vortex/src/public_bi_data.rs Outdated Show resolved Hide resolved
vortex-array/src/compute/as_contiguous.rs Outdated Show resolved Hide resolved
vortex-alp/src/compute.rs Outdated Show resolved Hide resolved
vortex-array/src/array/struct/compute.rs Outdated Show resolved Hide resolved
vortex-datetime-parts/src/compute.rs Outdated Show resolved Hide resolved
vortex-datetime-parts/src/compute.rs Outdated Show resolved Hide resolved
@gatesn
Copy link
Contributor

gatesn commented Jun 6, 2024

Discussed offline about removing as_contiguous and reaffirming how flatten should work

@a10y a10y mentioned this pull request Jun 10, 2024
@a10y
Copy link
Contributor Author

a10y commented Jun 10, 2024

I believe this PR now addresses all of the stylistic comments.

For the AsContiguous removal: I broke that out into a separate PR stacked on this branch: #346

Would love a review there of the structure, and maybe a discussion about how best to handle List and Extension dtyped-arrays

a10y and others added 2 commits June 11, 2024 13:46
Per the comments on #341 , this PR removes the AsContiguousFn trait and
as_contiguous function entirely, and instead pushes the relevant details
into the implementation of `ArrayFlatten::flatten` for the
`ChunkedArray` type.

A few questions I've bumped into while doing this refactor:

* Can DType::List only reference primitive types? I see ListScalar, but
it’s not clear to me how Vortex would encode e.g. `List<Struct>` or
`List<List>`
* **Answer**: Deferring for now as List DTypes not fully support yet
anyway
* How should this work for ExtensionArray?
* **Answer**: ExtensionArray can contain a ChunkedArray for its internal
storage Array
@a10y a10y merged commit d416f69 into develop Jun 11, 2024
4 checks passed
@a10y a10y deleted the aduffy/fix-bench branch June 11, 2024 18:00
AdamGS pushed a commit to AdamGS/vortex that referenced this pull request Jun 14, 2024
@robert3005 

1. Fix issue with FoR compression where nullability was getting
stripped, causing `compress` benchmark to fail
2. Fix some random tokio bs that was also causing `compress` benchmark
to fail due to recursive runtime creations
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.

3 participants