Infinite disk

Infinite disk


Hardware performance “obviously” affects software performance and affects how software is optimized. For example, the fact that caches are multiple orders of magnitude faster than RAM means that blocked array accesses give better performance than repeatedly striding through an array.

Something that’s occasionally overlooked is that hardware performance also has profound implications for system design and architecture. Let’s look at this table of latencies that’s been passed around since 2012:

Operation                                Latency (ns)     (ms)
L1 cache reference                            0.5 ns
Branch mispredict                             5   ns
L2 cache reference                            7   ns
Mutex lock/unlock                            25   ns
Main memory reference                       100   ns
Compress 1K bytes with Zippy              3,000   ns
Send 1K bytes over 1 Gbps network        10,000   ns    0.01 ms
Read 4K randomly from SSD               150,000   ns    0.15 ms
Read 1 MB sequentially from memory      250,000   ns    0.25 ms
Round trip within same datacenter       500,000   ns    0.5  ms
Read 1 MB sequentially from SSD       1,000,000   ns    1    ms
Disk seek                            10,000,000   ns   10    ms
Read 1 MB sequentially from disk     20,000,000   ns   20    ms
Send packet CA->Netherlands->CA     150,000,000   ns  150    ms

Consider the latency of a disk seek (10ms) vs. the latency of a round-trip within the same datacenter (.5ms). The round-trip latency is so much lower than the seek time of a disk that we can dis-aggregate storage and distribute it anywhere in the datacenter without noticeable performance degradation, giving applications the appearance of having infinite disk space without any appreciable change in performance. This fact was behind the rise of distributed filesystems like GFS within the datacenter over the past two decades, and various networked attached storage schemes long before.

However, doing the same thing on a 2012-era commodity network with SSDs doesn’t work. The time to read a page on an SSD is 150us, vs. a 500us round-trip time on the network. That’s still a noticeable performance improvement over spinning metal disk, but it’s over 4x slower than local SSD.

But here we are in 2015. Things have changed. Disks have gotten substantially faster. Enterprise NVRAM drives can do a 4k random read in around 15us, an order of magnitude faster than 2012 SSDs. Networks have improved even more. It’s now relatively common to employ a low-latency user-mode networking stack, which drives round-trip latencies for a 4k transfer down to 10s of microseconds. That’s fast enough to disaggregate SSD and give applications access to infinite SSD. It’s not quite fast enough to disaggregate high-end NVRAM, but RDMA can handle that.

Infinite disk

RDMA drives latencies down another order of magnitude, putting network latencies below NVRAM access latencies by enough that we can disaggregate NVRAM. Note that these numbers are for an unloaded network with no congestion — these numbers will get substantially worse under load, but they’re illustrative of what’s possible. This isn’t exactly new technology: HPC folks have been using RDMA over InfiniBand for years, but InfiniBand networks are expensive enough that they haven’t seen a lot of uptake in datacenters. Something that’s new in the past few years is the ability to run RDMA over Ethernet. This turns out to be non-trivial; both Microsoft and Google have papers in this year’s SIGCOMM on how to do this without running into the numerous problems that occur when trying to scale this beyond a couple nodes. But it’s possible, and we’re approaching the point where companies that aren’t ridiculously large are going to be able to deploy this technology at scale.

However, while it’s easy to say that we should use disaggregated disk because the ratio of network latency to disk latency has changed, it’s not as easy as just taking any old system and throwing it on a fast network. If we take a 2005-era distributed filesystem or distributed database and throw it on top of a fast network, it won’t really take advantage of the network. That 2005 system is going to have assumptions like the idea that it’s fine for an operation to take 500ns, because how much can 500ns matter? But it matters a lot when your round-trip network latency is only few times more than that and applications written in a higher-latency era are often full of “careless” operations that burn hundreds of nanoseconds at a time. Worse yet, designs that are optimal at higher latencies create overhead as latency decreases. For example, with 1ms latency, adding local caching is a huge win and 2005-era high-performance distributed applications will often rely heavily on local caching. But when latency drops below 1us, the caching that was a huge win in 2005 is often not just pointless, but actually counter-productive overhead.

Latency hasn’t just gone down in the datacenter. Today, I get about 2ms to 3ms latency to YouTube. YouTube, Netflix, and a lot of other services put a very large number of boxes close to consumers to provide high-bandwidth low-latency connections. A side effect of this is that any company that owns one of these services has the capability of providing consumers with infinite disk that’s only slightly slower than normal disk. There are a variety of reasons this hasn’t happened yet, but it’s basically inevitable that this will eventually happen. If you look at what major cloud providers are paying for storage, their COGS of providing safely replicated storage is or will become lower than the retail cost to me of un-backed-up unreplicated local disk on my home machine.

It might seem odd that cloud storage can be cheaper than local storage, but large cloud vendors have a lot of leverage. The price for the median component they buy that isn’t an Intel CPU or an Nvidia GPU is staggeringly low compared to the retail price. Furthermore, the fact that most people don’t access the vast majority of their files most of the time. If you look at the throughput of large HDs nowadays, it’s not even possible to do so. A typical consumer 3TB HD has an average throughput of 155MB/s, making the time to read the entire drive 3e12 / 155e6 seconds = 1.9e4 seconds = 5 hours and 22 minutes. And people don’t even access their disks at all most of the time! And when they do, their access patterns result in much lower throughput than you get when reading the entire disk linearly. This means that the vast majority of disaggregated storage can live in cheap cold storage. For a neat example of this, the Balakrishnan et al. Pelican OSDI 2014 paper demonstrates that if you build out cold storage racks such that only 8% of the disk can be accessed at any given time, you can get a substantial cost savings. A tiny fraction of storage will have to live at the edge, for the same reason that a tiny fraction of YouTube videos are cached at the edge. In some sense, the economics are worse than for YouTube, since any particular chunk of data is very likely to be shared, but at the rate that edge compute/storage is scaling up, that’s unlikely to be a serious objection in a decade.

The most common counter argument to disaggregated disk, both inside and outside of the datacenter, is bandwidth costs. But bandwidth costs have been declining exponentially for decades and continue to do so. Since 1995, we’ve seen an increase in datacenter NIC speeds go from 10Mb to 40Gb, with 50Gb and 100Gb just around the corner. This increase has been so rapid that, outside of huge companies, almost no one has re-architected their applications to properly take advantage of the available bandwidth. Most applications can’t saturate a 10Gb NIC, let alone a 40Gb NIC. There’s literally more bandwidth than people know what to do with. The situation outside the datacenter hasn’t evolved quite as quickly, but even so, I’m paying $60/month for 100Mb, and if the trend of the last two decades continues, we should see another 50x increase in bandwidth per dollar over the next decade. It’s not clear if the cost structure makes cloud-provided disaggregated disk for consumers viable today, but the current trends of implacably decreasing bandwidth cost mean that it’s inevitable within the next five years.

One thing to be careful about is that just because we can disaggregate something, it doesn’t mean that we should. There was a fascinating paper by Lim et. al at HPCA 2012 on disaggregated RAM where they build out disaggregated RAM by connecting RAM through the backplane. While we have the technology to do this, which has the dual advantages of allowing us to provision RAM at a lower per-unit cost and also getting better utilization out of provisioned RAM, this doesn’t seem to provide a performance per dollar savings at an acceptable level of performance, at least so far.

The change in relative performance of different components causes fundamental changes in how applications should be designed. It’s not sufficient to just profile our applications and eliminate the hot spots. To get good performance (or good performance per dollar), we sometimes have to step back, re-examine our assumptions, and rewrite our systems. There’s a lot of talk about how hardware improvements are slowing down, which usually refers to improvements in CPU performance. That’s true, but there are plenty of other areas that are undergoing rapid change, which requires that applications that care about either performance or cost efficiency need to change. GPUs, hardware accelerators, storage, and networking are all evolving more rapidly than ever.

Update

Microsoft seems to disagree with me on this one. OneDrive has been moving in the opposite direction. They got rid of infinite disk, lowered quotas for non-infinite storage tiers, and changing their sync model in a way that makes this less natural. I spent maybe an hour writing this post. They probably have a team of Harvard MBAs who’ve spent 100x that much time discussing the move away from infinite disk. I wonder what I’m missing here. Average utilization was 5GB per user, which is practically free. A few users had a lot of data, but if someone uploads, say, 100TB, you can put most of that on tape. Access times on tape are glacial — seconds for the arm to get the cartridge and put it in the right place, and tens of seconds to seek to the right place on the tape. But someone who uploads 100TB is basically using it as archival storage anyway, and you can mask most of that latency for the most common use cases (uploading libraries of movies or other media). If the first part of the file doesn’t live on tape, and the user starts playing a movie that lives on tape, the movie can easily play for a couple minutes off of warmer storage while the tape access gets queued up. You might say that it’s not worth it to spend the time it would take to build a system like that (perhaps two engineers working for six months), but you’re already going to want a system that can mask the latency to disk-based cold storage for large files. Adding another tier on top of that isn’t much additional work.

Update 2

It’s happening. In April 2016, Dropbox announced that they’re offering “Dropbox Infinite”, which lets you access your entire Dropbox regardless of the amount of local disk you have available. The inevitable trend happened, although I’m a bit surprised that it wasn’t Google that did it first since they have better edge infrastructure and almost certainly pay less for storage. In retrospect, maybe that’s not surprising, though — Google, Microsoft, and Amazon all treat providing user-friendly storage as a second class citizen, while Dropbox is all-in on user friendliness.

Thanks to Leah Hanson, bbrazil, Kamal Marhubi, mjn, Steve Reinhardt, Joe Wilder, and Jesse Luehrs for comments/corrections/additions that resulted in edits to this.



Source link

Postagens Similares

  • 大衛·萊特曼(David Letterman)

    傳奇的深夜主持人戴維·萊特曼(David Letterman)在導致ABC暫停吉米·金梅爾(Jimmy Kimmel)的事件中加重了這一事件。 當被問及金梅爾的停賽時,萊特曼說:“這真是痛苦。” “我對此感到難過,”他繼續說道。 “我們看到這一切都在哪裡,對嗎?這是管理媒體。這不是很好。這很愚蠢。這太荒謬了。您不能四處解僱某人,因為您害怕或試圖在橢圓形辦公室裡吸引專制犯罪管理局。這不是這樣做的。” 萊特曼說:“在一個專制的人,也許是獨裁統治的世界中,每個人都將被感動。” 萊特曼還說:“美國總統的機構應該比參加脫口秀的人大。”他說,金梅爾從深夜電視台上撤離,“斯蒂芬·科爾伯特(Stephen Colbert)離開後,我們的總統預言了我們的總統,所以你告訴我這沒有在某種程度上進行預謀嗎?” 萊特曼(Letterman)在深夜電視節目中度過了三十年的時間,他說,金梅爾(Kimmel)在星期四早上給他發了短信。萊特曼說:“他躺在床上,接受營養。他會沒事的。” 週三,美國廣播公司(ABC)暫停了金梅爾(Kimmel)的深夜節目“無限期”。這是在FCC董事長佈倫丹·卡爾(Brendan Carr)僅幾個小時前就威脅ABC及其分支機構之後,如果他們沒有對Kimmel“採取行動”對他認為對Charlie Kirk的殺手的令人反感的評論。卡爾在保守的播客中說:“我們可以以簡單的方式或艱難的方式做到這一點。” “坦率地說,這些公司可以找到改變行為和採取行動的方法,否則將為FCC提供其他工作。”此後不久,兩個大型電視台集團經營ABC分支機構 – Nexstar Media和Sinclair,兩者都受到FCC的監督 – 表示他們不會播出“ Jimmy Kimmel Live!”在可預見的未來。然後,美國廣播公司(ABC)宣布了金梅爾(Kimmel)的停賽。 關於卡爾的評論:“我們可以以簡單的方式或艱難的方式做到這一點,”萊特曼說:“誰在僱用這些傻瓜 – 馬里奧·普佐(Mario Puzo)?”,指的是“教父”的作者。萊特曼說,當他在電視上時,他從未受到總統政府,FCC或任何其他政府機構對他的空中評論的壓力。 萊特曼說:“以喜劇的名義,正確,正確,準確或可能不正確地毆打(過去的美國總統),我們從來沒有任何人都被任何政府機構的任何人擠過,更不用說可怕的FCC了。” 批評金梅爾的停賽的其他人包括巴拉克·奧巴馬,萬達·賽克斯,本·斯蒂勒,讓·斯瑪特等,而像總統唐納德·特朗普這樣的保守派人物卻慶祝了這一舉動。 萊特曼(Letterman)接受了大西洋總編輯杰弗裡·戈德堡(Jeffrey Goldberg)的採訪,後者稱他為深夜的“教父”。萊特曼(Letterman)的深夜電視生涯始於1982年,當時NBC的“深夜”首次亮相,並繼續CBS的“ Late Late Show” 1993 – 2015年。從那以後,他主持了Netflix的談話系列,“我的下一位客人不需要介紹。” “十年前,我足夠聰明,可以取消自己,”萊特曼打趣道。 戈德堡認為,今天,儘管特朗普對媒體發動了攻擊,“我們仍然有一個免費的媒體”,萊特曼回答說:“我們嗎?” 7月,在哥倫比亞廣播公司宣布取消“與斯蒂芬·科爾伯特的後期演出”之後,萊特曼將網絡的行動猛烈抨擊為“純粹的怯ward”。萊特曼在與YouTube共享的視頻中說:“他們沒有做正確的事情。他們沒有按照他應得的處理方式來處理斯蒂芬·科爾伯特(Stephen Colbert) – 該網絡的面孔。”他還對哥倫比亞廣播公司(CBS)宣稱的該節目的理由表示懷疑是“純粹”的財務決定。 萊特曼在大西洋節上談到了科爾伯特的取消時說:“那是不可原諒的。那個男人值得一提……因為埃里森一家人不想讓唐納德·特朗普(Ellison Trump)帶來這一舉動困擾唐納德·特朗普(Donald Trump),所以他們被他擺脫了,所以擺脫了整個節目。 (Skydance Media上個月在拉里·埃里森(Larry Ellison)的主要支持下為派拉蒙(Paramount Global)提供的80億美元交易說,其高管沒有參與“遲到”取消。) 在撰寫本文時,迪斯尼或美國廣播公司(ABC)對金梅爾情況的唯一評論是美國廣播公司(ABC)發言人周三的聲明:“’吉米·金梅爾(Jimmy Kimmel Live)!”將無限期地被搶占。 ”金梅爾沒有發表評論。 上圖:2019年5月23日在洛杉磯舉行的Netflix活動,吉米·金梅爾和大衛·萊特曼 Source…

  • లేదు, మీరు పేజీని సంగ్రహించడం నాకు ఇష్టం లేదు!

    22 జూన్ 2026 | 1 నిమి చదవబడింది నేను ఇక్కడ LLMల గురించి కొన్ని సార్లు మాట్లాడాను – TL;DR అంటే నాకు అవి ఉపయోగకరంగా ఉన్నాయి కొన్ని వినియోగ సందర్భాలలో. ఏదైనా సంక్లిష్టంగా శోధిస్తున్నారా? గొప్ప. నా కోడ్‌ని తనిఖీ చేస్తున్నారా లేదా చెప్పిన కోడ్‌లో సమస్య ఉన్నందుకు నాకు సహాయం చేస్తున్నారా? నన్ను లెక్కించు. కానీ నేను చదువుతున్న పేజీని సంగ్రహించాలా? ఖచ్చితంగా కాదు. వెబ్‌లో సర్ఫింగ్ చేయడం నేను నిజంగా ఆనందించే…

  • WikipediaのブラックリストArchive.today、695,000のアーカイブリンクの削除を開始

    物議を醸しているアーカイブ サイトがブログに対する分散型サービス拒否 (DDoS) 攻撃を指示するために使用されたことを受け、英語版ウィキペディアは Archive.today をブラックリストに登録しました。 DDoS を理由に Archive.today を廃止すべきかどうかを議論する過程で、Wikipedia 編集者は、アーカイブ サイトが Web ページのスナップショットを変更して DDoS の標的となったブロガーの名前を挿入していたことを発見しました。この改変は明らかに、Archive.today の管理者が複数のエイリアスで自分の身元を隠した方法を説明した投稿に対するブロガーに対する恨みによって煽られたようです。 「archive.today をただちに非推奨にし、実行可能な限り速やかにスパム ブラックリストに追加し (または新しいリンクの追加をブロックする編集フィルターを作成し)、そこへのすべてのリンクを削除するという合意が得られています」と、今日の Wikipedia の Archive.today ディスカッションの最新情報には記載されています。 「ユーザーのコンピュータを乗っ取ってDDoS攻撃を実行するようなWebサイトにWikipediaが読者を誘導すべきではないという強いコンセンサスがある(WP:ELNO#3を参照)。さらに、archive.todayの運営者がアーカイブされたページのコンテンツを改変し、信頼性を失わせたという証拠も提示されている。」 Archive.today への 695,000 を超えるリンクが、約 400,000 の Wikipedia ページに分散されています。アーカイブ サイトは、ニュース ペイウォールをバイパスするためによく使用されます。彼はFBIを持っています 求めた情報 サイト運営者の身元について、ドメイン登録業者 Tucows への召喚状を提出します。 「現状維持を支持する人たちは、主に検証可能性のための archive.today の有用性に議論を置いた」とウィキペディアの今日の更新には書かれている。 「しかし、既存のリンクの分析により、その用途のほとんどは置き換えられることがわかりました。この RfC (コメント要求) 中に数人の編集者が実装の詳細を検討し始めました。コミュニティは、archive.today へのリンクを効率的に削除する方法を見つけ出す必要があります。」 編集者はリンクを削除するよう要請 この決定の結果として公開されたガイダンスでは、アーカイブ サイトで使用されている次のドメイン名へのリンクを削除および置換するよう編集者に協力するよう求めています: archive.today、archive.is、archive.ph、archive.fo、archive.li、archive.md、および archive.vn。ガイダンスでは、元のソースがまだオンラインであり、内容が同一である場合、編集者は Archive.today のリンクを削除できると記載されています。アーカイブ…

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *