HNHacker News
TopNewBestAskShowJobs

bbss

41 karma · joined February 15, 2021

submissionscomments
bbss··on Multiple Digital Ocean services down
Regional LBs do not have Cloudflare as an upstream dependency.
bbss··on Multipath TCP for Linux (2022)
Apple also contributed[1] MPTCP support to Envoy Proxy.

[1]https://github.com/envoyproxy/envoy/pull/18780

bbss··on TCP connection timeout mystery
Agreed, my best guess it's due to a smaller MTU between the CDN and your device. They are probably replying with TLS Server Hello which would typically max a standard 1500 byte packet. It's also likely why HTTP isn't working either since they would ACK the connection, you would probably be able to issue the GET / but you would never get a response back due to the HTTP response payload being larger than a single packet.

A few ideas to test this theory: 1) Find an asset on their server that is smaller than 500-1000 bytes so the entire payload will fit in a packet. Maybe a HEAD would work? 2) Clamp your MSS on this IP to something much smaller like 500 instead of the standard 1460. This should force the server to send smaller packets and will work better in practice than changing your MTU. See: https://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.cookbook.mtu-...

bbss··on Implementing TCP in Rust
ICYMI but https://datatracker.ietf.org/doc/html/rfc9293 may be a better place to start in 2023.
bbss··on ScyllaDB is Moving to a New Replication Algorithm: Tablets
Very similar to how BigTable[1] works under the hood which was built ~20 years ago.

[1] https://static.googleusercontent.com/media/research.google.c...

bbss··on Investigating the impact of HTTP3 on network latency for search
Not that I am aware of.
bbss··on Investigating the impact of HTTP3 on network latency for search
HTTP/3/QUIC supports migrating connections between two networks, such as if a user switches from WIFI to LTE. IPVS or any UDP load balancer won't handle this scenario properly since it doesn't introspect the QUIC header and load balance based on the QUIC connection ID. This QUIC connection ID allows for a stable connection when the device needs to switch networks. If operators have any sort load balancer (like IPVS) between the client and the point the HTTP/3 connection is terminated, they will need to ensure that it has proper support for QUIC. One example is Katran[1] which has support for this method of load balancing.

[1] https://github.com/facebookincubator/katran

bbss··on How RocksDB Works
Might want to look at LMDB (https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Databa...)
bbss··on Load Balancing
Great post! I would have loved to see P2C (Power of 2 Choices) in there as well, which is typically a better alternative to Round Robin and Least Connections.
bbss··on Loxilb: eBPF based cloud-native service load-balancer
Can read about GCP here: https://research.google/pubs/pub48645/
bbss··on A pure Go embedded SQL database
Ah yes my bad
bbss··on A pure Go embedded SQL database
There are a few go libs now that offer SQLite without cgo.

https://github.com/crawshaw/sqlite https://github.com/zombiezen/go-sqlite

bbss··on The Idempotency-Key HTTP header field
The downside with “automagically” trying to handle idempotency is users may not be aware of it and retries may happen across different processes (maybe they are running their application on k8s with multiple pods), which doesn’t work with stripes default behaviour.

IMO the idempotency key should be required to be set and make the user aware that they need to handle retries properly.

bbss··on Running Nomad for a Home Server
> host_network as of present cannot bind to a floating IP address (DigitalOcean/GCP etc). I've to resort to using my droplet's public IPv4 address for now.

You should be able to bind to the anchor ip to make the floating ip work. https://www.digitalocean.com/docs/networking/floating-ips/ho...