CRDTs:強い最終的な整合性への鍵

2025-09-09
CRDTs:強い最終的な整合性への鍵

CRDTs(Conflict-free Replicated Data Types)は、複数のノードに複製され、独立して編集され、シームレスにマージできるデータ構造です。この記事では、CRDTsが従来の最終的な整合性よりも堅牢なモデルである強い最終的な整合性(SEC)をどのように達成するかを詳しく説明しています。SECは、複数のノードで独立した更新が行われた場合でも、競合が自動的かつ決定的に解決されることを保証し、低レイテンシ、高いフォールトトレランス、オフライン機能を実現します。著者は、CRDTsは強い最終的な整合性システムの基本的な構成要素であり、共同編集やマルチプレイヤーTODOリストをはるかに超え、分散データベースなどにも適用できると主張しています。

続きを読む

NIHは間違った依存関係より安い

2025-07-18
NIHは間違った依存関係より安い

この記事では、ソフトウェアの依存関係が常に有益であるという一般的な仮定に異議を唱えています。著者は、依存関係には学習曲線、メンテナンスのオーバーヘッド、セキュリティリスク、展開の複雑さなど、多大なコストがかかると主張しています。TigerBeetleデータベースを例に、ゼロ依存ポリシーの利点を強調しています。依存関係を評価するためのフレームワークが提案されており、ユビキティ、安定性、深さ、人間工学、堅牢性を含みます。POSIXシステムコール、ECMA-48ターミナル制御コード、Webプラットフォームを使用して、フレームワークの適用方法を示しています。この記事は、開発者に、意思決定を行う前に、依存関係のコストとベネフィットを批判的に評価するよう促しています。

続きを読む
開発

ファイルは俳優になりたいのか? io_uringと計算パラダイムの収束

2025-01-04
ファイルは俳優になりたいのか? io_uringと計算パラダイムの収束

高性能Linuxアプリケーションにおいて、io_uringはOSとのインタラクションに革命を起こしています。提出キューと完了キューを使用することで、システムコールを待つことなく非同期I/Oが可能になります。単に操作をキューに入れ、計算を続行するだけです。これは驚くほどActorモデルを反映しています。オブジェクトはメッセージを送信して並行計算を行います。io_uringでファイルディスクリプタに操作を送信し、非同期的に応答を受け取るプロセスは、これと非常によく似ています。これは、非同期で自律的に動作するOSへの移行を示唆しています。従来のシステムコール方式は、時代遅れの抽象化になっている可能性があります。

続きを読む
開発