←back to thread

492 points storf45 | 3 comments | | HN request time: 0.416s | source
Show context
shermantanktop ◴[] No.42160502[source]
Every time a big company screws up, there are two highly informed sets of people who are guaranteed to be lurking, but rarely post, in a thread like this:

1) those directly involved with the incident, or employees of the same company. They have too much to lose by circumventing the PR machine.

2) people at similar companies who operate similar systems with similar scale and risks. Those people know how hard this is and aren’t likely to publicly flog someone doing their same job based on uninformed speculation. They know their own systems are Byzantine and don’t look like what random onlookers think it would look like.

So that leaves the rest, who offer insights based on how stuff works at a small scale, or better yet, pronouncements rooted in “first principles.”

replies(15): >>42160568 #>>42160576 #>>42160579 #>>42160888 #>>42160913 #>>42161148 #>>42161164 #>>42161399 #>>42161529 #>>42161703 #>>42161724 #>>42161889 #>>42165352 #>>42166894 #>>42167814 #
survirtual ◴[] No.42160913[source]
For an event like this, there already exists an architecture that can handle boundless scale: torrents.

If you code it to utilize high-bandwidth users upload, the service becomes more available as more users are watching -- not less available.

It becomes less expensive with scale, more available, more stable.

The be more specific, if you encode the video in blocks with each new block hash being broadcast across the network, just managing the overhead of the block order, it should be pretty easy to stream video with boundless scale using a DHT.

Could even give high-bandwidth users a credit based upon how much bandwidth they share.

With a network like what Netflix already has, the seed-boxes would guarantee stability. There would be very little delay for realtime streams, I'd imagine 5 seconds top. This sort of architecture would handle planet-scale streams for breakfast on top of the already existing mechanism.

But then again, I don't get paid $500k+ at a large corp to serve planet scale content, so what do I know.

replies(5): >>42161009 #>>42161094 #>>42161365 #>>42161475 #>>42162174 #
1. Edman274 ◴[] No.42161094[source]
The protocol for a torrent is that random parts of a file get seeded to random people requesting a file, and that the clients which act as seeds are able to store arbitrary amounts of data to then forward to other clients in the swarm. Do the properties about scaling still hold when it's a bunch of people all requesting real time data which has to be in-order? Do the distributed Rokus, Apple TVs, Fire TVs and other smart TVs all have the headroom in compute and storage to be able to simultaneously decode video and keep old video data in RAM and manage network connections with upload to other TVs in their swarm - and will uploading data to other TVs in the swarm not negatively impact their own download speeds?
replies(2): >>42161166 #>>42163739 #
2. alex-mohr ◴[] No.42161166[source]
Yes, the properties about scaling do hold even with near-real-time streams. [1]

The problems with using it as part of a distributed service have more to do with asymmetric connections: using all of the limited upload bandwidth causes downloads to slow. Along with firewalls.

But the biggest issue: privacy. If I'm part of the swarm, maybe that means I'm watching it?

[1]: Chainsaw: P2P streaming without trees, https://link.springer.com/chapter/10.1007/11558989_12

3. survirtual ◴[] No.42163739[source]
Use your imagination for just a moment.

The torrent is an example of the system I am describing, not the same system. Torrents cannot work for live streams because the entire content is not hashable yet, so already you have to rethink how it's done. I am talking about adding a p2p layer on top of the existing streaming protocol.

The current streaming model would prioritize broadcasting to high-bandwidth users first. There should be millions of those in a world-scale stream.

Even a fraction of these millions would be enough to reduce Netflix's streaming costs by an order of magnitude. But maybe Netflix isn't interested in saving billions?

With more viewers, the availability of content increases, which reduces load on the centralized servers. This is the property of the system I am talking about, so think backwards from that.

With a livestream, you want the youngest block to take priority. You would use the DHT to manage clients and to manage stale blocks for users catching up.

The youngest block would be broadcast on the p2p network and anyone who is "live" would be prioritizing access to that block.

Torrent clients as they are now handle this case, in reverse; they can prioritize blocks closer the current timestamp to created an uninterrupted stream.

The system I am talking about would likely function at any scale, which is an improvement from Netflix's system, which we know will fail -- because it did.