A Top-Down Approach to Achieving Performance Predictability in Database Systemsを読んだ時のメモ。 どんなもの? DBのlatencyのバラ付きの主要な原因を特定するためにTprofiler(解析ツール)を作成しバラ付きを少なくした MySQL, Postgres, VoltDBのバラ…
Dapper, a Large-Scale Distributed Systems Tracing Infrastructureを読んだ時のメモ。 どんなもの? 分散トレーシングシステム 分散システムのtraceをする 先行研究とくらべて何がすごい? 設計上の目標 オーバーヘッドが少ない サービスのパフォーマンス…
[In Search of an Understandable Consensus Algorithm(Extended Version)(https://raft.github.io/raft.pdf)を読んだ時のメモ。 どんなもの? わかりやすさを重視して開発された合意アルゴリズム Paxosよりもわかりやすいが、Paxosよりも効率的 先行研究と…
Paxos Made Live - An Engineering Perspectiveを読んだ時のメモ。 どんなもの? Paxosを実際のプロダクト(Chubby)で使用するために行った挑戦とその際に選択したアルゴリズムについて Paxosは論文には1ページの擬似コードで説明されているが、実プロダクト…
Paxos Made Simpleを読んだ時のメモ。 どんなもの? Paxos 分散合意アルゴリズム 複数のプロセスが値を提案した時に、どのように1つの値を選ぶかについて 技術や手法の肝は? The Problem safety requirements 提案された値のみが選ばれる 1つの値のみが選ば…
Kafka: a Distributed Messaging System for Log Processingを読んだ時のメモ。 どんなもの? LinkedInによって開発された分散メッセージングシステム 大容量のログを高スループットで配信、低レイテンシで収集することを目的としている 先行研究とくらべて…
CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Dataを読んだ時のメモ。 どんなもの? 擬似ランダムデータ分散アルゴリズム データの名前に対して偏りが無いようにデータノードを割り当てる central allocatorがいなくても新しいデー…
Session Guarantees for Weakly Consistent Replicated Data を読んだ時のメモ。 どんなもの? weak consistencyのread-any, write-anyの特性を活かしつつも、ある1つのクライアントからは一貫性があるように見えるようにしたもの モバイル端末のユーザはrea…
Time, Clocks, and the Ordering of Events in a Distributed System を読んでいたが、ぼんやりとしか分からなかったので、まず下記の同期の章を読んだ。 分散システム―原理とパラダイム作者: アンドリュー・S.タネンバウム,マールテン・ファンスティーン,An…
Cassandra - A Decentralized Structured Storage Systemを読んだ時のメモ。 どんなもの? 分散ストレージシステム 大規模データを多数の一般的なサーバに分散させることで可用性を高めて、SPOFを無くす ソフトウェア側で可用性とスケーラビリティをコントロ…
MapReduce: Simplified Data Processing on Large Clustersを読んだ時のメモ。 どんなもの? 巨大なデータセットを処理するプログラミングモデル Map key/valueのinputを中間的なkey/valueペアにする Reduce 全ての中間的なvalueを中間的なkeyでまとめる 多…
The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processingを読んだ どんなもの? unbounded で順不同なデータを処理する上で、正確性、latency、costをいい感じに…
The Chubby lock service for loosely-coupled distributed systemsを読んだ。 ロックについての基礎知識が無くて全然わからなかった。 どんなもの? 分散システム用のlock service coarse-grained lock GFS, BigTable, MapReduceが共有リソースへのアクセス…
The Google File System を読んだ。 どんなもの? Googleのサービスの特性に最適化させた、大規模分散システム用のスケーラブルなファイルシステム 廉価で故障しやすいHW上で稼働することを前提とし、耐障害性がある aggregateのパフォーマンスが高い BigTab…
Bigtable: A Distributed Storage System for Structured Data を読んだ時のメモ。 どんなもの? ペタバイト級のデータ、何千台ものサーバまでスケールする大規模分散ストレージ Google Analyics, Google Earth, Web indexing等に使われている 先行研究とく…
Dynamo: Amazon’s Highly Available Key-value Store を読んだのでメモ メモのフォーマットは下記を参考にした。 先端技術とメディア表現1 #FTMA15 from Yoichi Ochiai どんなもの? Dynamoは可用性とスケーラビリティのあるkey-value storage primary key…
概要 統計検定2級 (CBT方式試験) に合格しました。 79/100点でボーダーが60点でした。 Machine Learning | Coursera を受けた後に「統計学について何も知らないので勉強してみよう」と思ったのがきっかけです。 統計検定の勉強自体は2ヶ月ほどで、平日30分~1…
問題文 TopCoder Statistics - Problem Statement 書いた class PeacefulLine: def makeLine(self, x): counter = collections.Counter(x) count_arr = [] for word, cnt in counter.most_common(): count_arr.append(cnt) is_continue = True while is_cont…
問題文 https://apps.topcoder.com/wiki/display/tc/SRM+642 書いた class ForgetfulAddition: def minNumber(self, expression): num = str(expression) res = 0 for i in xrange(1, len(num)): sum_num = int(num[:i]) + int(num[i:]) if res == 0: res = …
問題文 https://apps.topcoder.com/wiki/display/tc/SRM+639 書いた class ElectronicPetEasy: def isDifficult(self, st1, p1, t1, st2, p2, t2): first = [] for i in xrange(t1): first.append(st1+(p1*i)) second = [] for i in xrange(t2): second.appe…
問題文 https://community.topcoder.com/stat?c=problem_statement&pm=13521 書いた class NamingConvention: def toCamelCase(self, variableName): while variableName.count('_') > 0: replace_char_index = variableName.index('_') variableName = vari…
問題文 Limak has found a large field with some piles of stones. Limak likes perfection. It would make him happy if every pile had the same number of stones. He is now going to move some stones between the piles to make them all equal. Howe…
Problem Statement We call a pair of Strings (s, t) "wood" if t is contained in s as a subsequence. (See Notes for a formal definition.) Given Strings s and t, return the String "Yep, it's wood." (quotes for clarity) if the pair (s, t) is w…
症状 oh-my-zshを入れたあとに、vim でTabを使ってファイル名を保管しようとすると_vim_files: function definition file not foundというエラーがでる。 解決方法 # 下記のファイルのあとに自分のMacの名前が付いていることがあるので、ls -la等のコマンド…
jashkenas/underscoreの_.matcherを読んだ。 概要 _.matcher(attrs) 引数の「key : val」と同じものがあるかを判別する部分適用した関数を返す。 var matcher = _.matcher({age: 20, sex: "male"}); console.log(matcher({age: 20, sex: "male", country: "J…
jashkenas/underscoreの_.omitを読んだ。 概要 _.omit(object, *keys) 第1引数から第2引数以降で指定したkey値以外のkey値とその値で構成されたObjectを返す。 var x = _.omit( {age: 20, sex: "male", country: "JP", name: "HOGA"}, ['age', 'sex']); cons…
jashkenas/underscoreの_.pickを読んだ。 概要 _.pick(object, *keys) 第一引数から第2引数以降で指定したkey値とその値で構成されたObjectを返す。 var x = _.pick({age: 20, sex: "male", country: "JP", name: "HOGA"}, 'age', 'country'); console.log(x…
Atom -> 個人設定 -> Keybindings -> “your keycap file” で下記を追記すればOK。 # 現在開いているファイルをTreeViewで指定する '.platform-darwin': 'cmd-shift-j': 'tree-view:reveal-active-file'
jashkenas/underscoreの_.extendと_.extendOwnを読んだ。 概要 _.extend(destination, *sources) _.extendOwn(destination, *sources) extend: sourcesに含まれている全てのプロパティ(プロトタイプを含む。)をdestinationにコピーしたものを返す extendOw…
jashkenas/underscoreの_.mapObjectを読んだ。 概要 _.mapObject(object, iteratee, [context]) objectの各値に第2引数で指定した関数を適用した第1引数を返す。.mapは値の配列を返すが、.mapObjectはオブジェクトを返す。 _.mapObject({age: 20, score: 50}…