“NoSQLがあればMySQLはいらない”という流れに一石を投じた ディー・エヌ・エー システム統括本部IT基盤部インフラ担当プリンシパルアーキテクトMySQLエバンジェリスト 松信嘉範氏 システム統括本部IT基盤部 樋口証氏 今年4月に米サンタクララで開催された「MySQL Conference & Expo 2011」において、ディー・エヌ・エー(DeNA)が「Corporate Contributor of the Year 2011」を受賞した。同社が開発したMySQLのプラグイン「HandlerSocket」が評価されたためだ。HandlerSocketは、MySQLのフロントエンドを置き換え、SQLを介さずに素早い処理を可能にする技術。MySQL Conferenceの位置付けや、HandlerSocketの開発の経緯などについて、DeNAシステム統括本部IT基盤部インフラ担当
こんにちは、宇津井です。 弊社ではゲソてんというゲームプラットフォームを運営しております。ゲソてんではサービスリリース当初から主にキャッシュ的な役割でRedisを導入していました。つい先日の事ですが訳あってRedis 2.6からサポートされたRedis Sentinelを採用しました。今回は、採用に至った経緯をご紹介します。 簡単なシステム構成 パフォーマンスは良いし、Memcachedには無い便利な機能を提供するRedisですが約一年間運用していくつかの問題が出てきました。 Redisサーバーが突然高負荷に陥るするとWebサーバーも高負荷に陥るRedisのReplicationは張ってるけどアプリケーション側でRedis Slaveへフェイルオーバーしない(MySQLを直接参照する)Redis落ちると恐らくMySQLサーバーが耐えられない(落ちた事無いけど)という事で対策を行ってきました
rails が追加しているメソッド。真ならオブジェクト自身を返して、偽なら nil を返す。 object.present? ? object : nil. と同じ。下記のような、パラメータをチェックして使うよくある感じのコードが state = params[:state] if params[:state].present? country = params[:country] if params[:country].present? region = state || country || 'US' こんな風に一行にまとまる。便利かも? region = params[:state].presence || params[:country].presence || 'US' Rails 3, またはRails 2.3.8 くらいから使えます。
昨日の日記で少し書いたのですが、現在仕事でokuyamaをメインストレージとして アプリケーションを作成中、そこで感じたことをメモ。 okuyama作ってますが業務ではkvsはキャッシュとしてしか使ったことなかったので。。。 メインストレージといっても、あくまでもRDBMSとセットで利用します。 ほとんどはRDBMSに格納されているんですが、一部のデータを okuyamaに格納します。 そのデータは日に数万から、数十万増加する試算です。 それをシステムからリアルタイムに何種類かのソートパターンで表示します。 何ともチャレンジングな。。。 挑戦しがいがあります。 で、早々にRDBMSの設計は終わらして、kvsに格納するデータの設計です。 okuyamaはタグという概念があるので少しkey-valueの概念とは異なりますが、 多分他の場合も応用はきくかな。 アプリが都度表示する対象件数は数百件
分散型のキーバリューストア(分散KVS)には、オープンソースソフトや商用のもの、サービスとして提供されるものなど、さまざまな種類がある。これらをすべて同じだと思ってはいけない。その構造や特徴はバラバラであり、ある分散KVSのデータは別の分散KVSに移行するのは困難だ。 既存のRDBMSの資産を分散KVSに移行するのが容易ではないことはよく知られている。同様に分散KVS間の移行もかなり難しい。安易に移行できると考えていると、苦労することになる。 大きく異なるテーブル構造 現在、分散KVSと呼ばれるデータベースには、以下のようなものがある。 ・Amazon SimpleDB(Amazon) ・Apache Cassandra(Apache) ・BigTable(Google) ・Flare(GREE) ・kumofs(えとらぼ) ・memcached(Danga Interactive) ・R
Clean Craftsmanshipをいただきました。いつものボブおじさんのClean XXXシリーズ。 ボブおじさんの書籍シリーズの良いところは、自分は以下のように見ている。 前提知識が少なくても出来る限り理解できるように練られている。 高尚な話ではなく、現場叩き上げの話が中心。 なんとなく、これおかしいよなぁと薄々感じつつも、現場の空気で言えないようなことを、ズバっと言ってくれる(Clean Codeでの「コメントは害悪」など)。 今回も個人的に面白かった部分を取り上げたい。 第2章 この章は基本的にTDDの実践をサンプルを使って詳しく記載している。基本的な部分から解説されているので、TDDについては初めてという初心者の人でも全く問題なく理解できるだろう。前提知識不要というのは素晴しい。 「デバッガーが得意になることを目指すべきではない」 テストコードを数行書き、エラーやテスト失敗を
最近また超並列DBのデザインを進めたりRethinkDBの話を書いてみたりとまたRDBMSづいているが、そんなことをしているうちに世の中では実際に並列DBが登場してしまった。 INGRES,POSTGRES,Illustra(と、誰も知らないMariposa)と、RDBMSの世界で革新的な仕事をしているMichael Stonebraker博士。最近何やっているのかと思ったらいつの間にやらH-Storeなる新型のストレージに携わっていて、それがいつの間にかSQL機能をもってVoltDBというプロダクトとしてやってきた。かれこれ40年近く業界の第一線にいることになる。 「NoSQL」を上回る性能を目指す次世代型高速SQLデータベース「VoltDB」登場 などという記事を見てびっくりした次第だ。NoSQL並の性能とRDBMS並のACID準拠、そしてSQL構文が使えるという、これまた夢のようなシ
データベースには、WAL = Write Ahead Log(ログ先行書き込み)というテクニックが利用されていることが多い。WALとは、テーブルスペースなどに存在する実際のテーブルデータに対して更新を反映するまえに、ログに更新の内容を書き込もうというものである。 事前にロギングを行う仕組みは全てWALと呼ばれる。MySQLで言えばInnoDBにおいてRedoログとして利用されるログもWALであるし、MySQL Clusterのディスクテーブル利用時のUndoログだってWALの一種である。現在開発中のストレージエンジンであるFalconやMaria(MyISAMにクラッシュリカバリやトランザクション機能をつけたもの)もWALを搭載する予定である。もちろんOracleやPostgreSQLなど他のRDBMSでもWALが搭載されている。 用途、つまりRedoなのかUndoなのかということに因らず
ちょっと小旅行に出ている間にアクセスが伸びていて、おかげさまで前回のVoltDBのエントリが大人気だったようだ。まだまだ書き足りない部分がいっぱいあったので、補足する意味も込めて書き足してみたい。それは、H-Storeが従来型RDBMSとどれほど異なったシステムか、ということだ。インターフェースの話や大まかな話はしたが、前提となる部分の話はずいぶん抜けてしまっていた。 NoSQLを超えるSQLデータベース「VoltDB」。Cassnadraとベンチマーク対決! で、実際にCassandraと比べて検討している Key-Value Benchmarking という記事が紹介されていて興味深い。で、なおかつ勝っていると言うから痛快だ。まあ個人的にはこの勝負は高々3ノードしか使っていない時点でスケーラビリティに勝るKVSにずいぶん不利な内容だな、と言わざるを得ない。せいぜい12ノードぐらいでしか
正月早々インフルエンザにかかって寝込んだmikioです。電車に乗る時や繁華街などに出る時はマスク着用が必須ですね。さて今回は、Tokyo Cabinetで実装したテーブル方式のデータベースについて紹介します。意外にどうして強力な機能なので、このネタは連載することを予告します。 テーブルデータベースとは 簡単に言えば、リレーショナルデータベースのテーブルのように、複数の列からなるレコードを格納できるデータベースです。SQLや表結合などの複雑な機能はサポートしませんが、そのぶん高速に動作します。つまり、DBMの速度で動くリレーショナル風データベースです(厳密にはリレーショナルデータベースではありません)。 TCの基本となるハッシュデータベースは、単純なkey/value型のデータベースであり、つまりキーにも値にもスカラ(数値や文字列などの特に構造を持たない単一の値)しか格納することはできません
元は毎日新聞のこの記事。 警察庁有識者会議:サイト管理者が通信遮断を 匿名悪用で パソコン(PC)の遠隔操作事件を受け、発信元の特定を困難にする匿名化システム「Tor(トーア)」を悪用した犯罪対策を検討していた警察庁の有識者会議は18日、サイト管理者の判断で通信を遮断することが抑止に効果があるとする報告書をまとめた。警察庁は提言を踏まえ、インターネット接続事業者の業界などに自主的な取り組みを促す。 よく読めば、「ISPが Torをブロックする」なんてことはどこにも書いてないのですが、なぜか話がどこかで捻じ曲がってしまい、国内だけでなく海外でも報道されています*1。Tor Projectもこんなツイートをしています。 Unfortunately, NPA recommends banning Tor in Japan, ur1.ca/dfu9c. NPA caught suspect, wh
Wikipedia英語版のバックエンド、MySQL 5.1からMariaDB 5.5へ移行完了との報告 これまでMySQL 5.1のFacebookによるフォークを利用していたWikipediaが、MariaDBへのマイグレーションを進めています。4月22日、英語版とドイツ語版のWikipediaのバックエンドデータベースが、MariaDB 5.5へのマイグレーションを完了したと報告されました。 なぜMySQL 5.5ではなくMariaDB 5.5を選択したのか。Wikimedia Foundationのサイトアーキテクト Asher Feldman氏は明確な形での説明は避けつつ、次のように書いています。 That said, MariaDB’s optimizer enhancements, the feature set of Percona’s XtraDB (many overla
Cドライブの容量が足りなくなってきた場合、ゴミ箱などの不要ファイルを削除するのが基本だが、それでもまだ容量不足は解消されない、という場合、数ギガバイトを占拠するページキャッシュの削除という奥の手がある。Cドライブの「pagefile.sys」 を消せるようにするテクを解説しよう。 ページングファイルとは、Cドライブの一部を、仮想メモリとして利用する機能。メモリの容量が少ない場合の補助機能だが、メモリを大量に搭載している場合には無用の長物。 Cドライブの容量を確保したい場合にはページングファイル、具体的にはCドライブにある「pagefile.sys」 を削除しよう。ただし、このファイルを削除できるのはページングファイルを無効にしてから。コントロールパネルの「システム」の深部にある設定を変更しよう。 ページングファイルを無効にすれば、「pagefile.sys」 は削除できるようになるし、以降
フェルミ推定のお話 「1台のバスにゴルフボールは何個入りますか?」 「シカゴにピアノ調律師は何人いますか?」 「東京に電柱は何本ありますか?」 Google入社試験などでよく出題されるフェルミ推定の解き方。 ビッグデータを短期間で推定するための着想・工程・計算方法。 電話のお話 PSTN(公衆交換電話網)への入り方。電話の切断理由コードの取得方法。 Asteriskを使ってパソコンをPBX(構内電話交換機)にする方法。 ファイルシステムのお話 NTFS、EXT4、XFS、ZFSなどの特徴とジャーナリング構造。 rm -rfコマンドで誤って消したファイルを直ちに復活させる方法とか。 性能評価方法、新しいファイルシステムBtrfsのご紹介。 Androidのお話 Android端末にカスタムROMを流し込む方法。ADBドライバの使い方。 Google Playを経由しないAPKの管理方法。Go
AP通信「ホワイトハウスで爆発」ツイート→株価下落→実はハッキングによる「誤報」2013.04.24 04:45 福田ミホ 米国時間23日午後1時7分(日本は24日午前2時7分)、AP通信から衝撃的ツイートがありました。 速報:ホワイトハウスで2度爆発、バラク・オバマが負傷 でも幸い、これはAP通信のTwitterアカウントがハックされたことによるニセのツイートでした。ホッ...。 ただ、このツイートのせいで金融市場は一時大混乱しました。米国株式とドル相場は一時急落し、逆に米国債と金相場は急上昇を見せました。この反応の速さ・大きさは、下のダウ平均のチャートで見ることができます。 でもその後AP通信が同社WebサイトでTwitterアカウントがハックされたことを発表し、相場はすぐに元に戻りました。ホワイトハウスからも無事を確認する発表がありました。 ちなみに、問題のツイートだけを見てもおかし
日本スマートフォンセキュリティ協会(JSSEC)は4月23日、Androidアプリを開発する際にセキュリティを確保するための手法についてまとめたガイドラインの最新版、「Androidアプリのセキュア設計・セキュアコーディングガイド」2013年4月1日版を公開した。7月31日までの間、ガイドに対するパブリックコメントも受け付けるという。 Androidアプリのセキュア設計・セキュアコーディングガイドは、Androidアプリの開発者を対象とした文書だ。アプリケーション開発の現場での利用を想定し、多数のサンプルコードを交えながら、セキュリティ上留意すべきポイントについて解説。安全なAndroidアプリを設計、実装するための必要事項を紹介している。2012年6月の公開以降、20万回以上ダウンロードされているという。 新版では、2012年以降多数の事例が報告されている「WebView」および「HTT
Posted: 2013.04.23 / Category: WebDesign WebデザインツールとしてFireworksとPhotoshopがよく挙げられますが、私はFireworksをメインに使用しています。理由はFireworksと比べるいろいろと不便な点があったからなのですが、ちょっと調べたらいろいろと知らないだけだったのでメモしておきたいと思います。 Photoshopってキャンバスで直接選択できなくね? Fireworksは選択ツールでキャンバスでオブジェクトを直接選択できるのに、Photoshopはレイヤーから選択しないといけないから直感的じゃないですよね。いえいえ直接選択もできますよ。 左パレットから「移動ツール」を選択ます。そのままだと選択されているレイヤーを移動させるだけのツールですが、「cmd + 左クリック」することで選択することができます。 ドラッグすれば範囲
JRubyでコード書いてるとrspecを起動するたびに永遠にも等しい待ち時間が苦痛で苦痛で苦痛で。 素のrspecで5.6秒、rspecを実行するようにRakefileを書いた rake test で9.4秒、bundle exec rake test に至っては19.7秒という永遠にも等しい時間を必要とする。こうなると生きるのがつらくなってくる。 で、調べてたらsporkなるものがあるらしいんだけど試してみてもなんかいまいちうまくいかない。(うまく動いた、末尾の追記参照) んでさらに調べてたら、そもそもjvmの起動コストについてはNailgunという仕組みをつかってパスできるっぽい。世の中のRailsアプリだとRailsまわりのライブラリのロードがさらに辛いらしいが、まあそこは今の自分には関係ないのでパス。jvm起動コストだけなんとかなればいいや。 ということで、簡単。以下のようにする。
日本スマートフォンセキュリティ協会(JSSEC)の技術部会アプリケーションWG「セキュアコーディンググループ」は、Androidスマートフォンのアプリ作成におけるセキュリティ確保の手法についてまとめた「Androidアプリのセキュア設計・セキュアコーディングガイド」の2013年4月1日版を、23日に公開するとともに、同ガイドへのパブリックコメントの募集を開始した。 「Androidアプリのセキュア設計・セキュアコーディングガイド」は、Androidアプリのセキュリティを考慮した設計・開発のノウハウを集めた文書で、アプリ開発現場で「使う」ことを想定した文書構成をとっている。 各テーマの文書は、サンプルコードセクション、サンプルコードの背景にあるセキュリティ観点の留意事項をまとめたルールブックセクション、さらにセキュリティの理解を深めるための話題をまとめたアドバンストセクションで構成する。 2
練習はとても大事です。ソフトウェア開発企業「37signal」のJason Friedさんは「人は常に練習の時のようにうごくもの」だと言っています。スポーツでも仕事でも特定の分野ですばらしい活躍をしたいのであれば、練習をサボっていてはダメです。なぜなら、人間は練習を通じて習得できる「慣れ」からほとんどの行動をおこしているからです。 この考え方は、シンプルで当たり前のことだと思われるかもしれません。しかしFriedさんは、練習中の小さな積み重ねがいかに後々大きな違いを生むか、すばらしい例をあげて説明しています。 ニセモノの拳銃を使った護身術のクラスでFriesさんの先生は、パートナーと順番を交代する時に拳銃を手渡しするのではなく地面に置いてから交代するようにと繰り返し言っていたそうです。 なぜこんなことをするのだろうと不思議に思いました。パートナーはすぐ隣にいるのに、なぜいちいち拳銃を地面に
2013年春の新作、Illustratorのチュートリアルをvector tuts+から紹介します。 チュートリアルはステップごと詳しいキャプチャ付きで、英語が苦手な人でも雰囲気は伝わると思います。
MySQL/MariaDB向けのストレージエンジン「TokuDB」を開発する米Tokutekは4月22日、初のオープンソース版となる「TokuDB 7.0」を公開した。MySQLで50GB以上のビックデータの活用を実現できるという。 TokuDBは、マサチューセッツ工科大学(MIT)、ラトガース大学、ニューヨーク州立大学の研究者らが開発したMVCCおよびACID準拠のストレージエンジン。書き込み中心のワークロード向けに設計されており、高速処理と拡張性を特徴とする。独自開発した「Fractal Tree」技術を利用し、MySQLやMariaDBでテラバイト級のストレージを利用できるようにするという。また、INSERT処理やクエリの速度も改善されるとのこと。圧縮、ホットスキーマ変更などの機能も備える。 これまではプロプライエタリのソフトウェアとして提供されていたが、バージョン7.0では「コミュ
少し前から一部界隈で話題になっているブログがある。 そのブログは、はてなダイアリーにおいてChikirin氏を超えるペースではてブを獲得しているにも関わらず、知名度はあまり無い。 なぜなら獲得ブクマのほぼすべてがセルフブックマークによるもので、他の人はほとんどブクマしていないからだ。月に何千件ものペースで記事を投稿し、その全てにセルクマすることで、月何千のペースでブクマを獲得している。 (上の図は「ある月に書いた記事が合計何ブクマ獲得したか」をはてなカウンターを使ってカウントした。) 記事内容ははてブで話題になっている記事へのリンクを一行とamazonアソシエイトというシンプルなもの。個人ニュースサイトでリンク一つにつき一記事を作っているような感じ。これを一日100件とかそういうペースで投稿する。 はてなダイアリーで「はてブで話題になっている記事」に「言及」するとはてブエントリーページの「
Githubユーザーshanselmanさんが、「自分のブログにコメントスパムを書き込もうとしたスパマーが、バグか何かでこれを書き込んできたよ」と、スパマーが使っていたテンプレートらしきものを公開して、Hacker Ne […] Githubユーザーshanselmanさんが、「自分のブログにコメントスパムを書き込もうとしたスパマーが、バグか何かでこれを書き込んできたよ」と、スパマーが使っていたテンプレートらしきものを公開して、Hacker Newsでも話題になっています。 以下のような感じで100行以上あるのですが、 { {I have|I've} been {surfing|browsing} online more than {three|3|2|4} hours today, yet I never found any interesting article like yours.
サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
メモリリークに悩まされている技術者は多いだろう。メモリリークが嫌でGCという技術が開発されたといっても過言ではないし、歴史的にはC++からJavaへシフトが起きた大きな理由のひとつといっていい。Unix系の簡単な定義でいえば、ヒープ領域を指すポインタ(アドレス)をロストしてしまえばそのメモリはもう漏れたといってよい。たとえばこういったコードだ。 struct { int i; char c; } spam; int main(){ void* p; int i; for(i=0; i<1024; ++i){ p = malloc(sizeof(struct spam)); } pause(); } このコードではpause(3)の時点で約5KBのメモリが漏れている。free(3)を使えばメモリをOSに返却できるが、アドレスが分からないので返却できない。 ところが、ここでいいたいのは、メモリ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く