-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
refactor I/O to do more buffering #3887
Comments
As I mentioned in #3820, consider Apache's bucket brigades when implementing this. In particular, the referenced implementation
I'm not sure how feasible in-place data access is in julia (it would likely have the same pointer/gc issues mentioned in #3224), but I would love to see this. |
I'm curious how costly the copy strategy that I employed actually is, in practice, not because of how the compact is written, but because of the heuristics in ensureroom that I intended to limit the amount of data that gets copied. In particular, it only occurs just before a write (so read access doesn't move data). If the buffer was empty prior to the write, the pointers are immediately reset. Otherwise, they are reset if we will need to resize the buffer anyways, or the amount of space wasted at the beginning is greater than the amount of data in the buffer or there is a substantial amount of wasted space at the beginning of the buffer. I imagine a strategy that was able to map/move/free entire pages (via |
moving this out of v0.4.x: there doesn't seem to be a pressing need to implement this right now, with all the possible issues that might be discovered later. |
We've slowly started to add this to more streams. It's still a good work item, but needs someone to spend a fair amount of focus on it. |
Is this a breaking change or a performance optimization? |
Close? |
I don't think we've done this yet. |
Stdlib: Pkg URL: https://github.com/JuliaLang/Pkg.jl.git Stdlib branch: master Julia branch: master Old commit: ed7a8dca8 New commit: 4e43058c2 Julia version: 1.12.0-DEV Pkg version: 1.12.0 Bump invoked by: @IanButterworth Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: JuliaLang/Pkg.jl@ed7a8dc...4e43058 ``` $ git log --oneline ed7a8dca8..4e43058c2 4e43058c2 Merge pull request #3887 from carlobaldassi/validate_versions bc7c3207d abort querying more pacakge for hint auto complete (#3913) a4016aed2 precompile repl switch (#3910) a48c9c645 Fixed glitch in the manual (#3912) d875aa213 Add timeout and new tests for resolver aeb55f7f0 run artifact selection code with minimal compilation (#3899) 0180a0105 avoid doing some checks if the package will not be showed in status output (#3897) c6c7ed502 improve precompilation for `st` in the Pkg REPL (#3893) bffd0633c Add version validation during Graph simplification c2ad07003 Fix padding in resolve's log journal printing 3eb86d29f Revert #2267, with better log message acdbb727e Small extra check in Graph's check_consistency 1d446c224 Fix small bug in Graph constructor 3efc3cbff Fix show method for VersionSpecs ``` Co-authored-by: Dilum Aluthge <[email protected]>
Noting down ideas for the I/O refactor that I discussed with @JeffBezanson (do add anything I forgot).
nb_available
)The text was updated successfully, but these errors were encountered: