Jack Kelly
Jack Kelly
## Papers to read - [Jens Axboe: io_uring and networking in 2023](https://github.com/axboe/liburing/wiki/io_uring-and-networking-in-2023) - [Analyzing the Performance of Linux Networking Approaches for Packet Processing](https://liu.diva-portal.org/smash/get/diva2:1789103/FULLTEXT01.pdf) - a 2023 MSc thesis. Contains good...
io_uring: - Zero-copy network _rx_: https://www.youtube.com/watch?v=LCuTSNDe1nQ (but this work is still at an early stage: for example, it doesn't yet support containers or VMs; only supports Broadcom hardware; the API...
Also see: 2023: [Google Posts Experimental Linux Code For "Device Memory TCP" - Network To/From Accelerator RAM](https://www.phoronix.com/news/Linux-Device-Memory-TCP). "If Devmem TCP takes flight, it will allow the accelerator/GPU/device memory to be...
See this paper: > "[Exploiting Cloud Object Storage for High-Performance Analytics](https://github.com/durner/AnyBlob)", Dominik Durner, Viktor Leis, and Thomas Neumann, PVLDB 16 (11), 2023, 49th International Conference on Very Large Data Bases...
https://dynamical.org are doing a great job, publishing NWPs as Zarr. Maybe one of my areas of focus could be to provide high-performance read access to data on dynamical.org? e.g. to...
Todo: remove the GetRangeState enum. I don't think we need it! The incoming opcode tells us all we need
Actually, I think I should use "manual" threads with `crossbeam::deque` instead of using Rayon for the `io_uring` worker threads. This is for several reasons: 1. More efficient? With Rayon, we'd...
How would this work for a simple `GetRanges` request? Something like this: 1. User submits `IoOperation::GetRanges{filename, ranges}` on the injector queue. 2. A (ready) thread takes that `GetRanges` operation and:...
## Design change: Don't use channels as the public instruction interface Users shouldn't submit `IoOperation`s via a `channel`. Instead, users should just call methods like `get_ranges` on the `Uring` struct....
Making good progress... need to finish moving code from `new_design_march_2024.rs` into various files, then delete `new_design`, and then get the `worker.rs` working (with `crossbeam::deque`)