Enviar pesquisa
Carregar
Casual Compression on MongoDB
•
8 gostaram
•
11,039 visualizações
moai kids
Seguir
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 46
Baixar agora
Baixar para ler offline
Recomendados
カジュアルにMongo dbのbackup機能説明
カジュアルにMongo dbのbackup機能説明
Masakazu Matsushita
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用Tips
Naoki Sega
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステム
Hitoshi Asai
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
Shoken Fujisaki
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasual
Yasuhiro Matsuo
MongoDBのアレをアレする
MongoDBのアレをアレする
Akihiro Kuwano
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
Akihiro Kuwano
MongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキスト
Akihiro Kuwano
Recomendados
カジュアルにMongo dbのbackup機能説明
カジュアルにMongo dbのbackup機能説明
Masakazu Matsushita
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用Tips
Naoki Sega
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステム
Hitoshi Asai
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
Shoken Fujisaki
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasual
Yasuhiro Matsuo
MongoDBのアレをアレする
MongoDBのアレをアレする
Akihiro Kuwano
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
Akihiro Kuwano
MongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキスト
Akihiro Kuwano
ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~
Akihiro Kuwano
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
Masakazu Matsushita
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
Akihiro Kuwano
MongoDBざっくり解説
MongoDBざっくり解説
知教 本間
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
Db tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clusters
Hiroaki Kubota
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
Takahiro Inoue
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?
Hiroaki Kubota
Introduction to MongoDB
Introduction to MongoDB
moai kids
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
Masakazu Matsushita
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
はじめてのMongoDB
はじめてのMongoDB
Keisuke Izumiya
MongoDB
MongoDB
あしたのオープンソース研究所
Mongo db勉強会の補足
Mongo db勉強会の補足
CROOZ, inc.
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
Mongo dbを知ろう
Mongo dbを知ろう
CROOZ, inc.
分割と整合性と戦う
分割と整合性と戦う
Yugo Shimizu
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
Mongo dbを知ろう devlove関西
Mongo dbを知ろう devlove関西
Ryuji Tamagawa
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Ryuji Tamagawa
Mais conteúdo relacionado
Mais procurados
ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~
Akihiro Kuwano
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
Masakazu Matsushita
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
Akihiro Kuwano
MongoDBざっくり解説
MongoDBざっくり解説
知教 本間
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
Db tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clusters
Hiroaki Kubota
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
Takahiro Inoue
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?
Hiroaki Kubota
Introduction to MongoDB
Introduction to MongoDB
moai kids
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
Masakazu Matsushita
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
はじめてのMongoDB
はじめてのMongoDB
Keisuke Izumiya
MongoDB
MongoDB
あしたのオープンソース研究所
Mongo db勉強会の補足
Mongo db勉強会の補足
CROOZ, inc.
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
Mongo dbを知ろう
Mongo dbを知ろう
CROOZ, inc.
分割と整合性と戦う
分割と整合性と戦う
Yugo Shimizu
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
Mais procurados
(20)
ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
MongoDBざっくり解説
MongoDBざっくり解説
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
Db tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clusters
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?
Introduction to MongoDB
Introduction to MongoDB
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
はじめてのMongoDB
はじめてのMongoDB
MongoDB
MongoDB
Mongo db勉強会の補足
Mongo db勉強会の補足
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Mongo dbを知ろう
Mongo dbを知ろう
分割と整合性と戦う
分割と整合性と戦う
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Semelhante a Casual Compression on MongoDB
Mongo dbを知ろう devlove関西
Mongo dbを知ろう devlove関西
Ryuji Tamagawa
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Ryuji Tamagawa
MongoDB勉強会資料
MongoDB勉強会資料
Hiromune Shishido
Mongoざっくり紹介
Mongoざっくり紹介
masakazuyamanaka
Mongo db勉強会
Mongo db勉強会
otmb
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編
Yasuhito Yabe
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+Groovy
Daisuke Ando
mongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 spring
ichikaway
リーダブルコードを読んだ後
リーダブルコードを読んだ後
Kouhei Sutou
Mongo db world 2018
Mongo db world 2018
Creationline,inc.
データベース勉強会 In 広島 mongodb
データベース勉強会 In 広島 mongodb
Ryuji Tamagawa
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
じゅん なかざ
Ceilometer苦労話
Ceilometer苦労話
Daisuke Matsui
Hybrid configurations db2_for_slideshare
Hybrid configurations db2_for_slideshare
japan_db2
Hybrid configurations
Hybrid configurations
mtanaka0111
20120831 mongoid
20120831 mongoid
Takeshi AKIMA
WiredTigerを詳しく説明
WiredTigerを詳しく説明
Tetsutaro Watanabe
MongoDB3.2の紹介
MongoDB3.2の紹介
Tetsutaro Watanabe
MongoDBCSharp
MongoDBCSharp
ytanno
ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例
Masakazu Matsushita
Semelhante a Casual Compression on MongoDB
(20)
Mongo dbを知ろう devlove関西
Mongo dbを知ろう devlove関西
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
MongoDB勉強会資料
MongoDB勉強会資料
Mongoざっくり紹介
Mongoざっくり紹介
Mongo db勉強会
Mongo db勉強会
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+Groovy
mongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 spring
リーダブルコードを読んだ後
リーダブルコードを読んだ後
Mongo db world 2018
Mongo db world 2018
データベース勉強会 In 広島 mongodb
データベース勉強会 In 広島 mongodb
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
Ceilometer苦労話
Ceilometer苦労話
Hybrid configurations db2_for_slideshare
Hybrid configurations db2_for_slideshare
Hybrid configurations
Hybrid configurations
20120831 mongoid
20120831 mongoid
WiredTigerを詳しく説明
WiredTigerを詳しく説明
MongoDB3.2の紹介
MongoDB3.2の紹介
MongoDBCSharp
MongoDBCSharp
ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例
Mais de moai kids
中国最新ニュースアプリ事情
中国最新ニュースアプリ事情
moai kids
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係
moai kids
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
Programming Hive Reading #4
Programming Hive Reading #4
moai kids
Programming Hive Reading #3
Programming Hive Reading #3
moai kids
"Programming Hive" Reading #1
"Programming Hive" Reading #1
moai kids
Hadoop Conference Japan 2011 Fallに行ってきました
Hadoop Conference Japan 2011 Fallに行ってきました
moai kids
HBase本輪読会資料(11章)
HBase本輪読会資料(11章)
moai kids
snappyについて
snappyについて
moai kids
第四回月次セミナー(公開版)
第四回月次セミナー(公開版)
moai kids
第三回月次セミナー(公開版)
第三回月次セミナー(公開版)
moai kids
Pythonで自然言語処理
Pythonで自然言語処理
moai kids
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
moai kids
Yammer試用レポート(公開版)
Yammer試用レポート(公開版)
moai kids
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
moai kids
中国と私(仮題)
中国と私(仮題)
moai kids
不自然言語処理コンテストLT資料
不自然言語処理コンテストLT資料
moai kids
n-gramコーパスを用いた類義語自動獲得手法について
n-gramコーパスを用いた類義語自動獲得手法について
moai kids
Analysis of ‘lang-8’
Analysis of ‘lang-8’
moai kids
Androidの音声認識とテキスト読み上げ機能について
Androidの音声認識とテキスト読み上げ機能について
moai kids
Mais de moai kids
(20)
中国最新ニュースアプリ事情
中国最新ニュースアプリ事情
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係
Twitterのsnowflakeについて
Twitterのsnowflakeについて
Programming Hive Reading #4
Programming Hive Reading #4
Programming Hive Reading #3
Programming Hive Reading #3
"Programming Hive" Reading #1
"Programming Hive" Reading #1
Hadoop Conference Japan 2011 Fallに行ってきました
Hadoop Conference Japan 2011 Fallに行ってきました
HBase本輪読会資料(11章)
HBase本輪読会資料(11章)
snappyについて
snappyについて
第四回月次セミナー(公開版)
第四回月次セミナー(公開版)
第三回月次セミナー(公開版)
第三回月次セミナー(公開版)
Pythonで自然言語処理
Pythonで自然言語処理
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
Yammer試用レポート(公開版)
Yammer試用レポート(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
中国と私(仮題)
中国と私(仮題)
不自然言語処理コンテストLT資料
不自然言語処理コンテストLT資料
n-gramコーパスを用いた類義語自動獲得手法について
n-gramコーパスを用いた類義語自動獲得手法について
Analysis of ‘lang-8’
Analysis of ‘lang-8’
Androidの音声認識とテキスト読み上げ機能について
Androidの音声認識とテキスト読み上げ機能について
Casual Compression on MongoDB
1.
Casual Compression
on -present at MongoDB Casual Talks- @just_do_neet
2.
Today’s Agenda
今日のお題目 •MongoDBの課題 •MongoDBでのデータ圧縮 •まとめ MongoDB Casual Talks #1 2
3.
MongoDB
MongoDB http://www.mongodb.org/ http://www.mongodb.jp/ •10gen社が主体として開発しているオープンソース 所謂「NoSQL」の一つ MongoDB Casual Talks #1 3
4.
MongoDB is over?
MongoDBはオワコン? http://suzuzuzuru.blogspot.jp/2012/04/mongodb.html http://blog.engineering.kiip.me/post/20988881092/a-year-with-mongodb MongoDB Casual Talks #1 4
5.
MongoDB is over?
MongoDBはオワコン? http://www.zopyx.com/blog/goodbye-mongodb MongoDB Casual Talks #1 5
6.
Cons.
MongoDBの欠点(主観含む) •トランザクション未サポート •トランザクションは甘え (ドヤァ •Global Lock(2.2からCollection Lockに?) •システムリソースが肥大化(メモリ、ディスク) •データ圧縮未対応(通信、データストア共) •セキュリティ周りが弱い etc. MongoDB Casual Talks #1 6
7.
Cons.
MongoDBの欠点(主観含む) •トランザクション未サポート •トランザクションは甘え (ドヤァ •Global Lock(2.2からCollection Lockに?) •システムリソースが肥大化(メモリ、ディスク) •データ圧縮未対応(通信、データストア共) •セキュリティ周りが弱い etc. MongoDB Casual Talks #1 7
8.
Compress
圧縮関連のJIRA •BSONデータの圧縮→not supported! https://jira.mongodb.org/browse/SERVER-164 MongoDB Casual Talks #1 8
9.
Compress
圧縮関連のJIRA •通信路の圧縮→not supported! https://jira.mongodb.org/browse/SERVER-3018 MongoDB Casual Talks #1 9
10.
Compress
Quoraに掲載されている「最も興味があるMongoDBのJIRA」 http://www.quora.com/MongoDB/What-are-the-most-interesting-MongoDB-JIRA-issues MongoDB Casual Talks #1 10
11.
Compress vs Not
Compress 圧縮:非圧縮のデータサイズの差 •下記例は同一フォーマットの文字列データを格納 した際の比較(MongoDB / HBase) •MongoDBはHBase(snappy圧縮時)の三倍強。 700000000 MongoDB 600000000 MongoDB(fragment) 500000000 HBase HBase(fragment) 400000000 HBase(snappy) 300000000 200000000 100000000 0 size(1,000,000 record) MongoDB Casual Talks #1 11
12.
Cons.
MongoDBの欠点(主観含む) •Big Dataを扱う環境にはあまり向かない。 •スケールするが故に、下手にそれなりの規模の システムに導入するとサーバー無限増殖の刑 に... MongoDB Casual Talks #1 12
13.
圧縮 MongoDB Casual Talks
#1 13
14.
Casual Compression
MongoDBでのカジュアルなデータ圧縮 •以下について試してみました。 1.フィールド名をできるだけ短くする 2.特定のデータをbinary形式で保存 3.小さい正整数の整数符号化 MongoDB Casual Talks #1 14
15.
#1 To shorten
filed name フィールド名の短縮 •MongoDBはBSON形式でデータを保存 •BSONは1つのドキュメントの中にフィールド名 情報を持つ。 •複数のレコードが同一のフィールド名を持って いても、1レコードごとに情報を持つ。 MongoDB Casual Talks #1 15
16.
#1 To shorten
filed name フィールド名の短縮 http://bsonspec.org/#/specification MongoDB Casual Talks #1 16
17.
#1 To shorten
filed name フィールド名の短縮 MongoDB Casual Talks #1 17
18.
#1 To shorten
filed name フィールド名の短縮 100万件で 約8MBの差 MongoDB Casual Talks #1 18
19.
#1 To shorten
filed name 参考ブログ http://christophermaier.name/blog/2011/05/22/MongoDB-key-names MongoDB Casual Talks #1 19
20.
#1 To shorten
filed name 参考ブログ http://christophermaier.name/blog/2011/05/22/MongoDB-key-names MongoDB Casual Talks #1 20
21.
#1 To shorten
filed name OR Mapperを用いたfield nameのマッピング •OR Mapperでfield nameのマッピングを行うと名 前が短すぎる弊害は多少抑制できる。 •JavaではMorphiaがオススメ。 http://code.google.com/p/morphia/ •Spring Dataは重厚すぎる気がする。 MongoDB Casual Talks #1 21
22.
#1 To shorten
filed name OR Mapperを用いたfield nameのマッピング @Data @Entity(value = "slim") class TestDTOSlim { @Id ObjectId id; @Property(value = "u") long uuid; @Property(value = "n") String name; @Property(value = "d") Date date; } MongoDB Casual Talks #1 22
23.
#2 Convert to
binary 特定のデータをbinary形式に変換 •MongoDBが圧縮をサポートしていないのでアプ リケーション側で圧縮をしてbinaryで保存。 •特定のフィールドを圧縮 •BSON以外の構造化フォーマットを用いて複数 フィールドをまとめてシリアライズ→圧縮 MongoDB Casual Talks #1 23
24.
#2 Convert to
binary 検証に使用したデータモデル public class NormalModel { @Id ObjectId oid; long uuid; int id; char flag; String name; String description; } MongoDB Casual Talks #1 24
25.
#2 Convert to
binary 検証で使用した圧縮アルゴリズム •Deflate(Best Compression) •LZO •Google Snappy •LZ4 MongoDB Casual Talks #1 25
26.
#2 Convert to
binary Google Snappy •2011/4ごろにGoogleがオープンソースとして公開 した圧縮アルゴリズム。 高速な圧縮・伸張が特徴。 •http://code.google.com/p/snappy/ MongoDB Casual Talks #1 26
27.
#2 Convert to
binary LZ4 •Google Snappyよりも圧縮・伸張速度が速いと言 われている圧縮アルゴリズム。 •http://code.google.com/p/lz4/ MongoDB Casual Talks #1 27
28.
#2 Convert to
binary BSON以外のシリアライズ手法 •Message Pack http://msgpack.org/ MongoDB Casual Talks #1 28
29.
#2 Convert to
binary 検証条件 •以下の条件で比較 1.何もしない 2.フィールド名の短縮 3. 2 + 特定のフィールドの圧縮 4.複数のフィールド情報をMessagePackでシリ アライズ 5. 4.+圧縮 MongoDB Casual Talks #1 29
30.
#2 Convert to
binary 検証結果 normal short key short key + msgpack 1500000 1200000 900000 600000 300000 0 none deflate lzo snappy lz4 MongoDB Casual Talks #1 30
31.
#2 Convert to
binary 検証結果 normal short key 1,2, 4(非圧縮) short key + msgpack 1500000 1200000 900000 600000 300000 0 none deflate lzo snappy lz4 MongoDB Casual Talks #1 31
32.
#2 Convert to
binary 検証結果 normal short key short key + msgpack 1500000 3,5(圧縮) 1200000 900000 600000 300000 0 none deflate lzo snappy lz4 MongoDB Casual Talks #1 32
33.
#2 Convert to
binary 検証結果 normal short key short key + msgpack 1500000 1200000 900000 600000 300000 0 none deflate lzo snappy lz4 MongoDB Casual Talks #1 33
34.
#2 Convert to
binary 検証結果 •「複数のフィールドをMessagePackでシリアライ ズ+圧縮アルゴリズムで圧縮」 の組み合わせで最大2/3の省サイズ化に成功。 •データパターン/データモデルによって傾向は 様々だと思う。 •圧縮・シリアライズのオーバーヘッドに注意。 •独自binary化すると後戻りできないので注意。 MongoDB Casual Talks #1 34
35.
#3 Integer Encoding
整数値符号化 •たとえば数字の「1」を数バイト使用して表現す るのはもったいない。→整数値符号化 •Variable Byte Code •Simple9 •Simple16 •etc... MongoDB Casual Talks #1 35
36.
#3 Integer Encoding
Variable Byte Code •整数値の値を最小1バイトで表現するための符号 化方式。数値部7bit(0~127)と、数値終端を表すフ ラグ1bitの組み合わせで数値を符号化します。 •https://gist.github.com/3003981 • 0x00-0x7f : 1xxxxxxx • 0x80-0x3fff : 0xxxxxxx 1xxxxxxx • 0x4000-0x1fffff : 0xxxxxxx 0xxxxxxx 1xxxxxxx ※「x」は0、もしくは1 MongoDB Casual Talks #1 36
37.
#3 Integer Encoding
検証に使用したデータモデル public class NormalModel{ ! @Id ! ObjectId oid; ! @Property(value = "id") ! int id; //もしくはlong } MongoDB Casual Talks #1 37
38.
#3 Integer Encoding
検証条件 •以下の条件で比較 1. 整数値をinteger(4byte)で保存 2. 整数値をlong(8byte)で保存 3. 整数値をVariable Byte Codeで変換して保存 MongoDB Casual Talks #1 38
39.
#3 Integer Encoding
検証結果 integer long variable byte code 37000000 36000000 35000000 34000000 33000000 32000000 31000000 30000000 max : 128 max : 16384 max : 2097152 MongoDB Casual Talks #1 39
40.
#3 Integer Encoding
検証結果 •整数値符号化で保存をしたら、逆にIntegerよりも サイズが大きくなった・・・ •BSONの仕様が関係 int32 : 4bytes int64 : 8bytes binary : int32 subtype(byte*) MongoDB Casual Talks #1 40
41.
Casual Compression
MongoDBでのカジュアルなデータ圧縮 •以下について試してみました。 1.フィールド名をできるだけ短くする →◎ 2.特定のデータをbinary形式で保存 →⃝ 3.小さい正整数の整数符号化 →☓ MongoDB Casual Talks #1 41
42.
参考情報 MongoDB Casual Talks
#1 42
43.
HBase
HBaseなら圧縮をサポートしてます •HBaseなら.... •データの圧縮に標準で対応 (圧縮したいTableのFamilyごとに指定可能。 アルゴリズムも複数選択可能) •可変長整数値に標準で対応 (VIntWritable / VLongWritable) •大きいデータを扱う場合はHBaseを(ry MongoDB Casual Talks #1 43
44.
まとめ MongoDB Casual Talks
#1 44
45.
Conclusion
まとめにかえて •MongoDBはデータサイズが肥大化しがちです が、アプリケーション側のカジュアルな工夫で多 少はデータサイズの削減ができます。 •用途に応じて、適切な現場でMongoDBを使いま しょう。 •個人的にはRedisが好きです。 MongoDB Casual Talks #1 45
46.
ご清聴
ありがとうございました MongoDB Casual Talks #1 46
Baixar agora