15 comments

  • threecheese6 hours ago
    &gt; What I had missed is that we deployed a new internal service last week that sent less than three GetPostRecord requests per second, but it did sometimes send batches of 15-20 thousand URIs at a time. Typically, we&#x27;d probably be doing between 1-50 post lookups per request.<p>That’ll do it.
    • 98codes5 hours ago
      Ahh, the three relevant numbers in development: 0, 1, and infinity.
    • jandrese3 hours ago
      The incredible part about this is because their backend is all TCP&#x2F;IP they were literally exhausting the ports by leaving all 65k of them in TIME_WAIT, and the workaround was to start randomizing the localhost address to give them another trillion ports or so.
      • Night_Thastus7 minutes ago
        I mean, it&#x27;s one GetPostRecord, Michael. What could it cost? 1 trillion ports?
    • bombcar5 hours ago
      Zero, one, many, many thousands.
    • LoganDark3 hours ago
      And then they fix the issue by using multiple localhost IPs rather than, perhaps, <i>not sending 15-20 thousand URIs at a time</i>
      • odo12423 hours ago
        They mentioned it was a temporary fix that they removed after finding and fixing the true root cause, though.
    • htx80nerd3 hours ago
      less than ideal if I had to be frank.
  • tapoxi3 hours ago
    I don&#x27;t really understand this architecture, but I thought Bluesky was distributed like Mastodon? How can it have an outage?
    • pfraze3 hours ago
      This writeup is useful for backend engineers: <a href="https:&#x2F;&#x2F;atproto.com&#x2F;articles&#x2F;atproto-for-distsys-engineers" rel="nofollow">https:&#x2F;&#x2F;atproto.com&#x2F;articles&#x2F;atproto-for-distsys-engineers</a><p>The simple answer is that atproto works like the web &amp; search engines, where the apps aggregate from the distributed accounts. So the proper analogy here would be like yahoo going down in 1999.
      • tapoxi3 hours ago
        This is a fantastic write-up, thanks for sharing!
      • fiatjaf1 hour ago
        Sorry, but this analogy is very misleading, no one browses websites through Google&#x27;s servers.<p>For example, right now in my URL bar I read &quot;news.ycombinator.com&quot;, not &quot;google.com&#x2F;profile&#x2F;news.ycombinator.com&quot;.<p>If Google goes down now I can keep browsing this website and all the other websites I have in all my other tabs as if nothing had happened.
        • danabramov26 minutes ago
          Does Google Reader help you make sense of it? It’s more like each app is like its own Google Reader. And indeed you were able to access the same posts via other apps at that time of outage.
        • pfraze17 minutes ago
          Technically you can still view the posts directly from the PDS. It’s just uninteresting compared to web pages
        • evbogue17 minutes ago
          Do you have ideas about how Bluesky could decentralize?
          • wmf10 minutes ago
            Not the original poster but I do have some ideas. Official Bluesky clients could randomly&#x2F;round-robin access 3-4 different appview servers run by different organizations instead of one centralized server. Likewise there could be 3-4 relays instead of one. Upgrades could roll across the servers so they don&#x27;t all get hit by bugs immediately.
            • evbogue5 minutes ago
              If multiple personal data servers (pdses) share the same set of posts how would we guarantee that they are tamper resistant to third parties?
      • isodev3 hours ago
        Google and MSN Search were already available at this time. Also websites used to publish webrings and there was IRC and forums to ask people about things.
    • isodev3 hours ago
      It’s more of a concept of a plan for being distributed. I even went through the trouble of hosting my own PDC and still, I was unable to use the service during the outage
    • Retr0id3 hours ago
      Mastodon infra can have outages, too.
      • tapoxi3 hours ago
        It&#x27;s just confined to one instance if it goes down, not all of Mastodon.
    • direwolf202 hours ago
      It&#x27;s not really distributed. It&#x27;s a centralised service that pulls some parts of 0.01% of user profiles from their own servers.
    • LoganDark3 hours ago
      A web interface and home server can have an outage. Bluesky is just a web interface and home server.
  • opem1 hour ago
    At least they aren&#x27;t hiding and transparent about it unlike the big tech corps with so called SLAs
    • tmpz2215 minutes ago
      There are no outages in Azure sing se.
  • mwkaufma3 hours ago
    Tell us more about this buggy &quot;new internal service&quot; that&#x27;s scraping batch data :P
  • goekjclo4 hours ago
    &gt; The timing of these log spikes lined up with drops in user-facing traffic, which makes sense. Our data plane heavily uses memcached to keep load off our main Scylla database, and if we&#x27;re exhausting ports, that&#x27;s a huge problem.<p>I expect this is common.
  • pembrook3 hours ago
    Distributed social media goes down? hrmmm.<p>Email and the internet don&#x27;t have &quot;downtime.&quot; Certain key infra providers do of course. ISPs can go down. DNS providers can go down. But the internet and email itself can&#x27;t go down absent a global electricity outage.<p>You haven&#x27;t built a decentralized network until you reach that standard imo. Otherwise its just &quot;distributed protocol&quot; cosplay. Nice costume. Kind of like how everybody has been amnesia&#x27;d into thinking Obsidian is open source when it really isn&#x27;t.
    • iAMkenough3 hours ago
      Bluesky is a provider. Blacksky didn’t go down.
      • pembrook2 hours ago
        Is there anything running on Blacksky other than Bluesky with more than say, 100 active users?<p>AOL never even got to that level of dominance in the internet 1.0 era.<p>The point is it&#x27;s not a distributed network if one node is 99.9% of all traffic.
  • streetfighter641 hour ago
    &gt; They represent real user-facing downtime<p>Off-topic, but &quot;real&quot; feels like the new &quot;delve&quot;. Is there such a thing as &quot;fake&quot; or &quot;virtual&quot; downtime, or why do people feel the need to specify that all manner of things are &quot;real&quot; nowadays?
  • jonstaab4 hours ago
    nostr never goes down
    • emidoots16 minutes ago
      There&#x27;s stark contrast for an average human visiting the landing page of bsky.app vs nostr.org
    • jandrese3 hours ago
      If nostr went down would people even notice?
      • nout2 hours ago
        If any major nostr relay goes down, no one notices. That has happened many times, the network is very resilient to that.
      • jonstaab3 hours ago
        probably not
    • pfraze4 hours ago
      All support to other decentralizers but nothing never goes down.
      • nout2 hours ago
        The comparison here is to something like TCP&#x2F;IP. TCP&#x2F;IP never goes down. TCP&#x2F;IP is a protocol, the servers may go down and cause disruption, but the protocol doesn&#x27;t really have the ability to &quot;go down&quot;. Nostr is also a protocol. The communication on top of Nostr is pretty resilient compared to other solutions though, so that&#x27;s the main highlight here.<p>If tens of servers go down, then some people may start noticing a bit of inconvenience. If hundreds of servers go down, then some people may need to coordinate out of bound on what relays to use, but it still generally speaking works ok.
      • jonstaab3 hours ago
        1000x redundancy makes it vanishingly unlikely. Although I know we&#x27;re due for a pole shift so all bets are off I suppose.
        • numpad02 hours ago
          Wasn&#x27;t aware there are ~2k relays now. Have inter-relay sharing situation improved?<p>When I tried it long time ago, the idea was just a transposed Mastodon model that the client would just multi-post to dozen different servers(relays) automatically to be hopeful that the post would be available in at least one shared relays between the user and their followers. That didn&#x27;t seem to scale well.
          • jonstaab1 hour ago
            Getting clients to do the right thing is like herding cats, but there has been some progress. Early 2023 Mike Dilger came up with the &quot;gossip model&quot; (renamed &quot;outbox model&quot; for obvious reasons). Here&#x27;s my write-up: <a href="https:&#x2F;&#x2F;habla.news&#x2F;hodlbod&#x2F;8YjqXm4SKY-TauwjOfLXS" rel="nofollow">https:&#x2F;&#x2F;habla.news&#x2F;hodlbod&#x2F;8YjqXm4SKY-TauwjOfLXS</a><p>The basic idea is that for microblogging use cases users advertise which relays their content is stored on, which clients follow (this implies that there are less-decentralized indexes that hold these pointers, but it does help distribute content to aligned relays instead of blast content everywhere).<p>Also, relays aside, one key difference vs ActivityPub is that no third party owns your identity, which means you can move from one relay to another freely, which is not true on Mastodon.
  • dogemaster20273 hours ago
    [dead]
  • templar_snow5 hours ago
    [flagged]
  • rvz4 hours ago
    Thank you for the post mortem on this outage.
  • electrondood4 hours ago
    Great write up... curious about the RCA. Thanks!
  • gsibble3 hours ago
    Did all 3 users notice?
    • dogemaster20273 hours ago
      [dead]
    • ffsm83 hours ago
      Naw, only one did. Turns out the other two were his socket accounts he used to upvote and comment on his own content.<p>Okay, nuff trolling for today
  • jmclnx4 hours ago
    Lite Blue on a dark Blue background. That is a new one, I have seen grey text on lite grey, but blue on blue ?<p>The article does work in lynx, at least I can read it.
  • drewg1233 hours ago
    Golang&#x27;s use of a potentially unbounded number of threads is just insane. I used to be fairly bullish on golang, but this, combined with the fact that its garbage collected, makes me feel its just unsuitable for production use.
    • floating-io2 hours ago
      You can have this problem with any kind of thread -- including OS threads -- if you do an unbounded spawn loop. Go is hardly unique in this.<p>Goroutines are actually better AFAIK because they distribute work on a thread pool that can be much smaller than the number of active goroutines.<p>If my quick skim created a correct understanding, then the problem here looks more like architecture. Put simply: does the memcached client really require a new TCP connection for every lookup? I would think you would pool those connections just like you would a typical database and keep them around for approximately forever. Then they wouldn&#x27;t have spammed memcache with so many connections in the first place...<p>(edit: ah, it looks like they do use a pool, but perhaps the pool does not have a bounded upper size, which is its own kind of fail.)
      • slopinthebag2 hours ago
        Rust&#x27;s async doesn&#x27;t have this issue. Or at least, it&#x27;s the same issue as malloc in an unbounded loop, but that&#x27;s a more general issue not related to async or threading.<p>15-20 thousand futures would be trivial. 15-20 thousand goroutines, definitely not.
        • floating-io53 minutes ago
          I don&#x27;t know enough about rust to confirm or deny that -- but unless rust somehow puts a limit on in-flight async operations, I don&#x27;t see how it would help.<p>The problem is not resource usage in go. The problem is that they created umpteen thousand TCP connections, which is going to kill things regardless of the language.
    • tombert2 hours ago
      Why does garbage collection make it unsuitable for production use? A <i>lot</i> of production software is written in garbage collected languages like Java. Pretty much the entire backend for iTunes&#x2F;Apple Music is written in Java, and it&#x27;s not doing any kind of fancy bump allocator tricks to avoid garbage. In my mind, kind of hard to argue that Apple Music is not &quot;production use&quot;.<p>There are certainly plenty of projects where garbage collection is too slow, but I don&#x27;t know that they&#x27;re the majority, and more people would likely prefer memory safety by default.
      • madeofpalk12 minutes ago
        Based on my experience of Apple Music being pretty bad at streaming music, i would say that it&#x27;s not ready for &#x27;production use&#x27;.
      • slopinthebag2 hours ago
        Everything is understood by comparison. Unsuitable for production use, <i>compared to what</i> is the more apt question.