Coda

論文メモ Spanner: Google's Globally Distributed Database

November 27, 2020

Spannerは、世界中のデータセンタにデータを複製する高可用な分散データベースで、外部整合性のある分散トランザクションを保証する。 ユーザからみると半リレーショナルなデータモデルのデータベースであり、各テーブルに一つ以上の順序つき主キーが必要なところがリレーショナルデータモデルと違う。 一方、内部は文字列とタイムスタンプの組をキーにしたキーバリューストアであり、Single Paxos状態機械でデータの一貫性を守りながら複数のデータセンタにデータを複製する。

Read more

論文メモ A Relational Model of Data for Large Shared Data Banks

November 21, 2020

Coddがリレーショナルデータモデルを提唱した70年の論文。 データをリレーション(SQLでのテーブル)として束ね、リレーションを順序なしのタプル(SQLの行)で構成する。

Read more

論文メモ On Designing and Deploying Internet-Scale Services

November 20, 2020

MSNとWindows Liveで培われたシステム管理者による運用負担を減らすためのベストプラクティス集。 07年に発表された。 プラクティス集は、10のグループに分かれ、それぞれ複数のアドバイスからなる。 特徴的な内容に絞って以下に要約する。

Read more

論文メモ Weighted Voting for Replicated Data

November 19, 2020

1979年に発表されたレプリケーション管理のクオーラムモデルのアルゴリズムの論文で、以前紹介したようにAmazon AuroraDynamoで採用されている。 ファイルの読み込みや書き込みのトランザクションは、複製されたファイルのもつ票を集め、所定の数、クオーラムを越えたときのみ実行される。 これにより、読み込み、書き込みの線形の一貫性が保証され、実行中のトランザクションが高々一つであるかのように見せかけられる。

Read more

論文メモ Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases

November 13, 2020

AWSで提供されるRDBM, Amazon Auroraのアーキテクチャを解説した論文。 分散システムをクラウドにおく場合、計算やIOはノードに分散され、ボトルネックではなくなる。 そして、ボトルネックは、DBインスタンスとストレージ間のネットワークになる。 この仮説もと、プライマリインスタンスが、別テナントのストレージに直接Redoログを送ることで、レプリカインスタンスとストレージ間の負荷を減らし、処理性能の向上をはかる。 また、レプリケーションのために、MySQLがRedoログだけでなくバイナリログなど複数種類のログをスレーブに送るのに対し、AuroraはRedoログだけを転送する。 これにより、リカバリや縮退、フェールオーバの性能も向上している。

Read more

論文メモ "One Size Fits All": An Idea Whose Time Has Come and Gone

November 13, 2020

2011年に発表された論文で、これまでのようにDBMSを様々なデータ中心のアプリケーションに利用することがデータベース市場で受け入れられなくなったと主張する。 データウェアハウスとストリーミング処理を例にとり、これらに特化したデータベースをDBMSで代用することの限界が説明されている。 表題の”One Size Fits All”はフリーサイズ、転じて、万能、汎用的を意味する。

Read more

論文メモ Dynamo: Amazon's Highly Available Key-value Store

November 6, 2020

Amazonで社内運用されている高可用性のKVS, Dynamoのアーキテクチャを解説している。 まぎらわしいが、Dynamoは、AWSサービスのDynamo DBとは違う*。 Dynamoは、リーダーレスレプリケーションモデルで、Dynamo DBはシングルリーダレプリケーションモデルを採用している。 Dynamoは、高信頼性が必要なシステムの状態管理に使用される。 その用途から、トランザクション分離レベルのサポートは不要で、可用性を優先するために結果整合性を許容する。

Read more

論文メモ Zero-shot Word Sense Disambiguation using Sense Definition Embeddings

October 30, 2020

語義曖昧性解消のためのアーキテクチャ, Extended WSD Incorporating Sense Embeddings(EWISE)を発表した。 EWISEは単語の意味をアノテーションしあテキストと辞書を教師データにもちいる。 実験では、辞書にWordNetをつかい、概念同士の上下関係や関係を示す分散表現を獲得する。 学習であたえられていない意味を推定するために、離散値ではなく分散表現でラベルの意味を表現する。

Read more

論文メモ Simple Testing Can Prevent Most Critical Failures

October 29, 2020

5つの分散システムのバグのうち198件を無作為に抽出、調査したところ、エラーハンドリングに対する単純なテストが有効であることが分かった。 198件のうちの48件は、論文でcatastrophic failuresと形容された、多くのユーザに影響を与える障害が占めた。 調査対象は、Cassandra, HBase, HDFS, Hadoop MapReduce, Redisの5つである。 catastrophic failuresの35%の原因は、エラーハンドラがログの出力だけしかしていない、過剰に上位の例外クラスが宣言されたcatch構文で例外を処理していること、例外にFIXME, TODOコメントがある、の3パターンに分類された。 Javaのバイトコードから以上の3パターンを検出するツールを実装し、9種類の分散システムに適用したことで、121件の未知のバグを特定することができた。

Read more

論文メモ From Diversity by Numbers to Diversity as Process

October 16, 2020

開発におけるブレーンストーミングが、マイノリティに属する開発者の満足度の向上に貢献することを実験的に示した。 ここでの開発は、ハッカソンのような短時間かつ集中が求められるものが想定されている。 満足度は、開発プロセスと成果物に対するもので分けて扱われ、どちらの観点でもブレーンストーミングは満足度に対してよい効果をもたらした。 論文をこちらからダウンロードできます。
Read more