SlideShare a Scribd company logo
1 of 11
A Better Cached
   Cybozu Labs, Inc.
     Kazuho Oku
Memcachedの利点と欠点

   利点
        RDBMS の読込負荷低減 / 同時接続数が足りない
        スケールアウトするキャッシュ
   欠点
        RDBMS との一貫性維持が不可能
              クライアントがキャッシュを変更する限りは不可避
        問い合わせが複雑
              Memcachedに聞いて、なかったら RDBMS に問い合わ
               せ
        データが溢れる
Sep 25 2009              A Better Cached         2
「Memcachedの利点」の前提

   RDBMS がスケールアウトしない
        だから、読込負荷低減が必要
        だから、別途「スケールアウトするキャッシュ」
         が必要
                                ↓
        Incline & Pacific で RDBMS をスケールアウト可能
              必要に応じてshard分割+セカンダリを増設すればいい

   残る問題は、同時接続数
        あと、やっぱり SQL は遅い

Sep 25 2009             A Better Cached      3
遅いなら捨ててしまえ SQLパーサー
                (字余り)



Sep 25 2009      A Better Cached   4
Mycached

   mysqldがmemcachedプロトコルを話せ
    るようにする拡張
        テーブルの中身をmemcachedプロトコルで get
        ただしプライマリキーによる get 専用
              書き込みは SQL で




Sep 25 2009              A Better Cached   5
Mycached – 図説




                                                                            mycached
              http://dev.mysql.com/doc/refman/5.1/en/pluggable-storage-overview.htmlを改変
Sep 25 2009                         A Better Cached                                    6
Mycached

   デモ




Sep 25 2009     A Better Cached   7
Mycached – 実装

   1,200行くらい
   JSON, msgpack, 独自形式によるレスポ
    ンス
   Picoevを使用 (I/O イベント駆動ライブ
    ラリ)
        MySQLの内部構造は、多数のスレッドによる並行
         アクセスにむいていない (というのが定説)
        イベント駆動ライブラリで同時アクセス数を低減
              get は軽いので、データ読込中に他の接続がブロック
Sep 25 2009
               しても問題ない A Better Cached      8
Mycached – ベンチマーク

   SQL だと 40,000qps 程度




Sep 25 2009      A Better Cached   9
Mycachedのアプローチにおける問題

   負荷が平準化するわけではない
        Memcachedはハッシュベースなので負荷平準化




Sep 25 2009       A Better Cached    10
よりよいアプローチ?

   cached と RDBMS 間でクエリの転送と
    invalidation を実行
                                                somecached



                           queries                                queries
                                                  invalidation
                                               (trigger-based?)

              app server
                                                                   RDBMS



Sep 25 2009                  A Better Cached                                11

More Related Content

What's hot

MySQL 冗長化モデル
MySQL 冗長化モデルMySQL 冗長化モデル
MySQL 冗長化モデルZaki_XL
 
Crooz meet fusion io3 open
Crooz meet fusion io3 openCrooz meet fusion io3 open
Crooz meet fusion io3 opentakaoka susumu
 
EWD 3トレーニング・コース #3 EWD 3 モジュールの概要
EWD 3トレーニング・コース #3 EWD 3 モジュールの概要EWD 3トレーニング・コース #3 EWD 3 モジュールの概要
EWD 3トレーニング・コース #3 EWD 3 モジュールの概要Kiyoshi Sawada
 
Windows server technical preview hyper v の新機能
Windows server technical preview hyper v の新機能Windows server technical preview hyper v の新機能
Windows server technical preview hyper v の新機能Syuichi Murashima
 
Summary of SQL Database Updates
Summary of SQL Database UpdatesSummary of SQL Database Updates
Summary of SQL Database UpdatesOshitari_kochi
 
SCVMM2008 と SCDPM 2008 と Hyper-V(2008)の思い出
SCVMM2008 と SCDPM 2008 と Hyper-V(2008)の思い出SCVMM2008 と SCDPM 2008 と Hyper-V(2008)の思い出
SCVMM2008 と SCDPM 2008 と Hyper-V(2008)の思い出Masakazu Kishima
 

What's hot (9)

Psql & proctitle
Psql & proctitlePsql & proctitle
Psql & proctitle
 
MySQL 冗長化モデル
MySQL 冗長化モデルMySQL 冗長化モデル
MySQL 冗長化モデル
 
Crooz meet fusion io3 open
Crooz meet fusion io3 openCrooz meet fusion io3 open
Crooz meet fusion io3 open
 
EWD 3トレーニング・コース #3 EWD 3 モジュールの概要
EWD 3トレーニング・コース #3 EWD 3 モジュールの概要EWD 3トレーニング・コース #3 EWD 3 モジュールの概要
EWD 3トレーニング・コース #3 EWD 3 モジュールの概要
 
Windows server technical preview hyper v の新機能
Windows server technical preview hyper v の新機能Windows server technical preview hyper v の新機能
Windows server technical preview hyper v の新機能
 
Summary of SQL Database Updates
Summary of SQL Database UpdatesSummary of SQL Database Updates
Summary of SQL Database Updates
 
SCVMM2008 と SCDPM 2008 と Hyper-V(2008)の思い出
SCVMM2008 と SCDPM 2008 と Hyper-V(2008)の思い出SCVMM2008 と SCDPM 2008 と Hyper-V(2008)の思い出
SCVMM2008 と SCDPM 2008 と Hyper-V(2008)の思い出
 
ComSys 2012 Yabusame Talk
ComSys 2012 Yabusame TalkComSys 2012 Yabusame Talk
ComSys 2012 Yabusame Talk
 
Varnish
VarnishVarnish
Varnish
 

Viewers also liked

memcachedとトラブルとソーシャルアプリ
memcachedとトラブルとソーシャルアプリmemcachedとトラブルとソーシャルアプリ
memcachedとトラブルとソーシャルアプリSuguru Shirai
 
AWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCacheAWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCacheAmazon Web Services Japan
 
Memcachedの仕組みと設定
Memcachedの仕組みと設定Memcachedの仕組みと設定
Memcachedの仕組みと設定Tatsuya Akashi
 
Fotos Amsterdam
Fotos AmsterdamFotos Amsterdam
Fotos AmsterdamRaulMolina
 
Lezzetleri kesen ölüm...
Lezzetleri kesen ölüm...Lezzetleri kesen ölüm...
Lezzetleri kesen ölüm...halid şen
 
Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...
Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...
Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...Hendrik Drachsler
 
Mis 2 Princesas Chico 2
Mis 2 Princesas Chico 2Mis 2 Princesas Chico 2
Mis 2 Princesas Chico 2Carlos Arrieta
 
Elks by Alex
Elks by AlexElks by Alex
Elks by Alexvebrya
 
微言大益录2010
微言大益录2010微言大益录2010
微言大益录2010mingxia
 
Eski fotoğraf ve kartpostallar
Eski fotoğraf ve kartpostallarEski fotoğraf ve kartpostallar
Eski fotoğraf ve kartpostallarhalid şen
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails FinalRobert Postill
 
Phoenix Az Dept Of Commerce Rural Renewable Presentations
Phoenix   Az Dept Of Commerce Rural Renewable PresentationsPhoenix   Az Dept Of Commerce Rural Renewable Presentations
Phoenix Az Dept Of Commerce Rural Renewable PresentationsICF_HCD
 
Mevzuat
MevzuatMevzuat
Mevzuatanttab
 
Niedziela W Supermarkecie
Niedziela W SupermarkecieNiedziela W Supermarkecie
Niedziela W Supermarkecieagata stanisz
 

Viewers also liked (20)

実践 memcached
実践 memcached実践 memcached
実践 memcached
 
memcachedとトラブルとソーシャルアプリ
memcachedとトラブルとソーシャルアプリmemcachedとトラブルとソーシャルアプリ
memcachedとトラブルとソーシャルアプリ
 
AWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCacheAWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCache
 
Memcachedの仕組みと設定
Memcachedの仕組みと設定Memcachedの仕組みと設定
Memcachedの仕組みと設定
 
Fotos Amsterdam
Fotos AmsterdamFotos Amsterdam
Fotos Amsterdam
 
Lezzetleri kesen ölüm...
Lezzetleri kesen ölüm...Lezzetleri kesen ölüm...
Lezzetleri kesen ölüm...
 
Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...
Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...
Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...
 
Mis 2 Princesas Chico 2
Mis 2 Princesas Chico 2Mis 2 Princesas Chico 2
Mis 2 Princesas Chico 2
 
Elks by Alex
Elks by AlexElks by Alex
Elks by Alex
 
Condones
CondonesCondones
Condones
 
微言大益录2010
微言大益录2010微言大益录2010
微言大益录2010
 
Stelline 2011 qr
Stelline 2011 qrStelline 2011 qr
Stelline 2011 qr
 
NanoA
NanoANanoA
NanoA
 
Eski fotoğraf ve kartpostallar
Eski fotoğraf ve kartpostallarEski fotoğraf ve kartpostallar
Eski fotoğraf ve kartpostallar
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
 
Anuario Jaye
Anuario JayeAnuario Jaye
Anuario Jaye
 
Flowers
FlowersFlowers
Flowers
 
Phoenix Az Dept Of Commerce Rural Renewable Presentations
Phoenix   Az Dept Of Commerce Rural Renewable PresentationsPhoenix   Az Dept Of Commerce Rural Renewable Presentations
Phoenix Az Dept Of Commerce Rural Renewable Presentations
 
Mevzuat
MevzuatMevzuat
Mevzuat
 
Niedziela W Supermarkecie
Niedziela W SupermarkecieNiedziela W Supermarkecie
Niedziela W Supermarkecie
 

Similar to A Better Cached

Incline & Pacific - なぜ作るのか
Incline & Pacific - なぜ作るのかIncline & Pacific - なぜ作るのか
Incline & Pacific - なぜ作るのかKazuho Oku
 
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版Akira Shimosako
 
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことPHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことKentaro Matsui
 
負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)Yohei Hamada
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたSunao Tomita
 
DB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSDB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSAkira Shimosako
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたA 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたGoAzure
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlYutuki r
 
awsを学ぶ上で必要となる前提知識(DB)
awsを学ぶ上で必要となる前提知識(DB)awsを学ぶ上で必要となる前提知識(DB)
awsを学ぶ上で必要となる前提知識(DB)聡 大久保
 
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)Amazon Web Services Japan
 
Memcached api搭載の「my sql cluster 7.2」
Memcached api搭載の「my sql cluster 7.2」Memcached api搭載の「my sql cluster 7.2」
Memcached api搭載の「my sql cluster 7.2」貴仁 大和屋
 
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版Akira Shimosako
 
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~KLab株式会社
 
B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明
B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明
B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明Insight Technology, Inc.
 
C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章Insight Technology, Inc.
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理junichi anno
 
クラウドバイデフォルトは新しい日常で加速するハイブリッドクラウド、マルチクラウドデータ保護の最前線とコストの最適化
クラウドバイデフォルトは新しい日常で加速するハイブリッドクラウド、マルチクラウドデータ保護の最前線とコストの最適化クラウドバイデフォルトは新しい日常で加速するハイブリッドクラウド、マルチクラウドデータ保護の最前線とコストの最適化
クラウドバイデフォルトは新しい日常で加速するハイブリッドクラウド、マルチクラウドデータ保護の最前線とコストの最適化vxsejapan
 
CommVault with Cloudian for Data Backup and Archive
CommVault with Cloudian for Data Backup and ArchiveCommVault with Cloudian for Data Backup and Archive
CommVault with Cloudian for Data Backup and ArchiveCLOUDIAN KK
 

Similar to A Better Cached (20)

Incline & Pacific - なぜ作るのか
Incline & Pacific - なぜ作るのかIncline & Pacific - なぜ作るのか
Incline & Pacific - なぜ作るのか
 
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
Db2をAWS上に構築する際のヒント&TIPS 2019年7月版
 
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことPHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったこと
 
負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
 
DB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSDB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPS
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたA 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
awsを学ぶ上で必要となる前提知識(DB)
awsを学ぶ上で必要となる前提知識(DB)awsを学ぶ上で必要となる前提知識(DB)
awsを学ぶ上で必要となる前提知識(DB)
 
JAWS-UG-Kyoto-2nd
JAWS-UG-Kyoto-2ndJAWS-UG-Kyoto-2nd
JAWS-UG-Kyoto-2nd
 
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
 
Memcached api搭載の「my sql cluster 7.2」
Memcached api搭載の「my sql cluster 7.2」Memcached api搭載の「my sql cluster 7.2」
Memcached api搭載の「my sql cluster 7.2」
 
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
DB2をAWS上に構築する際のヒント&TIPS 2018年1月版
 
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
 
Hadoop
HadoopHadoop
Hadoop
 
B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明
B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明
B14 SQL Server over SMB using infiniBand and SSD by Mario Broodbakker/市川明
 
C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理
 
クラウドバイデフォルトは新しい日常で加速するハイブリッドクラウド、マルチクラウドデータ保護の最前線とコストの最適化
クラウドバイデフォルトは新しい日常で加速するハイブリッドクラウド、マルチクラウドデータ保護の最前線とコストの最適化クラウドバイデフォルトは新しい日常で加速するハイブリッドクラウド、マルチクラウドデータ保護の最前線とコストの最適化
クラウドバイデフォルトは新しい日常で加速するハイブリッドクラウド、マルチクラウドデータ保護の最前線とコストの最適化
 
CommVault with Cloudian for Data Backup and Archive
CommVault with Cloudian for Data Backup and ArchiveCommVault with Cloudian for Data Backup and Archive
CommVault with Cloudian for Data Backup and Archive
 

More from Kazuho Oku

HTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときKazuho Oku
 
QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7Kazuho Oku
 
HTTP/2の課題と将来
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来Kazuho Oku
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話Kazuho Oku
 
Reorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondReorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondKazuho Oku
 
Recent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyRecent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyKazuho Oku
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsivenessKazuho Oku
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsivenessKazuho Oku
 
Developing the fastest HTTP/2 server
Developing the fastest HTTP/2 serverDeveloping the fastest HTTP/2 server
Developing the fastest HTTP/2 serverKazuho Oku
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95Kazuho Oku
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向Kazuho Oku
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先Kazuho Oku
 
Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5Kazuho Oku
 
HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計Kazuho Oku
 
H2O - making the Web faster
H2O - making the Web fasterH2O - making the Web faster
H2O - making the Web fasterKazuho Oku
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP betterKazuho Oku
 
H2O - the optimized HTTP server
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP serverKazuho Oku
 
JSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedJSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedKazuho Oku
 
JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法Kazuho Oku
 
JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013Kazuho Oku
 

More from Kazuho Oku (20)

HTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないとき
 
QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7
 
HTTP/2の課題と将来
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
 
Reorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondReorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and Beyond
 
Recent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyRecent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using ruby
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
 
Developing the fastest HTTP/2 server
Developing the fastest HTTP/2 serverDeveloping the fastest HTTP/2 server
Developing the fastest HTTP/2 server
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
 
Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5
 
HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計
 
H2O - making the Web faster
H2O - making the Web fasterH2O - making the Web faster
H2O - making the Web faster
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP better
 
H2O - the optimized HTTP server
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP server
 
JSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedJSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons Learned
 
JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法
 
JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013
 

Recently uploaded

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (8)

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

A Better Cached

  • 1. A Better Cached Cybozu Labs, Inc. Kazuho Oku
  • 2. Memcachedの利点と欠点 利点 RDBMS の読込負荷低減 / 同時接続数が足りない スケールアウトするキャッシュ 欠点 RDBMS との一貫性維持が不可能 クライアントがキャッシュを変更する限りは不可避 問い合わせが複雑 Memcachedに聞いて、なかったら RDBMS に問い合わ せ データが溢れる Sep 25 2009 A Better Cached 2
  • 3. 「Memcachedの利点」の前提 RDBMS がスケールアウトしない だから、読込負荷低減が必要 だから、別途「スケールアウトするキャッシュ」 が必要 ↓ Incline & Pacific で RDBMS をスケールアウト可能 必要に応じてshard分割+セカンダリを増設すればいい 残る問題は、同時接続数 あと、やっぱり SQL は遅い Sep 25 2009 A Better Cached 3
  • 4. 遅いなら捨ててしまえ SQLパーサー (字余り) Sep 25 2009 A Better Cached 4
  • 5. Mycached mysqldがmemcachedプロトコルを話せ るようにする拡張 テーブルの中身をmemcachedプロトコルで get ただしプライマリキーによる get 専用 書き込みは SQL で Sep 25 2009 A Better Cached 5
  • 6. Mycached – 図説 mycached http://dev.mysql.com/doc/refman/5.1/en/pluggable-storage-overview.htmlを改変 Sep 25 2009 A Better Cached 6
  • 7. Mycached デモ Sep 25 2009 A Better Cached 7
  • 8. Mycached – 実装 1,200行くらい JSON, msgpack, 独自形式によるレスポ ンス Picoevを使用 (I/O イベント駆動ライブ ラリ) MySQLの内部構造は、多数のスレッドによる並行 アクセスにむいていない (というのが定説) イベント駆動ライブラリで同時アクセス数を低減 get は軽いので、データ読込中に他の接続がブロック Sep 25 2009 しても問題ない A Better Cached 8
  • 9. Mycached – ベンチマーク SQL だと 40,000qps 程度 Sep 25 2009 A Better Cached 9
  • 10. Mycachedのアプローチにおける問題 負荷が平準化するわけではない Memcachedはハッシュベースなので負荷平準化 Sep 25 2009 A Better Cached 10
  • 11. よりよいアプローチ? cached と RDBMS 間でクエリの転送と invalidation を実行 somecached queries queries invalidation (trigger-based?) app server RDBMS Sep 25 2009 A Better Cached 11