Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【VAアカデミア用】パーソナライズされたコンテンツ配信のための低遅延分散KVSの構築
Search
bootjp / ぶーと
May 22, 2020
Research
0
14
【VAアカデミア用】パーソナライズされたコンテンツ配信のための低遅延分散KVSの構築
bootjp / ぶーと
May 22, 2020
Tweet
Share
More Decks by bootjp / ぶーと
See All by bootjp / ぶーと
パーソナライズされたコンテンツ配信のための低遅延分散KVSの構築 VRChat ver / Building-a-low-latency-distributed-KVS-for-personalized-content-delivery-VRChat-ver
bootjp
1
56
Raftとは? 仕組みから考える得意なこと苦手なこと/What is Raft? Strengths and Weaknesses Based on Its Mechanism
bootjp
7
3.2k
Spannerはなぜ原子時計が必要だったのか?/あるいはSpanner Cloneはなぜ不要にできたのか? / Why did Spanner need an atomic clock? Or Why could Spanner Clone not be needed?
bootjp
1
69
Other Decks in Research
See All in Research
Weekly AI Agents News! 11月号 プロダクト/ニュースのアーカイブ
masatoto
0
310
大規模言語モデルを用いたニュースデータのセンチメント判定モデルの開発および実体経済センチメントインデックスの構成
nomamist
1
130
医療支援AI開発における臨床と情報学の連携を円滑に進めるために
moda0
0
150
ソフトウェア研究における脅威モデリング
laysakura
0
1.7k
VisFocus: Prompt-Guided Vision Encoders for OCR-Free Dense Document Understanding
sansan_randd
1
470
[ECCV2024読み会] 衛星画像からの地上画像生成
elith
1
1.1k
Weekly AI Agents News!
masatoto
31
55k
PhD Defence: Considering Temporal and Contextual Information for Lexical Semantic Change Detection
a1da4
0
130
2038年問題が思ったよりヤバい。検出ツールを作って脅威性評価してみた論文 | Kansai Open Forum 2024
ran350
8
3.9k
DeepSeek-R1の論文から読み解く背景技術
personabb
3
350
【NLPコロキウム】Stepwise Alignment for Constrained Language Model Policy Optimization (NeurIPS 2024)
akifumi_wachi
3
540
Whoisの闇
hirachan
3
310
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
650
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
Building an army of robots
kneath
303
45k
Automating Front-end Workflow
addyosmani
1369
200k
Embracing the Ebb and Flow
colly
84
4.6k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
13
1k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Transcript
None
パーソナライズされたコンテンツ配信のた めの低遅延分散KVSの構築 Building Low-latency Distributed KVS Optimized for Personalized Content
Delivery 上田 義明/ぶーと Supership 株式会社/放送大学
アジェンダ • 本構築手法の背景と課題 • コンテンツ配信とは • パーソナライズされたコンテンツ配信とは • 一般的な分散KVSを用いた際の構成例と問題 •
既存研究/技術はなにが解決できなかったのか ◦ Master/Slave方式の分散KVSを用いた際の構成 ◦ キーシャーディングの分散KVSを用いた際の構成 • 提案手法の紹介 • 評価 • おわりに/質疑応答
本構築手法の背景と課題 • 従来のアプリケーションではデータストアにRDBを用いることが多かった • 一方RDBでは応答速度が要求されるケースでは性能に限界があった • そこで,応答速度が要求される用途ではKey-Value Store (KVS) が用いられた
• 一般にコンテンツ配信では,複数のアプリケーションノードを用いるため,複数ノー ドのKVSからなる分散KVSを用いる
コンテンツ配信とは • 大量のユーザに対して安定して高速にコンテンツを配信する • 大量のユーザーに配信するために ◦ 複数のアプリケーションノードを用いる ◦ 複数のアプリケーションノードへ接続をロードバランサで分散をする ◦
分散KVSを用いてアプリケーションノードのデータ同期を行う • 代表的なサービス例 ◦ Pixiv ◦ imgur ◦ YouTube ◦ ニコニコ動画
パーソナライズされたコンテンツ配信とは • 利便性向上や効果的なマーケティングのために,リッチなコンテンツ配信が求めら れるようになった • ユーザーごとに異なるデータをユーザからの問い合わせ後に生成してコンテンツを 配信するようになった • 代表的なシステム例 ◦
広告配信 ◦ レコメンデーション ◦ 検索エンジン ◦ 通知管理システム
パーソナライズされたコンテンツ配信とは • 前述のシステムでは以下の3点を同時に満たす必要がある ◦ 高速な応答速度で ◦ ユーザー毎に異なるデータを ◦ 安定して配信する •
ユーザーごとに異なるデータをユーザからの問い合わせ後に生成し応答 するコンテンツ配信のこと
パーソナライズされたコンテンツ配信とは • 広告配信のRTB(Real Time Bidding)では応答速度に要件があり,多くはネット ワーク遅延を含め100ミリ秒である • 一般に広告配信アプリケーションの処理は,50ミリ秒以内に収める必要があると言 われている •
したがってコンテンツ配信に用いる分散KVSは以下を満たす必要がある ◦ 10ミリ秒以下高速な応答性能 ◦ 単一のユーザに一貫性のあるデータの提供 ◦ 2つの要素を安定して提供する
一般的な分散KVSを用いた際の構成例と問題
一般的な分散KVSを用いた際の構成例と問題
一般的な分散KVSを用いた際の構成例と問題 • ネットワーク越しの問い合わ せになるため応答速度が遅 い • 問い合わせ数が増えると応 答速度が低下する
一般的な分散KVSを用いた際の構成例と問題
一般的な分散KVSを用いた際の構成例と問題 • 分散KVSノードのデータ同期 に遅延が発生する
一般的な分散KVSを用いた際の構成例と問題 • 分散KVSはネットワーク越しの問い合わせになるため応答速度が遅い • 問い合わせ数が増加すると応答速度が低下する • 更新クエリが増えると分散KVSのレプリケーション通信がボトルネックとな りデータの同期で遅延が発生する
既存研究/技術はなにが解決できなかったのか • 同期遅延 ◦ Master/Slave方式の分散KVSのSlaveをアプリケーションノードの置くことで解決 ◦ ⇢レプリケーションラグが発生する • 応答速度の遅延 ◦
キーシャーディング方式の分散KVSを用いることで分割統治により同期を省くことができ る ◦ ⇢アプリケーションノードと同一ノードにデータをもつ分散 KVSは配置できない
既存研究/技術はなにが解決できなかったのか • 同期遅延 ◦ Master/Slave方式の分散KVSのSlaveをアプリケーションノードの置くことで解決 ◦ ⇢レプリケーションラグが発生する
Master/Slave方式の分散KVSを用いた際の構成例
Master/Slave方式の分散KVSを用いた際の構成例 • レプリケーションラグが発生し ,必ずしも最新のデータがか えらない
既存研究/技術はなにが解決できなかったのか • 応答速度の遅延 ◦ キーシャーディング方式の分散KVSを用いることで分割統治により同期を省くことができ る ◦ ⇢アプリケーションノードと同一ノードにデータをもつ分散 KVSは配置できない
キーシャーディングの分散KVSを用いた際の構成
キーシャーディングの分散KVSを用いた際の構成 • シャーディングの場合必ずし も同一ノードのKVSにデータ があるとは限らないため遅延 が発生する • 別ノードへ取得に行く場合は 大きく遅延するため, 安定した性能とはいえない
既存研究/技術はなにが解決できなかったのか • 同期遅延 ◦ Master/Slave方式の分散KVSのSlaveをアプリケーションノードの置くことで解決 ◦ ⇢レプリケーションラグが発生する • 応答速度の遅延 ◦
キーシャーディング方式の分散KVSを用いることで分割統治により同期を省くことができ る ◦ ⇢アプリケーションノードと同一ノードにデータをもつ分散 KVSは配置できない
提案手法 - アプローチ • 応答性能の確保 ◦ 分散KVS をコンテンツ配信アプリケーションと同一のノードに配置する ◦ プロセス間通信でデータを交換することでネットワーク遅延を廃する
• 単一ユーザの一貫性の確保 ◦ ロードバランサでユーザのコンテンツ配信アプリケーションへの接続を常に同一ノードに 固定する ◦ 以降ユーザには同一ノードで一貫性のあるデータ提供する ◦ この状態を一貫性モデルの1つ,クライアント中心一貫性を確保しているに等しい状態で ある
提案手法 - 構成図
評価 - 概要 • 評価を行うためプロトタイプの実装を行った ◦ memcached互換のプロトコルで通信できる分散 KVSをGo言語で実装した ◦ ロードバランサの機能を用いてユーザの接続先ノードの固定した
◦ 実装は以下のリポジトリで公開している ▪ https://github.com/bootjp/turbo-ubiquitous-store • 評価は2つの観点から行う ◦ 既存技術との応答速度の比較 ◦ 単一ユーザにおいて一貫性が保証できているか
評価 - 応答速度 • 提案手法の応答時間を評価する • 既存技術であるRedisの応答時間を評価し提案手法と比較する • 評価には memtier_benchmark
を用いた • 実際の環境を模倣し以下の環境で評価をした. ◦ 既存手法は単一ノードに別ノードよりネットワーク経由 ◦ 提案手法は単一ノードないにおいての Unix Domain SocketでのIPCでの評価 • memtier_benchmark の引数は以下の通り ◦ --threads=16 --requests=10000 ◦ 並列パイプライン数(--pipeline) は1 ~ 10で変化させた
評価 - 応答速度
評価 - 応答速度 既存技術と比較し,平均 し10ms以上の高速化 要件の10ms以下の応 答速度の達成
評価 - 応答速度 まとめ • 提案手法と既存技術のRedisの平均応答時間は ◦ 提案手法が 4.32ミリ秒 ◦
Redisが16.79ミリ秒 • 提案手法による10ミリ秒以上の応答の高速化を確認した. • 既存技術では応答時間の要件を満たせない一方,提案手法では要件を容 易に充足できることも確認した
評価 - 一貫性 • 提案手法でユーザ単位のデータの一貫性を確認する • 評価に用いる以下の仕様の実験用アプリケーションを作成した ◦ ユーザーの識別子ごとに何回のアクセスがあったかを分散 KVSに記録し,最新の値を分
散KVSから取得しレスポンスする ◦ これを複数ノード配置し前段にロードバランサによりロードバランスを
評価 - 一貫性 • 評価方法 ◦ クライアント側が計測しているリクエスト回数と分散 KVSで計測された数を比較し一貫性 の評価を行った ◦
100並列の各100回のリクエストを行った
評価 - 一貫性 まとめ • 実験の結果,クライアントがリクエストした回数とレスポンスの結果は常に 一致しており,クライアント自身が書き込んだ値を読み出すことができる一 貫性が正しく機能していることを確認した
おわりに • 実験では応答速度の要件を満たし,既存技術と比較し平均応答速度が10 ミリ秒以上高速化された. • 一貫性においてはクライアント中心一貫性が正しく確保できていることを確 認した • 提案手法では今後の課題として,ノードダウン時や入替時の一貫性の担 保がある
質疑応答