Our great sponsors
-
gnet
🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go./ gnet 是一个高性能、轻量级、非阻塞的事件驱动 Go 网络框架。
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
pyamigadebug
Framework for abstracting Amiga debuggers and access to AmigaOS libraries and devices. AmigaXfer lives here.
-
UDPspeeder
A Tunnel which Improves your Network Quality on a High-latency Lossy Link by using Forward Error Correction, possible for All Traffics(TCP/UDP/ICMP)
You should probably defer mutex unlock() and not use naked returns: https://github.com/pojntfx/go-nbd/blob/main/pkg/backend/file...
Since this heavily involves networking, take a look into using gnet [0]. You might find some interesting performance improvements by using that over just net.Conn.
[0] https://github.com/panjf2000/gnet
Very cool! I'm curious if you've explored testing error cases yet? Years ago I fooled around with nbdkit and developed a "bad sectors" and "bad disk" plugin and found that the error handling around these scenarios left a little to be desired.
https://github.com/pepaslabs/nbdkit-baddisk-plugin
https://github.com/pepaslabs/nbdkit-badsector-plugin
Very cool! I'm curious if you've explored testing error cases yet? Years ago I fooled around with nbdkit and developed a "bad sectors" and "bad disk" plugin and found that the error handling around these scenarios left a little to be desired.
https://github.com/pepaslabs/nbdkit-baddisk-plugin
https://github.com/pepaslabs/nbdkit-badsector-plugin
NBD is fairly simple. I wrote a minimal server in Python[0]. It is just a few lines.
0. https://github.com/rvalles/pyamigadebug/blob/master/NBDServe...
I just use nbd-server, nbd-client (kernel module nbd). While at home things are fine, when not at home things can get bad unless you use something like UDPspeeder <https://github.com/wangyu-/UDPspeeder> then you just need to deal with slower speeds.
I do backups with borg while connected through ethernet.
Related posts
- KCP – A TCP alternative optimized for latency
- Should I write my own Redis?
- Golang WebRTC. How to use Pion 🌐Remote Controller
- "Every time a new Go release happened, the package stopped building, and the authors had to add a new file with a new //go:build line, and then the entire ecosystem of packages with that as a dependency had to explicitly update to the new version" -- Go itself
- Rob Pike: Gobs of data (2011)