2
1

More than 5 years have passed since last update.

QCon2014: So-net Logicad, Gree Glossom

Last updated at Posted at 2014-05-01

QCon Tokyo 2014
QCon2014 My Report Top

Detail Report#5/8

ビッグデータのリアルタイム応用:ユーザー事例

安田 崇浩:ソネット・メディア・ネットワークス株式会社
技術・開発部 開発リーダー
月間600億件を処理するリアルタイム広告 Logicad

田中 聡:Glossom株式会社
アドプラットフォーム事業部開発グループ1 Blossomチーム

田村 俊明:Aerospike, Inc.
nCountry Manager, Japan

はじめに

  • いままでは金融(Enterprise)→他業種
  • 現在 Ad -> Enterprise にひろがっている仕組みが多くなっている

RTB (Real Time Bidding)

  • 広告主が入札して、表示される
  • だいたい150ms - 180ms ですべての処理が終わる
  • データアクセスは、3ms 以下で終わらす

Sonet 安田さん Logicad

(logicadの仕組みの説明はぜひ下記のSlideShareをご参照!)
http://www.slideshare.net/yasuda/logicad

広告配信規模

  • 600億http request / 月
  • 1か月 UU 1億UU
  • Log 10TB

request 規模

  • 24000 req / sec
  • ピークは夜間 平均の倍

50000 req/sec を処理するとは、

  • 4msec / req で処理できたとしても
  • 250 req/sec 1 core 1coreではこれだけ
  • CPU 200 core トータルで必要
  • 1 server cpu 16 core のっていたとして
  • 12.5 X 50%余剰  25台あれば処理できる

Little's law リトルの法則

  • 待ち行列理論
  • 到着率 A: 50000
  • 顧客が費やす時間W : 4msec
  • 顧客数 L = A W : 200 core, 25 server

  • 処理時間が非常に重要(4->8 msec にふえると コストが倍)

Amdahl's Law アムダールの法則

  • 複数のプロセッサを使い並列計算するばあい逐次処理がある場合あしかせになる
  • 例えば5% 逐次処理がのこっていると20倍以上には高速化しない

50000 HTTP Req/sec

  • 通常のLBを使うとどうしても100 micro 秒単位で処理がかかる
  • やり取り先が、SSP(固定 IP )ということもある
  • AWS Route 53 weighted round robin のほうがはやい

DB traffic

IOPS

1 HTTP requestごとに2回のRead処理が必要
100,000 read / sec

  • HDD IOPS: 200 IOPS -> 500 HDD
  • SSD IOPS:20000 IOPS -> 5 SSD
  • Memory : 1000000 IOPS

Cost

  • Memory : 8 USD/GB 8000 USD
  • SSD 0.5USD/GB 500USD

Distributed Hashtable(分散ハッシュ)

  • KVS Sharding 時に、キーによってアクセス先のサーバーが決まる
  • どこかに問い合わせる必要がない
  • 0.2 ミリ秒でread している

結論:Aerospike を SSD KVS のために使っている

まとめ

  • Little, Amdahls's law
  • Latency を低く: 最新CPU, SSD, less GC
  • 直列の部分を少なく: DNS RR, DHT, Message, Ques
  • 並列性によって
  • キャパシティを確保

田中さん : Glossom

経歴:
Yahoo -> Gree -> Glossom (DSP配信エンジン)

About Glossom

  • 2013 11 月 インターネット広告会社
  • AD Network

システム

下記の3機能のトライアングル

配信

  • 広告閲覧者

集計

  • 広告主

入稿ツール

  • Analyst

レポートデータ

広告配信システムに求められる

  • 高速レスポンス * きめ細やかな 属性配信
  • Re-targeting
  • Behavior targeting
  • Frequency control

柔軟性確保のため、LUAを使用

言語をまたいだ関数呼び出し

  • C/C->LUA
  • LUA->C/C++

配信サーバーの実装ポリシー

配信フレームワークをC/C++

  • リクエストのParse/Validation
  • User情報の取得
  • Log出力

細かいところをLuaで

  • 案件データ中のターゲッティング条件を 値ではなくLUAの式をいれる

メリット

  • 配信フレームワークに修正をいれない
  • LUA式を書き換えることで色々柔軟な配信が可能
  • 実装導入スピードが上がる
  • Stored procedureとしてLuaも使える

デメリット

  • 複雑度
  • C++でそのまま実装するよりは工数がかかる

LUA導入事例

広告のこまかい条件指定 

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1