Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)Evan Chan
?
This was a talk that Kelvin Chu and I just gave at the SF Bay Area Spark Meetup 5/14 at Palantir Technologies.
We discussed the Spark Job Server (http://github.com/ooyala/spark-jobserver), its history, example workflows, architecture, and exciting future plans to provide HA spark job contexts.
We also discussed the use case of the job server at Ooyala to facilitate fast query jobs using shared RDD and a shared job context, and how we integrate with Apache Cassandra.
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés RianchoCODE BLUE
?
この講演では、難解なWebアプリケーションの脆弱性を詳しく見せる。これらの脆弱性は多くのセキュリティ?コンサルタントの簡易な脆弱性診断では見逃される可能性があり、リモートコード実行、認証バイパスや、実際にお金を支払うことなくPayPal経由でお店の商品を購入されてしまうことに繋がる。
SQLインジェクションは廃れたが、私は気にしない。null、nil、NULLの世界や、noSQLインジェクション、通話音声傍受に繋がるHostヘッダ?インジェクション、PayPalの二重支払い、RailsのMessage Verifierのリモートコード実行の世界を探検しようではないか。
--- アンドレス?リアンチョ Andres Riancho
アンドレス?リアンチョはアプリケーション?セキュリティの専門家であり、現在はコミュニティを前提としたオープン?ソースのw3afプロジェクトを率いていて、世界中の企業に徹底的なWebアプリケーション侵入テストサービスを提供している。
研究の分野では、3comやISSからのIPS装置に対し重大な脆弱性を発見していて、元雇用者のひとりが行ったSAP研究に貢献し、何百ものWebアプリケーションに対して脆弱性を報告している。
彼が注力しているものは常に、Webアプリケーションのセキュリティ分野である。それは彼が開発したw3afであり、侵入テスターやセキュリティ?コンサルタントたちに幅広く使われるWebアプリケーション攻撃、Auditフレームワークだ。アンドレスは、BlackHat(米国と欧州)、SEC-T(スウェーデン)、DeepSec(オーストリア)、OWASP World C0n(米国)、CanSecWest(カナダ)、PacSecWest(日本)、T2(フィンランド)、Ekoparty(ブエノスアイレス)など、世界中の多くのセキュリティ会議において講演をし、トレーニングの場を設けてきた。
アンドレスは、自動Webアプリケーション脆弱性の検知と開発を更に研究するため、2009年にWebセキュリティに特化したコンサルタント会社Bonsai Information Securityを設立している。
The document outlines the divisions and focus areas of a large company, with most resources allocated to technology R&D, including deep learning and CNN. Other divisions include infrastructure, promotions, UI design, SEO, big data, IT, recruiting, staffing services, and administration.
3. 目次
? API
o ドキュメントバリデーション
o 部分的インデックス
o 新しいCRUD
o アグリゲーションフレームワークの改良
? 高可用构成
o プライマリ選出高速化
o 設定サーバ群がレプリカセットに
o Read Concern
? ストレージ
o デフォルトがWiredTigerに
? 运用
8. 部分的インデックス
? ドキュメントの中のある値の条件よって、
そのドキュメントをインデックスに含めるかどうかを分けれる
? 例
o Scoreにある80点以上ドキュメントだけをインデックスに含める
o db.scores.createIndex({"score":1},
{partialFilterExpression: {score:{$gt:80}}})
? 条件の指定
o キーの存在
o 値そのもの
o 値の存在
o 値の型
? 使いドコロ
o インデックスツリーそのものの大きさが減ることにより
? インデックスサイズの削減
? インデックス探索の高速化
19. ? データロストが発生する壊れ方
Read Concern
アプリ1
プライマリ
A B C
セカンダリ
A B C
セカンダリ
A B
書き
セカンダリ セカンダリ
A B A B
C
①↑まだ同期できていない↑
②↓ここでネットワークが分断される
アプリ2
セカンダリ
A B C
セカンダリ
A B C
プライマリ
A B
書き
セカンダリ セカンダリ
A B A BD
D
③レプリカの過半数が見え
ないためセカンダリに降格↓
D D
セカンダリ
A B
C
セカンダリ
A B
C
プライマリ
A B
セカンダリ セカンダリ
A B A BD D DDD
④Cをロスト
21. mongod
デフォルトがMMAPv1からWiredTigerに
? Version 2.x
o 名無しのストレージ(MMAPベース)
? Version 3.0
o MMAPv1 ? デフォルト
o WiredTiger ? オプション
? Version 3.2
o MMAPv1 ? オプション
o WiredTiger ? デフォルト
MMAPv1
ストレージAPI
参考) http://www.slideshare.net/NorbertoLeite/mongodb-wiredtiger-internals
セキュリティ
MongoDBクエリ言語エンジン
WiredTiger
アプリケーション
MonogDBドライバ
管理
MMAP用
データ
ファイル
WiredTiger用
データファイル
MMAP用
データ
ファイル
WiredTiger用
データファイル
22. デフォルトがMMAPv1からWiredTigerに
? MMAPv1とは
o MongoDB 3.0のデフォルト
o ディスクにあるファイルをそのままメモリに乗せる
o OSがキャッシュするデータを決める
? LRUのアルゴリズムでページアウトさせる
? 最も頻度が高いメモリのページが残る
o つまり、「手抜き」のストレージ
D
E
F
ディスク
メモリ
C
B
A
B
D mongod
プロセス
OSにメモリに
乗せてもらう
E
23. デフォルトがMMAPv1からWiredTigerに
? MMAPv1における更新=in place(その場)
ディスク
メモリ
{ name : "abe",
age : 20 }
doc1 doc2 doc3
{ name : "abe",
age : 20 }
ディスク
メモリ
{ name : "abe",
age : 20 }
doc1 doc2 doc3
{ name : "abe",
age : 21 }
ディスク
メモリ
doc1 doc2 doc3
{ name : "abe",
age : 21 }
1.メモリに乗せる
2.更新する(アプリに応答)
3.非同期でディスクに書き戻す
{ name : "abe",
age : 21 }
クエリスレッド
クエリスレッド
同期スレッド
注意)ジャーナルを使っていないときの動き
24. デフォルトがMMAPv1からWiredTigerに
? MMAPv1の問題点
o 書き込むときにロックを取る必要がある
? 読み取りがブロックされ、システムのスループットは低下
? コレクション全体のロック(ver 2.xではデータベースロック)
o メモリ使用量を制御できない(OSまかせ)
? OSは空いているだけ使う
o 物理的に収まりきらない場合は、ディスク上で再配置が起こる
? 非常に重い処理
? 物理的にデータの穴が開き、フラグメンテーション発生。
ディスク
メモリ
doc1 doc2 doc3
{ name : "abe",
age : 20, id:123456}
{ name : "abe",
age : 20, id:123456}入らない!
27. デフォルトがMMAPv1からWiredTigerに
? WiredTigerの更新の特徴
o 書き込みは1ドキュメントを追記するだけ
o 読み取りは書き込みを待たない
o ディスクに書き戻される時にディスク上の物理配置を都度調整するた
め、フラグメンテーションは発生しない
? その他ポイント
o ジャーナルを有効にすると、追記書き込みをディスクに永続化できる
? チェックポイントの間にクラッシュしてもデータロストなし
o インデックスとデータファイルはWiredTigerのトランザクション機能を
使って同時に更新される
o 複数ドキュメントを跨いだトランザクションは提供されない
28. その他ストレージ
? インメモリ
o ディスクIOを行わないインメモリストレージエンジンinMemoryが選べる
ようになった
o 有償のEnterprise版のみ
o ベータ版
? 暗号化対応のWiredTiger
o WiredTigerを暗号化できる
o HIPAA, PCI-DSS, FERPAといったセキュリティの標準化に準拠してい
ます
o 有償のEnterprise版のみ
? テスト用エフェメラル
o テストで毎回データをクリアしなくてよい、テスト用のストレージエンジ
ンephemeralForTestが選べる
o ベータ版です。
30. 运用の改善
? mongodumpとmongorestoreの改良
o 圧縮に対応
o リモートのmongodに対してdumpしたデータをストリームで
転送しrestoreすることができる
? 診断用データ
o デフォルトで1秒ごとに診断用データ(Diagnostic Data)がと
られるようになった。
o データはデータフォルダにファイルとして出力される。