You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
This is an introductory course in Distributed Systems. Distributed systems is the study of how to build a computer system where the state of the program is divided over more than one machine (or "node"). This course is in active development. At the moment, it consists of a series of short videos. The intention is to create a complete set of video lectures and then add additional content (such as m
· Information · Schedule · Submissions · Labs: 1 2 3 4 5 · Questions · Past Exams · 2023 Web Site · 2022 Web Site · 2021 Web Site · 2020 Web Site · 2018 Web Site · 2017 Web Site · 2016 Web Site · 2015 Web Site · 2014 Web Site · 2013 Web Site · 2012 Web Site · 2011 Web Site · 2010 Web Site · 2009 Web Site · 2007 Web Site · 2006 Web Site · 2005 Web Site · 2004 Web Site · 2002 Web Site · 2001 Web Sit
状態(state)を話題にする場合、その多くはサービスの状態や、ステートレスが望ましい理由といったことが多いのですが、サービスを管理するプラットフォーム自体にも状態は必要です。信頼性の高いサービスオーケストレーションの実行、分散型のシングルトン、時間的スケジューリング(cronジョブ)、冪等性、ステートフルなエラーリカバリ、キャッシュなどを行なうには、状態が必要になります。ここで挙げたすべての機能が、内部的に状態を持つことに依存しているのです。状態管理の実際はこの記事の範囲ではありませんが、状態に依存する分散プリミティブやその抽象化は関心の範囲内にあります。 バインディング 分散システムのコンポーネントは相互の通信が必要なだけではなく、最新の外部システム、あるいはレガシな外部システムとのインテグレーションも必要です。そのためには、さまざまなプロトコルを変換し、ポーリングやイベント駆動、リク
Rayとは RayはPythonにおける分散並列処理を高速かつシンプルに書けるフレームワークで, 既存のコードを並列化することも容易な設計となっています. Rayを使うことでmultiprocessingなどに比べ簡単にプロセスレベルの並列処理を記述することができます. 本記事はRayチュートリアルの内容をもとにしており, コードはPython 3.8.2, Ray 0.8.4での動作を確認しています. インストール ターミナルでpipなどからインストールできます. 使い方 基本的な用途としては覚える文法はray.init ray.remote ray.get の3つのみで, この記事では加えてray.wait ray.put も紹介します. Rayによる並列化の基本 実行に3秒かかる関数 func が二度呼び出され全体の実行に6秒かかる以下のコードについて, func の実行を並列化する
TL;DR; Amazon AuroraはIn-Memory DBでもなくDisk-Oriented DBでもなく、In-KVS DBとでも呼ぶべき新地平に立っている。 その斬新さたるやマスターのメインメモリはキャッシュでありながらWrite-BackでもなくWrite-Throughでもないという驚天動地。 ついでに従来のチェックポイント処理も不要になったのでスループットも向上した。 詳細が気になる人はこの記事をチェキ! Amazon AuroraはAWSの中で利用可能なマネージド(=運用をAWSが面倒見てくれる)なデータベースサービス。 ユーザーからはただのMySQL、もしくはPostgreSQLとして扱う事ができるのでそれらに依存する既存のアプリケーション資産をそのまま利用する事ができて、落ちたら再起動したりセキュリティパッチをダウンタイムなしで(!?)適用したりなどなどセールストー
↓↓↓↓訂正あります。↓↓↓↓ 2018/07/02に株式会社エフコード社内で行われた勉強会のスライドです。 訂正版(随時更新中): https://docs.google.com/presentation/d/15HOMfAbtdWwO48njcB8IdkN3kVAMu3wsmZo0O3S-f_4/edit?usp=sharing 専門家による資料・専門家向けの資料ではありません。自分自身で学習し、論文・文献等を読解してまとめた内容となります。間違い等あるかもしれませんが、あれば是非コメント頂ければと思います。 【訂正事項】 スライド16: 誤:たった一つのプロセスが故障しただけでも有限時間で合意できない 正:たった一つのプロセスが故障しうるだけでも有限時間で合意できない スライド20: 誤: 重要: あるschedule σ1, σ2 がdisjoint (nodeが被ってない) なら
詳細については後述しますが、MapReduceの処理モデルは、上記の通り各区分ごとにそれぞれ単純化(限定)されたモデルであったと言えます。 また、MapReduceの関数プログラミングおよびグラフ的な特徴も合わせて以下に整理してみます。 関数プログラミング的な特徴 MapおよびReduceフェーズは、それぞれ関数型プログラミングのMapおよびReduce処理をモデル化したものです。MapReduceは、参照透過性がある純粋な関数処理と言えます。参照透過性とは入力により出力が一意に決まる性質のことです。言い換えればMapReduceの処理は、大域などの処理に影響する外部の環境は持たず、内部的にも静的な一時変数などの状態も持たないことを意味します。 純粋な関数処理は複数の処理が同時に実行されても他の並列に動作している処理の状態には左右されないため、この参照透過性は並列化に向いている性質がありま
RedisやMemcachedといったインメモリデータベースは非常に高速にレスポンスを返してくれるデータストアですが、それ単体ではスケーラビリティや可用性などに限界があります。 The Netflix Tech Blog: Introducing Dynomite - Making Non-Distributed Databases, Distributed Netflixがオープンソースで公開した「Dynomite」(ダイナマイトとは綴りが違うのに注意)は、こうしたデータストアを分散データベース化し、高速なデータストアの特長を活かしつつ高いスケーラビリティや可用性を実現するためのソフトウェアです。 アプリケーション側でシャーディングのような面倒なデータ構造を設定することなく、RedisやMemcachedをノードとし、CassandraやAmazonクラウドのDynamoDBのような大規
5月に開催されたBacon Conferenceで,bitlyのアプリケーション開発リーダのSean O’Connor氏は,毎月600億クリックを処理する分散システムの開発を通じてbitlyの開発者たちが学んだ,最も価値ある教訓について説明した。 分散システムとは何か? 分散システムを定義する3大特性は,氏によれば,Wikipediaで簡単に見付けることができる。 コンポーネントノードの真の並行性。これによってノード間の同調に関連するコストと複雑性が発生する。 共通クロックの不在。このため,異なるノードで発生したイベントを時間順に並べることは不可能になる。 障害の独立性。これはノード障害がシステム内の他のノードに影響を与えない,という能力として理解されるべきだ。 従って分散システムの構築では,これらの特性を扱うことを目標にする必要がある。 ただし氏の意見として,システムの分散的特性に起因す
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く