分散システムのためのデザインパターン [単行本]
    • 分散システムのためのデザインパターン [単行本]

    • ¥5,280159 ゴールドポイント(3%還元)
    • お取り寄せ
分散システムのためのデザインパターン [単行本]
画像にマウスを合わせると上部に表示
100000009004129015

分散システムのためのデザインパターン [単行本]



ゴールドポイントカード・プラスのクレジット決済で「書籍」を購入すると合計12%ゴールドポイント還元!合計12%還元書籍の購入はゴールドポイントカード・プラスのクレジット決済がお得です。
通常3%ゴールドポイント還元のところ、後日付与されるクレジット決済ポイント(1%)と特典ポイント(6%)、さらにご利用明細WEBチェックにご登録いただくと2%追加して合計12%ゴールドポイント還元!詳しくはこちら

価格:¥5,280(税込)
ゴールドポイント:159 ゴールドポイント(3%還元)(¥159相当)
お届け日:お取り寄せこの商品は、日時を指定できません。届け先変更]詳しくはこちら
出版社:丸善出版
販売開始日: 2025/08/04
お取り扱い: のお取り扱い商品です。
ご確認事項:返品不可

カテゴリランキング

店舗受け取りが可能です
マルチメディアAkibaマルチメディア梅田マルチメディア博多にて24時間営業時間外でもお受け取りいただけるようになりました

分散システムのためのデザインパターン [単行本] の 商品概要

  • 目次

    第I部 Narratives
    Chapter 1 分散システムの可能性とその課題
    単一サーバーでの限界 / ビジネスのロジックとデータの階層を分離する / データの分割 / 障害の様相/ レプリケーション(多重化):隠ぺい時の障害≪ プロセスクラッシュ / ネットワークの遅延 / プロセスの停止 / 非同期クロック≫ / “分散システム”の定義 / “パターン”によるアプローチ
    Chapter 2 パターンの概要
    単一サーバーにおけるデータの保全 / 更新の競合 / リーダー障害への対処 / 複数の障害に対しては‘世代クロック’による対処が必要 / ログエントリーは‘多数決クォーラム’において承認されるまでコミットされない / ‘ハイウォーターマーク’に基づくフォロワーのコミット / リーダーが複数のクライアントに対応するために一連の待ち行列を利用する / フォロアーが‘読出しリクエスト’を扱うことでリーダーにおける負荷を軽減できる / 大容量データは複数ノードに分割することができる / 耐性を得るためにパーティションの複製を行う / 分割された領域の整合性を保つためには少なくとも2相ロックは不可欠 / 分散システムにおいて順序関係はシステムのタイムスタンプには依存しない / ‘一貫性コア’はデータクラスタにおけるメンバーシップの管理を実施できる / 非中心型のクラスタ管理における‘ゴシップ伝播’

    第II 部 データレプリケーションのパターン
    Chapter 3 書込み先行ログ(Write-Ahead Log)
    解決すべき課題 / 解決策≪実装に際しての検討事項 / トランザクショナル記憶での使用 / イベントの源泉を比較する≫ / 実装例
    Chapter 4 セグメント化ログ(Segmented Log)
    解決すべき課題 / 解決策 / 実装例
    Chapter 5 低位ウォーターマーク(Low-Water Mark)
    解決すべき課題 / 解決策≪スナップショットベースの‘低位ウォーターマーク’/ 時刻ベースの‘低位ウォーターマーク’≫ / 実装例
    Chapter 6 リーダーとフォロワー(Leader and Followers)
    解決すべき課題 / 解決策≪リーダーの選出[選挙アルゴリズム /‘一貫性コア’を使用したリーダー選挙]/ なぜクォーラムリード/ライトだけでは強力な一貫性保証に不十分なのか;並行性,ロック,状態更新;ZabとRaft≫/ 実装例
    Chapter 7 ハートビート(HeartBeat)
    解決すべき課題 / 解決策 ≪小規模クラスタ:同意ベースのシステム / 技術上の検討事項 / 大規模クラスタ:ゴシップベースプロトコル≫/ 実装例
    Chapter 8 多数決クォーラム(Majority Quorum)
    解決すべき課題≪安全性と活性≫ / 解決策≪クラスタ内のサーバー数の決定 / 柔軟なクォーラム≫/ 実装例
    Chapter 9 世代クロック(Generation Clock)
    解決すべき課題 / 解決策 / 実装例
    Chapter 10 ハイウォーターマーク(High-Water Mark)
      解決すべき課題 / 解決策≪ログの切り捨て≫/ 実装例
    Chapter 11 Paxos
    解決すべき課題 / 解決策≪プロトコルの流れ[リクエストは拒否される必要はない / 競合する提案者は選択に失敗する可能性がある]/ キーバリューストアの例[複数のバリューの処理 / バリューの読取り]/ 柔軟な‘Paxos’≫/ 実装例
    Chapter 12 複製ログ(Replicated Log)
    解決すべき課題 / 解決策≪Multi-PaxosとRaft / クライアントリクエストの複製[完全レプリケーション / ログエントリーはログの順序で実行される]/ リーダー選出[前世代からのログエントリー / リーダー選出の例]/ 技術的な考慮事項 / プッシュとプル / 何をログに記載すべきか?[読取りリクエストのためにログをバイパスする];障害の想定≫/ 実装例
    Chapter 13 単一更新待ち行列(Singular Update Queue)
    解決すべき課題 / 解決策≪待ち行列の選択 / チャネルと軽量スレッドの使用 / バックプレッシャー / その他の考慮事項; Java での実装≫/ 実装例
    Chapter 14 リクエスト待機リスト(Request Waiting List)
    解決すべき課題 / 解決策≪長時間保留中のリクエストの期限切れ≫/ 実装例
    Chapter 15 べき等レシーバー(Idempotent Receiver)
    解決すべき課題 / 解決策≪保存されたクライアントリクエストの有効期限 / 登録済みクライアントの削除 / 多くとも1回,少なくとも1回,明確に1回の処理;べき等なリクエストとべき等でないリクエスト≫ / 実装例
    Chapter 16 フォロワーによる読出し(Follower Reads)
    解決すべき課題 / 解決策≪最近傍レプリカの発見 / 切断されているか,または低速のフォロワー / 自分の書込みを読む / 直列実行可能な読込み; 因果整合性≫/ 実装例
    Chapter 17 バージョン管理された値(Versioned Value)
    解決すべき課題 / 解決策≪バージョン管理されたキーの順序 / 複数のバージョンの読取り / MVCC とトランザクション分離 / RocksDB のようなストレージエンジンの使用≫ / 実装例
    Chapter 18 バージョンベクトル(Version Vector)
    解決すべき課題 / 解決策≪‘バージョンベクトル’の比較 / キーバリューストアでの‘バージョンベクトル’の使用[競合の解決〈‘最終書込み勝利’による競合解決〉/ 読取り修復 / 同じクラスタノードでの並行更新の許可〈サーバーIDの代わりにクライアントIDを使用する / ドットつき‘バージョンベクトル’〉];ベクトルクロックとの違い;Cassandra と‘最終書込み勝利’≫/ 実装例

    第III部 データ分割と複製のためのパターン
    Chapter 19 固定パーティション(Fixed Partitions)
    解決すべき課題 / 解決策≪ハッシュ関数の選択 / パーティションのクラスタノードへのマッピング[クラスタメンバーシップの追跡 / クラスタノードへのパーティションの割り当て〈クライアントインターフェース〉/ 新規に追加されたメンバーに対するパーティションの移動 / 実施例]/ 代わりの解決策:ノード数に比例するパーティション[クラスタへ新たなノードを追加する]≫/ 実装例
    Chapter 20 キーレンジの分割(Key-Range Partitions)
    解決すべき課題 / 解決策≪事前定義されたキーレンジ[クライアントインターフェース / バリューの保存]/ 使用例 / レンジの自動分割[パーティションサイズを計算し,中間キーをみつける〈実施例のシナリオ / 負荷ベースの分割〉]≫/ 実施例
    Chapter 21 2相コミット(Two-Phase Commit)
    解決すべき課題 / 解決策≪ロックとトランザクションの分離[デッドロック防止〈競合時のエラー / Wound-Wait / Wait-Die〉]/ コミットとロールバック[べき等処理]/ シナリオの例[原子的(アトミック)な書込み / 競合するトランザクション]・‘バージョン管理された値’の使用[スナップショット分離〈タイムスタンプオラクル〉/‘ハイブリッドクロック’の使用]/‘複製ログ’の使用 / 障害処理[トランザクション・インテント]/ 異種システム間のトランザクション; ‘Paxos’と‘複製ログ’の比較;非直列実行性の分離についての問題点≫/ 実装例

    第IV部 分散時刻に関するパターン
    Chapter 22 Lamport クロック(Lamport Clock)
    解決すべき課題 / 解決策≪因果関係,時間,および事象生起関係 / キーバリューストアの例 / 部分順序関係 / 値を更新する単一のリーダーサーバー≫/ 実装例
    Chapter 23 ハイブリッドクロック(Hybrid Clock)
    解決すべき課題 / 解決策≪‘ハイブリッドクロック’によるマルチバージョンストレージ / タイムスタンプを使用したバリューの読込み / 分散トランザクションへのタイムスタンプの割り当て≫/ 実装例
    Chapter 24 クロックバウンド待機(Clock-Bound Wait)
    解決すべき課題 / 解決策≪読取り再起動 / クロックバウンドAPI の使用[読取り待機]≫/ 実装例

    第V部 クラスタ管理のためのパターン
    Chapter 25 一貫性コア(Consistent Core)
    解決すべき課題 / 解決策≪メタデータストレージ[階層型ストレージのサポート]/ クライアントインタラクションの処理[リーダーをみつける / 重複するリクエストの処理];シリアライズ保障と線形性保証(Linearizability:直列実行性)≫/ 実装例
    Chapter 26 リース(Lease)
    解決すべき課題 / 解決策≪キーバリューストレージ内のキーへの‘リース’の添付 / リーダー障害への対処;ウォールクロックは単調ではない≫/ 実装例
    Chapter 27 状態時計(State Watch)
    解決すべき課題 / 解決策≪クライアント側の実装 / サーバー側の実装[階層型ストレージでの監視]/ 接続障害に対する処理[キーバリューストアからのイベントの派生 / イベント履歴の保存 / マルチバージョンストレージの使用];リアクティブストリームの使用;Kafka におけるプルベース設計≫/ 実装例
    Chapter 28 ゴシップ伝播(Gossip Dissemination)
    解決すべき課題 / 解決策≪不要な状態交換の回避 / ゴシップを送るノードの選択基準 / グループメンバーシップと障害検出 / ノード再起動の処理;疫病,ゴシップとコンピュータ通信;UDPまたはTCP の使用;結果的一貫性≫/ 実装例
    Chapter 29 緊急時リーダー(Emergent Leader)
    解決すべき課題 / 解決策≪既存の全メンバーへのメンバーシップ更新の送信 / シナリオの例 /メンバーシップ更新の欠落への対処 / 障害検出[全員対全員‘ハートビート’の回避 / スプリットブレイン〈スプリットブレインへの対処 / スプリットブレインからの回避〉]/‘リーダーとフォロワー’との比較≫/ 実装例

    第VI部 ノード間の通信に関するパターン
    Chapter 30 単一ソケットチャネル(Single-Socket Channel)
    解決すべき課題 / 解決策 / 実装例
    Chapter 31 リクエストバッチ(Request Batch)
    解決すべき課題 / 解決策≪技術的考慮事項≫/ 実装例
    Chapter 32 リクエストパイプライン(Request Pipeline)
    解決すべき課題 / 解決策 / 実装例
  • 出版社からのコメント

    様々な製品やサービスの内部で何が起こっているのかをよく理解し,説明の行き届いた効果的な選択を行いたい実務専門家にお薦めの書
  • 内容紹介

     さまざまな製品やサービスの内部で何が起こっているのかをよく理解し,説明の行き届いた効果的な選択を行いたい実務専門家にお薦めの書.

     本書の前半では,分散システム設計の重要なトピックをカバー.分散システム設計における課題とその解決策を提示.後半では,詳細なソリューション(解決策)をパターンとして構造化し記載.
     パターンは,レプリケーション,パーティショニング,クラスタ管理,ネットワーク通信の四つのおもなカテゴリに分類.前半の概説の章を読まれた上で,興味や要件に基づいてパターンを探索されたい.

     なお,さまざまな製品で採用されている設計の代替案に関する参考文献を多数提示.また,ほとんどのパターンには,Javaのコードを例示.最小限のJava 言語機能(メソッドとクラスが大部分)を使用しており,たいていのプログラミング言語で利用可能.

    分散システム設計を深く理解し,一般的な問題を解決する方法を学べる書.パターンのアプローチにより実装の側面をわかりやすく説明.

    分散システム設計をより深く理解し,一般的な問題を解決する方法を学ぶことができる書.

    本書の特長:

     ・ 分散システムとは何か,なぜ必要なのかがわかる
     ・ データベース,インメモリデータグリッド,メッセージブローカーなど幅広いシステムの実装を理解できる
     ・ オープンソースのコードベースを自信をもって探索し,パターンやソリューションが実世界のシステムにどのようにマッピングされているかを発見できるようになる

分散システムのためのデザインパターン [単行本] の商品スペック

商品仕様
出版社名:丸善出版
著者名:Unmesh Joshi(著)/藤井 章博(訳)
発行年月日:2025/08
ISBN-10:4621311522
ISBN-13:9784621311523
判型:A5
発売社名:丸善出版
対象:専門
発行形態:単行本
内容:電子通信
言語:日本語
ページ数:458ページ
縦:21cm
横:15cm
他の丸善出版の書籍を探す

    丸善出版 分散システムのためのデザインパターン [単行本] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!