1 ポイント 投稿者 GN⁺ 2025-03-15 | 1件のコメント | WhatsAppで共有

IOデバイスとレイテンシ

  • 不揮発性ストレージは現代のコンピュータシステムの中核要素であり、電源が切れてもデータを保存できる。CPUレジスタ、CPUキャッシュ、RAMのような揮発性ストレージとは異なり、継続的な電力を必要としない。

テープストレージ

  • 1950年代から、コンピュータは不揮発性デジタルストレージのためにテープドライブを使用してきた。テープは長いシーケンスのデータを保存するのに適しており、大量のデータを安全に保存する必要がある一方で、頻繁に読み出す必要がない状況に向いている。
  • テープは低コストと長寿命を提供し、CERNやAWSのような大規模データストアでも今なお使用されている。

ハードディスクドライブ(HDD)

  • ハードディスクドライブはテープと比べてより高速なデータアクセスを提供し、円形の金属ディスクにデータを保存する。ディスクの表面全体を常に利用できるため、データの読み書きのレイテンシが低減される。
  • HDDはコマンドキューイングをサポートしており、複数のコマンドを並列に実行できる。

ソリッドステートドライブ(SSD)

  • ソリッドステートドライブは機械的な部品なしで電子的にデータを読み書きし、NANDフラッシュを使って不揮発性ストレージを提供する。
  • SSDは並列処理とガベージコレクションを通じて性能を最適化できる。データの配置が性能に影響することがある。

クラウドでのストレージ

  • クラウドへの移行はIO性能に変化をもたらし、多くの企業がサーバーやデータベースシステムをクラウドへ移している。
  • クラウド環境ではストレージとコンピューティングの分離が一般的であり、これはデータの安全性と柔軟性を提供する一方で、性能低下を招く可能性がある。

ストレージとコンピューティングの分離

  • 従来はサーバーに不揮発性ストレージを直接接続して利用していたが、クラウドではネットワーク経由でストレージを接続する方式が一般的である。
  • ネットワーク接続ストレージはデータの安全性を提供する一方で、IO性能に悪影響を及ぼす可能性がある。

ローカル vs ネットワークストレージ

  • ローカルNVMe SSDは非常に高速なIO速度を提供し、ネットワーク接続ストレージと比べてレイテンシが小さい。
  • ネットワーク接続ストレージではIO処理に制限がある場合があり、これが性能低下につながる可能性がある。

解決策: Metal

  • MetalはPlanetScaleが提供するソリューションで、直接接続されたNVMe SSDドライブを使用して優れた性能と拡張性を提供する。
  • Metalクラスターは基本的にプライマリサーバー1台とレプリカ2台で構成され、データの耐久性を保証しつつ、ストレージ容量を容易に拡張できる。
  • MetalデータベースではIO処理に人為的な制限がなく、最小限のレイテンシでIO処理を実行できる。

1件のコメント

 
GN⁺ 2025-03-15
Hacker Newsのコメント
  • ブログ執筆者が、この記事を書きながらとても楽しんでいたことに触れている。数千行のJavaScriptを使ってインタラクティブなビジュアルを作っていた
  • SQLite+NVMeを長らく支持してきたと述べている。これは新しいパターンであり、水平スケーリングなしでも問題を解決できる可能性をもたらす
    • 性能問題ではレイテンシが最も重要である
    • とりわけ順次処理しなければならない場合にはさらに重要である
    • NVMe上でSQLiteを動かすと、他のプロバイダーでは提供できないレイテンシ面の利点が得られる
    • 実際のユースケースの大半では、メモリ実行はNVMeの永続性に比べてそれほど大きな利点をもたらさない
  • 製品宣伝であることを忘れるほど情報量が豊富だったと称賛している。素晴らしいビジュアルとインタラクティブ性にも言及している
  • ディスクIOのアニメーションを見てMelvin Kayeを思い出した
    • Melは時間遅延ループを書かなかった
    • Flexowriterが出力文字の間に遅延を必要とするときも同様だった
    • ドラム上に命令を配置し、必要になるたびに読み取りヘッドの直後に来るようにしていた
    • ドラムは次の命令を見つけるために完全に1回転しなければならなかった
  • ブログは良かったと述べ、一般的にクラウドストレージが「異常に遅い」と指摘している
    • 最近、S3/オブジェクトストレージに増分インデックスを保存するサポートを追加したと述べている
    • NVMeを長く使ってきた理由は、以前の記事で述べた性能上の利点によるものだとしている
    • より良い提供でこの分野を変革する誰かが現れてほしいと述べている
  • 分散ストレージについて、この記事では十分に扱われていない点があると指摘している
    • 一部のシステムは基本的にレプリケーションをサポートしていない
    • CassandraクラスターやMySQLではマスター・スレーブレプリケーションができるが、多くのシステムではそうではない
    • クラウドでNVMeストレージを使う際には、メンテナンス間隔やクラウド起因のドレインを尊重する必要がある
    • ストレージをコンピュートから分離すれば、クラウド事業者は必要に応じてコンピュートを移動できる
    • データがコンピュートから独立しているため、クラウド事業者はデータシステムとドレインを管理できる
  • Metalはとても魅力的に見える。前職でGCPのインスタンスローカルSSDを使おうとした際、深刻な信頼性問題があったと述べている
    • デバイスのブロックがデータを失う問題があった
    • この状況が改善されたのか気にしている
    • 使用しているマシンタイプを尋ねている
    • 解決策としてDiscordのネットワークディスクを使う方法に触れている
  • PlanetScale Metalは非常に堅牢に見える。リリースでレイテンシが大きく低下するのを見るのはいつも興味深い
  • とても素晴らしい記事だ。ランダム書き込みの可視化が非常によくできている
    • クラウドでネットワーク接続ストレージを使う際のもう1つの問題はIOPS制限である
    • AWSやGoogle Cloudを含む多くのクラウドプロバイダーがこのモデルを採用しており、送信できるIO操作量を制限している
    • ストレージがコンピュートインスタンスに直接接続されていれば、IO操作に人為的な制限はない
    • ハードウェアが許す限り高速に読み書きできる
    • 「IOPS」制限が特定のネットワークトラフィックへの制限なのか気にしている
    • EBSボリュームのネットワークトラフィックを意味するのか尋ねている
    • コスト削減が可能なのか、AWSの奇妙なアービトラージによるものなのか、それともEBSネットワーキングを減らすことで効率性を得ているのか気にしている
    • ストレージとコンピュートを同じマシンに置くことが、レイテンシの面で有利であることは明らかだと見ている
    • コストあたりのスループットの面でも利点があるのか気にしている
  • 「サーバーレス」データベースプロバイダーがどのように「低レイテンシ」アクセスを宣伝しているのか気にしている
    • S3のようなオブジェクトストレージを使っており、これはネットワークストレージよりレイテンシがはるかに悪いはずだと考えている
    • キャッシュレイヤーを構築しており、ローカル接続のNVMeにデータを保持すると述べている