「世界最速」をうたう SQL データベース「MemSQL」 47
ストーリー by reo
中身は特許の塊 部門より
中身は特許の塊 部門より
hylom 曰く、
元 Facebook の開発者が開発した SQL データベース「MemSQL」が、「世界最速」をアピールしている (本家 /. 記事より) 。
MemSQL は MySQL 互換でありながら、データの読み書きを「信じられないスピード」で実行できるという。MemSQL を紹介するビデオでは、MySQL と MemSQL で同様のクエリを実行してその速度の違いを見せているが、たとえば MySQL で毎秒 3,500 回実行できるクエリを MemSQL で実行すると、毎秒 80,000 回も実行できるという。
MemSQL はデータをメモリ内に配置し、SQL 文を最適化された C++ コードに変換して実行することで高速化を計っているそうだ。そのほか、さまざまな最適化も行われているという。オープンソースではないようだが、10 GB までの容量制限がある「Developer Edition」は無料で利用できるようだ。
黄緑のうちに、とり急ぎコメント (スコア:5, 参考になる)
本家記事の末尾
「The documentation says that MemSQL writes back to disk/SSD as soon as the transaction is acknowledged in memory,
and that using a combination of write-ahead logging and snapshotting ensures your data is secure.
There is a free version but so far how much a full version will cost isn't given.」
も入れとかないと、そういうコメントだらけになりそうですよ。
名前に反して、ちゃんとディスクに書き込むしデータ保護もしている。
フルバージョンの値段は未公開。
Re: (スコア:0)
要するに一言で言うと、SQLコンパイラ?
Re:黄緑のうちに、とり急ぎコメント (スコア:2)
Re: (スコア:0)
違うよ。
データはメモリ上に持つけれど、トランザクションはちゃんと保証されるってことでしょう。
つまり元コメの
>ちゃんとディスクに書き込むしデータ保護もしている。
がすでに一言で言っています。
どう読んで「SQLコンパイラ」なんて言葉が出てきたのだ?
Re: (スコア:0)
こういうタイプの作りだと、OSが死んだときに、SSDに書き込めてないデータが消えそうなんですけど
その辺はどうしてるんでしょうかね。
Re:黄緑のうちに、とり急ぎコメント (スコア:3)
Re: (スコア:0)
普通のDBでもOSが死んだりしてcommitできなければ
消えるのは当たり前。
Re: (スコア:0)
Linuxはそのあたりの実装がいい加減だったそうですが、今もそうかな?
commitできないなんてのはアプリレベルの話です。
Re: (スコア:0)
OSはディスクに書き込んだつもりでもHDDのキャッシュに乗っただけとか
Re:黄緑のうちに、とり急ぎコメント (スコア:3)
HDDの制御基板のキャッシュに関しては、電源OFFの際にもコンデンサにたまってる電荷で稼働できる最後の数10msで書き込んでくれるんじゃなかったっけ?
Re: (スコア:0)
それでも問題ないでしょ?
Re: (スコア:0)
っていうか、OSが落ちただけなら全然問題無いよね。
Re: (スコア:0)
> どう読んで「SQLコンパイラ」なんて言葉が出てきたのだ?
「SQL 文を最適化された C++ コードに変換して」の辺り。
というか、どう読んでデータの置き場所やトランザクションの話が出てきたのだ?
Re: (スコア:0)
「The documentation says that MemSQL writes back to disk/SSD as soon as the transaction is acknowledged in memory,
and that using a combination of write-ahead logging and snapshotting ensures your data is secure.
There is a free version but so far how much a full version will cost isn't given.」
のどこに
「SQL 文を最適化された C++ コードに変換して」
って書いてあるんだ?
Re: (スコア:0)
落ち着いてタレコミ文から全部読み直すといいと思う
Re: (スコア:0)
わざわざこのスレッドにぶら下げるいいわけにはならないなあ。
Re: (スコア:0)
そう書いてあるからには、I/Oをサボって(手抜きをして)高速化してるわけじゃないんだな、と思ったわけよ。
とすると、タレコミにある「変換して」の部分がキモかな、と思ったわけよ。
なんかおかしい?
原理を正しく見抜いているかではなく、話の進め方が。
Re:黄緑のうちに、とり急ぎコメント (スコア:2)
おおまかな話の流れとしては理解できるんだけど、
は誤訳というか前後が逆ですね。
「実行速度の最適化のために、SQLをC++コードに変換している」のであって、
「最適化されたC++コードに変換している」わけではないでしょう。手段と目的が逆。
データベースのデータを全部オンメモリにすれば格段に高速化できる。
でも、検索処理における個々のレコードについての条件比較で、SQLをインタプリタ実行していては無駄。
こういう場合の処理の定番は「JITコンパイル」ですね。比較処理部をネイティブコードにすればいい。
で、そのコンパイル手段として、SQL→C++のトランスレータにしているということなのでしょう。
自前でSQLをネイティブコードに落とすコンパイラを作るのが一番でしょうけど、そうするのはかなり難易度が高いでしょう。
それに比べると、
SQLのデータ型をC++のクラスに対応させられれば、SQL→C++は比較的簡単に変換できると思います。
単にネイティブコードになるだけでも格段に速くなるでしょうし、
C++コンパイラの最適化の恩恵によってさらなく高速化も期待できます。
#SQLの文字列比較が、C++のクラスオブジェクトの比較を経由して、コンパイラビルトインのstrcmpになるとか、そんな感じ。
世界最速? (スコア:0)
情報不足と、自分の知識不足で、
本当に世界最速だと判断できません。
どうなんでしょう?
http://www.kousokuya.co.jp/ [kousokuya.co.jp]
以前は、こっちが世界最速を歌っていたような?
Re:世界最速? (スコア:2)
Re:世界最速? (スコア:4, おもしろおかしい)
全米ってすぐに泣くから信用できない。
Re: (スコア:0)
「全米が震撼した」もよく聞くし,日本を超える地震大国なのは間違いない.
Re: (スコア:0)
震撼のカンって感動のカンと違うんですね。
今、はじめて気付きました。
なんか付いてるって。
Re: (スコア:0)
手で感じさせられるなんてなんかエロい。。。
Re: (スコア:0)
それでは聞いてください。MemSQLで、「世界最速」
Re: (スコア:0)
世界最速のスーパーコンピュータに採用されたモノが最速の座を掴むのだ
あとF1の制御系に採用されたりとかロケットに採用されたりとか
Re: (スコア:0)
Re: (スコア:0)
でもきっと一番速いのは、ガンガンガン速。きっと。
Re: (スコア:0)
世界最速コンソーシアムというのを立ち上げるのはどうでしょうか?
会員企業から会費を徴収しつつ、会員企業からの申請に対して世界最速を認定してあげるのです。
どうやって世界最速評価するかですか?
認定するだけです、評価なんかしません。
Re:世界最速? (スコア:2)
IT版のモン○セレクションみたいな感じですね。
用途は? (スコア:0)
速度を追求というなら、SQLをインターフェース言語として使う理由がないし、ネットワークポートを経由してデータを受け取る理由もないと思います。
Re:用途は? (スコア:2)
Re:用途は? (スコア:1)
Re:用途は? (スコア:1)
ユーザーインターフェースだけがインタフェースじゃないんだよ?
Re: (スコア:0)
既存のアプリを高速化したいというニーズは何処にでも転がってますよ。
大規模オンメモリDB (スコア:0)
オンメモリDBというと東証売買 システム (arrowhead )を思い出す。
確かプログラム取引用のAPIだと32マイクロ秒で株価問い合わせクエリーの実行ができるという話だったかなあ。
まあ、ハードも違うし、多重度も違うし、規模も違うから、単純な比較はできないけどね。
Re: (スコア:0)
クエリーにかかる時間と
単位時間あたり何クエリー捌けるか
も全然単位が違うから比較できないね。
元 Facebook の開発者 (スコア:0)
「元 Facebook の開発者」というのは 「過去にFacebook の開発を行ったが現在は行っていないので開発者ではない」という意味かな。
単に「Facebook の開発者」というのとはニュアンスが違うのかな。
Re: (スコア:0)
ほかにも区切り方はあるな。
「元Facebook」の開発者(昔Facebookに在籍してた。そこでの開発の経験は問わない)
元「Facebook の開発者が開発したSQL データベース」(Faceboookの開発者が開発したSQLデータベースを出発点とするソフトウェア)
とか。
Re: (スコア:0)
最近はスラドにも日本語がわからない人がちょくちょく来ているみたいだな。
Re: (スコア:0)
「元ノーベル賞受賞者」みたいな表現だといっているんでしょう
Re:元 Facebook の開発者 (スコア:1)
LIVE-GON(リベゴン)
Re: (スコア:0)
いちいちそういう指摘をしないといけないと思っているあたり、日本語ネイティブではないっぽいですね
Re:元 Facebook の開発者 (スコア:1)
どっちかというと個人の性格によるんじゃないでしょうか。あと、細かい指摘をするのはどっちかというとネイティブの方だと思うけど。それも頑固系の。
#正しい言葉遣いの指摘を「頑固」でくくるのも抵抗があるが。
LIVE-GON(リベゴン)
Re: (スコア:0)
せっかく#2180829があらかじめ釘さしておいてくれたのに…。
Re: (スコア:0)
memcachedはトランザクション出来ませんしそもそもデータベースじゃなくてメモリキャッシュです