Adopt span in Data IO implementation #1576
Open
+73
−87
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adopts Span types throughout the Data reading/writing implementation. There are still a few cases where we use unsafe buffers directly (getting unsafe buffers from spans directly at the call site for an unsafe C API, and storing unsafe pointers that are the result of
mmap-like calls) but this removes the majority of unsafe buffers passed around in our code and adopts span as the internal currency type wherever possible. Additionally, this allows us to adopt Span types in the API surface in the future now that the internal implementations are based upon span. I ran our benchmarks before and after this change and found no difference in performance when switching from unsafe buffers to spans.