Enviar búsqueda
Cargar
ローカルストレージでの永続化キューの方式を本気で比較してみた
•
Descargar como PPTX, PDF
•
0 recomendaciones
•
114 vistas
S
Study Group by SciencePark Corp.
Seguir
勉強会で発表した資料。 https://sciencepark.connpass.com/event/172442/
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 13
Descargar ahora
Recomendados
ひとりドキュメント担当の仕事を楽しむ
ひとりドキュメント担当の仕事を楽しむ
soishino
Git LFSを触ってみた
Git LFSを触ってみた
Yuto Suzuki
Sphinxを使って本を書こう #pyconjp 2012
Sphinxを使って本を書こう #pyconjp 2012
Takayuki Shimizukawa
Azure Machine Leaning Workbench の使い方
Azure Machine Leaning Workbench の使い方
Yoshitaka Seo
Windows AzureでWebサーバーを再発明してみる
Windows AzureでWebサーバーを再発明してみる
Sunao Tomita
Sphinxの使い方事例
Sphinxの使い方事例
Go Yamada
OSS開発で.NETを活用してDevOps
OSS開発で.NETを活用してDevOps
Makoto Nishimura
Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjp
Takeshi Komiya
Recomendados
ひとりドキュメント担当の仕事を楽しむ
ひとりドキュメント担当の仕事を楽しむ
soishino
Git LFSを触ってみた
Git LFSを触ってみた
Yuto Suzuki
Sphinxを使って本を書こう #pyconjp 2012
Sphinxを使って本を書こう #pyconjp 2012
Takayuki Shimizukawa
Azure Machine Leaning Workbench の使い方
Azure Machine Leaning Workbench の使い方
Yoshitaka Seo
Windows AzureでWebサーバーを再発明してみる
Windows AzureでWebサーバーを再発明してみる
Sunao Tomita
Sphinxの使い方事例
Sphinxの使い方事例
Go Yamada
OSS開発で.NETを活用してDevOps
OSS開発で.NETを活用してDevOps
Makoto Nishimura
Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjp
Takeshi Komiya
SIerでもSphinxを使いたい! 前編
SIerでもSphinxを使いたい! 前編
kk_Ataka
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
Go Yamada
レガシーフリーOSに必要な要素技術 legacy free os
レガシーフリーOSに必要な要素技術 legacy free os
uchan_nos
20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ
一希 大田
2014.11.01 Dockerことはじめ
2014.11.01 Dockerことはじめ
xyzplus_net
Circle ciで結果をslackに通知してみる
Circle ciで結果をslackに通知してみる
ynakahira
ひとりsphinx
ひとりsphinx
(^-^) togakushi
How to spread reST and Sphinx
How to spread reST and Sphinx
Takanori Suzuki
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Takeshi Komiya
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
Takeshi Komiya
開発環境をDockernizeした話
開発環境をDockernizeした話
Yutaka Horikawa
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
hibiki443
WordPressサイトのバージョン管理
WordPressサイトのバージョン管理
lolipopjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Takeshi Komiya
OSS運用管理勉強会LT
OSS運用管理勉強会LT
atk1234
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Takeshi Komiya
自社製品のバージョン管理 進化と問題解決の道のり
自社製品のバージョン管理 進化と問題解決の道のり
Study Group by SciencePark Corp.
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
Study Group by SciencePark Corp.
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
Study Group by SciencePark Corp.
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
Study Group by SciencePark Corp.
チームで開発するための環境を整える
チームで開発するための環境を整える
onozaty
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Study Group by SciencePark Corp.
Más contenido relacionado
La actualidad más candente
SIerでもSphinxを使いたい! 前編
SIerでもSphinxを使いたい! 前編
kk_Ataka
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
Go Yamada
レガシーフリーOSに必要な要素技術 legacy free os
レガシーフリーOSに必要な要素技術 legacy free os
uchan_nos
20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ
一希 大田
2014.11.01 Dockerことはじめ
2014.11.01 Dockerことはじめ
xyzplus_net
Circle ciで結果をslackに通知してみる
Circle ciで結果をslackに通知してみる
ynakahira
ひとりsphinx
ひとりsphinx
(^-^) togakushi
How to spread reST and Sphinx
How to spread reST and Sphinx
Takanori Suzuki
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Takeshi Komiya
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
Takeshi Komiya
開発環境をDockernizeした話
開発環境をDockernizeした話
Yutaka Horikawa
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
hibiki443
WordPressサイトのバージョン管理
WordPressサイトのバージョン管理
lolipopjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Takeshi Komiya
OSS運用管理勉強会LT
OSS運用管理勉強会LT
atk1234
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Takeshi Komiya
La actualidad más candente
(16)
SIerでもSphinxを使いたい! 前編
SIerでもSphinxを使いたい! 前編
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
レガシーフリーOSに必要な要素技術 legacy free os
レガシーフリーOSに必要な要素技術 legacy free os
20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ
2014.11.01 Dockerことはじめ
2014.11.01 Dockerことはじめ
Circle ciで結果をslackに通知してみる
Circle ciで結果をslackに通知してみる
ひとりsphinx
ひとりsphinx
How to spread reST and Sphinx
How to spread reST and Sphinx
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
開発環境をDockernizeした話
開発環境をDockernizeした話
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
WordPressサイトのバージョン管理
WordPressサイトのバージョン管理
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
OSS運用管理勉強会LT
OSS運用管理勉強会LT
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Similar a ローカルストレージでの永続化キューの方式を本気で比較してみた
自社製品のバージョン管理 進化と問題解決の道のり
自社製品のバージョン管理 進化と問題解決の道のり
Study Group by SciencePark Corp.
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
Study Group by SciencePark Corp.
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
Study Group by SciencePark Corp.
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
Study Group by SciencePark Corp.
チームで開発するための環境を整える
チームで開発するための環境を整える
onozaty
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Study Group by SciencePark Corp.
Keep a diary
Keep a diary
幸雄 村上
2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as code
Yukihiko SAWANOBORI
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
Study Group by SciencePark Corp.
Robotium を使った UI テスト
Robotium を使った UI テスト
健一 辰濱
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Study Group by SciencePark Corp.
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Study Group by SciencePark Corp.
.NETのTuple応用チャレンジ WCFとC++/CLI
.NETのTuple応用チャレンジ WCFとC++/CLI
keitasudo1
コンテナ事例 CircleCI, Cucumber-Chef
コンテナ事例 CircleCI, Cucumber-Chef
Yukihiko SAWANOBORI
Pbox on softlayer
Pbox on softlayer
Shuichi Yukimoto
20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料
Takahiro Iwase
次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く
Shin Takeuchi
WikiWikiアジャイル
WikiWikiアジャイル
Fumio Kawakami
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
Shigeru Hanada
Contao Open Source CMS / 3.3と、その向こう
Contao Open Source CMS / 3.3と、その向こう
Takahiro Kambe
Similar a ローカルストレージでの永続化キューの方式を本気で比較してみた
(20)
自社製品のバージョン管理 進化と問題解決の道のり
自社製品のバージョン管理 進化と問題解決の道のり
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
チームで開発するための環境を整える
チームで開発するための環境を整える
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Keep a diary
Keep a diary
2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as code
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
Robotium を使った UI テスト
Robotium を使った UI テスト
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
.NETのTuple応用チャレンジ WCFとC++/CLI
.NETのTuple応用チャレンジ WCFとC++/CLI
コンテナ事例 CircleCI, Cucumber-Chef
コンテナ事例 CircleCI, Cucumber-Chef
Pbox on softlayer
Pbox on softlayer
20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料
次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く
WikiWikiアジャイル
WikiWikiアジャイル
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
Contao Open Source CMS / 3.3と、その向こう
Contao Open Source CMS / 3.3と、その向こう
Más de Study Group by SciencePark Corp.
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
Study Group by SciencePark Corp.
YOLOとご一緒にPandasはいかがですか
YOLOとご一緒にPandasはいかがですか
Study Group by SciencePark Corp.
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
Study Group by SciencePark Corp.
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
Study Group by SciencePark Corp.
ドライバへのETWの埋め込み
ドライバへのETWの埋め込み
Study Group by SciencePark Corp.
JTAGを使ってみよう
JTAGを使ってみよう
Study Group by SciencePark Corp.
JTAG入門
JTAG入門
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座(6)
初心者向けデバイスドライバ講座(6)
Study Group by SciencePark Corp.
02.超初心者向けセキュリティ入門(IoT)
02.超初心者向けセキュリティ入門(IoT)
Study Group by SciencePark Corp.
06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)
Study Group by SciencePark Corp.
Visual StudioでWixをビルドしてみた
Visual StudioでWixをビルドしてみた
Study Group by SciencePark Corp.
MacOS10.15への対応について
MacOS10.15への対応について
Study Group by SciencePark Corp.
Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方
Study Group by SciencePark Corp.
リモートでの勉強会参加方法
リモートでの勉強会参加方法
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座 (2)
初心者向けデバイスドライバ講座 (2)
Study Group by SciencePark Corp.
No.2 超初心者向け セキュリティ入門
No.2 超初心者向け セキュリティ入門
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座(1)
初心者向けデバイスドライバ講座(1)
Study Group by SciencePark Corp.
01.超初心者向けセキュリティ入門
01.超初心者向けセキュリティ入門
Study Group by SciencePark Corp.
無線通信にて遠隔操作を行うVRトラッキングカメラ
無線通信にて遠隔操作を行うVRトラッキングカメラ
Study Group by SciencePark Corp.
デバイスドライバのオープンソースフレームワーク
デバイスドライバのオープンソースフレームワーク
Study Group by SciencePark Corp.
Más de Study Group by SciencePark Corp.
(20)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
YOLOとご一緒にPandasはいかがですか
YOLOとご一緒にPandasはいかがですか
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
ドライバへのETWの埋め込み
ドライバへのETWの埋め込み
JTAGを使ってみよう
JTAGを使ってみよう
JTAG入門
JTAG入門
初心者向けデバイスドライバ講座(6)
初心者向けデバイスドライバ講座(6)
02.超初心者向けセキュリティ入門(IoT)
02.超初心者向けセキュリティ入門(IoT)
06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)
Visual StudioでWixをビルドしてみた
Visual StudioでWixをビルドしてみた
MacOS10.15への対応について
MacOS10.15への対応について
Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方
リモートでの勉強会参加方法
リモートでの勉強会参加方法
初心者向けデバイスドライバ講座 (2)
初心者向けデバイスドライバ講座 (2)
No.2 超初心者向け セキュリティ入門
No.2 超初心者向け セキュリティ入門
初心者向けデバイスドライバ講座(1)
初心者向けデバイスドライバ講座(1)
01.超初心者向けセキュリティ入門
01.超初心者向けセキュリティ入門
無線通信にて遠隔操作を行うVRトラッキングカメラ
無線通信にて遠隔操作を行うVRトラッキングカメラ
デバイスドライバのオープンソースフレームワーク
デバイスドライバのオープンソースフレームワーク
ローカルストレージでの永続化キューの方式を本気で比較してみた
1.
ローカルストレージでの永続化キューの方式を本気で比較してみた サイエンスパーク株式会社 須藤圭太 1
2.
• ID:suusanex( connpass・Twitter・GitHub共通) •
名前:須藤圭太 • サイエンスパーク株式会社という独立系ソフトウェアベンダーに所属 • 4年ほど受託開発で、上流から下流まで全部を回す • ここ6年ほどは、自社製品開発を担当 勉強会、今後も開いていきます。 https://sciencepark.connpass.com/ 自己紹介 2
3.
• C#で、永続化キューを作りたい • 失われてはならないデータをストレージに保存するキュー •
処理の重さやメモリストレージの使用量も大事だが、コーディングのしやすさや保守 性も重視したい • 単純なバイナリファイルに自力で保存するキューを一つの基準として、他の方法を比 較検討してみた • SQLite • Redis • MongoDB やりたいこと 3
4.
• 基本的には単純なFIFOのキュー • ただし、キューから取り出したデータの処理に失敗した場合はストレージから消して はならないという要件がある •
つまり、デキュー処理は参照と削除を分けられるか、もしくは削除したものをキュー に戻す必要がある キューの要件 4
5.
• ゼロ点方式:参考値。計測器自体のゼロ点計測(永続化しない場合でも最低限必要に なる所要時間の計測) • バイナリ:独自フォーマットのバイナリファイルを使用し、スクラッチで実装を行う 方式。最も目的に合わせて無駄がない処理になるが、保守性は低い。 •
SQLite:組み込みRDB代表。トランザクションなどは工夫せず即座にストレージに 反映する • Redis:NoSQLの一つ。サーバー型なのでローカルにサーバーを立てて使用する。 • MongoDB:Redisと同様 • 測定に使用したソースコードはここにあります • https://github.com/suusanex/sample_persistence_queue_benchmark_test 測定方式 5
6.
• 10msごとに1つ、合計1000個のレコードを発生させた場合の計測結果 • どの方式も大差なし(MongoDBは計測漏れだが、おそらく同じようなもの) 10ms間隔 6 方式
所要時間[s] ストレージ使用量 [MB] メモリ使用量 [MB] ゼロ点方式 10 0 99 バイナリファイル 方式 10 0.2 100 Redis AOF(EverySec) 12 6 115 SQLite 12 6 115 MongoDB - - -
7.
• 1msごとに1つ、合計10000個のレコードを発生させた場合の計測結果 • SQLiteはここで脱落 1ms間隔 7 方式
所要時間[s] ストレージ使用量 [MB] メモリ使用量 [MB] ゼロ点方式 10 0 104 バイナリファイル 方式 13 0.2 107 Redis AOF(EverySec) 16 3 115 SQLite 110 0.3 123 MongoDB 14 0.6 293
8.
• 0.1msごとに1つ、合計100000個のレコードを発生させた場合の計測結果 • シンプルなバイナリファイルは速度が劣り始める 0.1ms間隔 8 方式
所要時間[s] ストレージ使用量 [MB] メモリ使用量 [MB] ゼロ点方式 11 0 138 バイナリファイル 方式 53 19 152 Redis AOF(EverySec) 34 139 MongoDB 42 2 279
9.
• Redisはかなり良いパフォーマンスを出したが・・・ • 完全なインメモリDBであり、ストレージにデータを移せない(ミラーリングのみ) •
単一目的でメモリを使い切れるサーバー環境なら良いが、クライアントには不向き • 今回は用途に合わなかったので脱落とした Redisは用途の都合で脱落 9
10.
• 0.1msごとに1つ、合計100000個のレコードを発生させた場合、かつpop後に即座 に処理に失敗し、キューへ戻した場合。(キューへの負荷を最大化したもの) • MongoDBのメモリ使用量上限は250MBに設定 •
MongoDBが優れている • (メモリ使用量が多いのは、計測ツールとDBの2つのプロセスがある分) 0.1ms間隔(処理即時エラー) 10 方式 所要時間[s] ストレージ使用量 [MB] メモリ使用量 [MB] ゼロ点方式 107 0 533 バイナリファイル 方式 532 200 181 MongoDB 425 164 489
11.
• MongoDBはバイナリファイルに処理速度で劣らず、むしろ負荷が上がるほど勝る • MongoDBはバイナリファイルよりもメモリ使用量が多いが、上限を250MBに設定 しても十分に早い •
実装はMongoDBがシンプル(元々キューに近いI/F) • ↓ • バイナリファイルも良いが、MongoDBは保守性で勝るのでより良い 計測結果まとめ 11
12.
• 探してみると、単純にバイナリファイルで実装する以外にも良い方法はある • 良いライブラリを使って、楽に良い機能を作りましょう! まとめ 12
13.
SP2004-E04-01
Descargar ahora