並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 190件

新着順 人気順

q4mの検索結果1 - 40 件 / 190件

  • ドラゴンクエストXは「世界は一つ」を実現するためにどのようなサーバ構成にしているのか?

    スクウェア・エニックスの人気RPG「ドラゴンクエスト」シリーズの最新作「ドラゴンクエストX(ドラクエ10)」はシリーズ初のオンライン作品となりましたが、その舞台裏は一体どうなっていたのか。ゲームの世界観を支えるサーバシステムがどのように構成されているのかということや、ドラゴンクエストⅩならではの仕組みや機能から開発の苦労話まで、株式会社スクウェア・エニックス開発部プログラマ森山朋輝さんが語っています。 タイトル | CEDEC 2012 | Computer Entertaintment Developers Conference http://cedec.cesa.or.jp/2012/program/NW/C12_P0040.html 森山朋輝: 皆様、本日はお集まり頂きどうもありがとうございます。このセッションを担当させて頂きます、株式会社スクウェア・エニックス開発部所属の森山朋輝と

      ドラゴンクエストXは「世界は一つ」を実現するためにどのようなサーバ構成にしているのか?
    • MySQL を使ったお手軽メッセージキュー実装 - ドワンゴ 研究開発ブログ

      はじめに この記事では、MySQL を使って簡単なメッセージキューを手軽に実装する方法を解説します。 メッセージキューとは、メッセージを一時的に溜めておき、順次処理するための仕組みです。迅速なレスポンスが必要な Web アプリケーションにおいて、時間のかかる処理を非同期に行うために、バックグラウンドで順次処理していくような場合に利用できます。 簡単なメッセージキューと言っても、大規模な運用にも耐えられる程度の速度と堅牢性を持ちます。 また、ここで解説している方法で作られたメッセージキューは、弊社ウェブサービスであるニコニコ動画に最近追加されたtwitter連携機能でも利用しています。 メッセージキューを作るにあたって 今回実装するメッセージキューは メッセージの追加(push)を高速に行う事ができる メッセージの取得(pop)はある程度高速に行う事ができる 多くのクライアントから同時に p

      • GoとMySQLを用いたジョブキューシステムを作るときに考えたこと - ゆううきブログ

        【追記】2023年3月21日 YAPC::Kyoto 2023で、ジョブキューシステムFireworqの設計と運用実績も含めて発表されました。id:tarao ++ 【加筆修正】 2020年2月16日 執筆時から6年も経過していますが、たまたまこの記事を振り返る機会があったので、日本語がおかしいところを一部修正したり、一緒に取り組んだ方々の名前が書かれていなかったところを修正しました。 【追記】2017年12年24日 このエントリのジョブキュー実装がFireworqという名でOSSとして公開されました。id:tarao ++ github.com この記事ははてなエンジニアアドベントカレンダー2014の4日目です。 前回は Mackerelで採用している技術一覧とその紹介 - Hatena Developer Blog でした。 社内の開発合宿で、 id:taraoさん、id:hakobe

          GoとMySQLを用いたジョブキューシステムを作るときに考えたこと - ゆううきブログ
        • pixivの画像アップロードシステム

          pixivの画像アップロードシステム - Download as a PDF or view online for free

            pixivの画像アップロードシステム
          • blog.nomadscafe.jp

            PHPの勉強会なので、いままでお会いしたことのない方とお話ができてよかったです。 発表内容は大きくなってしまったmaster.phpファイルをどうやって高速に読むかというお話です。PHPではリクエストの終了とともに全てのメモリを捨ててしまうので、変わらないデータもリクエストの度にキャッシュからロードしなくてはいけません。大きなphpファイルがあれば当然毎回の読み込みがオーバーヘッドとなってきます。そんな環境でどうやってアプリケーションのパフォーマンスをあげていったのかを紹介しています。 スライドの中でfile sizeを小さくする必要があると書きましたが、@hnwさんによると、VM命令が多過ぎるのが問題で、構造を簡単にしたことでVM命令が減ったのがよかったのではとのことでした。非常に参考になりました。ありがとうございました そろそろ傷が癒えてきた。。 ISUCON5の本選にメルカリのインフ

            • STF Distributed Object Storage - Home

              Distributed Object Storage Made Easy! Use commodity hardware/software to build your own scalable object storage! Learn more » What is STF? STF is a simple, yet very scalable distribute storage system. STF powers sites like livedoor Blog, loctouch and many more, serving gigabytes after gigabytes of data. On one such system, it's serving 400Mbps of image at peak hours without a hitch. GET STF! STF i

              • livedoor ReaderのクローラとStreaming APIなどの話

                How Race, Age and Gender Shape Attitudes Towards Mental Health

                  livedoor ReaderのクローラとStreaming APIなどの話
                • ウノウラボ Unoh Labs: Q4Mを触ってみる

                  yukiです。そろそろクリスマスですね。みんな浮かれていればいいと思います!最近急に目が悪くなって、ツリーの赤色電球と居酒屋の赤提灯の色が判別出来なくなってきました。嘘です。 今回は、みんな大好きメッセージキュー、Q4Mを触ってみた感想を今更ながらレポートします。 公式ページはこちらhttp://q4m.31tools.com/ Q4Mはサイボウズラボの奥 一穂氏が開発されており、MySQLの5.1以上でストレージエンジンとして利用できるメッセージキューで、MySQLプラグインとしてGPLライセンスで配布されております。 特長 MySQLのストレージエンジンとして利用できるので、テーブル作成時にストレージエンジンを指定するだけで利用できます。 CREATE TABLE hoge ( ... ) ENGINE = QUEUE キューの作成(enqueue)は通常のレコード操作と同様にINSE

                  • Webアプリケーションにおける Job Queue システムの構成例と Worker を作る際に気をつけること - blog.nomadscafe.jp

                    Webアプリケーション内で処理を直列に実行せずにJob Queueに回して非同期に実行することが多くなって来て久しいと思いますが、そのおすすめ構成と気をつけることについてつらつらと。 1) 既存のデータベースをキューとして使う構成例 1つ目はMySQLなどのデータベースをキューとして用いる例。既にアプリケーションで利用しているデータベースにキュー用のテーブルを作成して利用します。データベースを利用したキュー管理の仕組みとしてJonk、Qudo、TheSchwartzなどがPerlでは有名どころです。 依存するミドルウェアが増えないので最もシンプルな構成になると思います。 上記の図ではWorkerはアプリケーション内で実行することで冗長性を確保しますが、キューを格納するデータベースはSPOFになります。しかし、、データベースに障害があった場合キューだけでなくすべてのサービスが停止すると思われ

                    • 京都観光を終えて - mala

                      Shibuya.pm Technical Talk #10 (2008-11-27) mala 最初: sm5377260 (lestrrat) マイリスト: mylist/9691133http://shibuya.pm.org/blosxom/techtalks/2008011.html

                        京都観光を終えて - mala
                      • mixiの年末年始対策 日記投稿システムの改善 - mixi engineer blog

                        朝晩冷えてきましたね。風邪など引いていませんでしょうか。さて、年末が近づいてくるこの時期に弊社のエンジニアが最も気になるのは、お正月。それも来年1月1日を迎えた瞬間です。 1日1日0時に何があるのでしょう?そう、mixiのサービスで最も日記が書き込まれるタイミングになるのです。個人的に「あけおめことよろアタック」と呼んでいます。今年は日記だけではなく、エコーでもメッセージが飛び交うことでしょう。この時期は携帯電話のキャリアでもさまざまな対策を行っていますが、ミクシィでも年末年始でもユーザの方に快適にサービス提供ができるように努めています 以下は昨年の年末年始の日記投稿数の推移です。青色が12/31から1/1、赤色が1/1から1/2になります 1/1の方が全体的に多いですが、特に年が変わる前後の投稿数は倍近くなっていることがわかります。この時に負荷により日記の投稿がしづらい状態になっていたの

                          mixiの年末年始対策 日記投稿システムの改善 - mixi engineer blog
                        • mixi Engineers’ Blog » 期間限定の新機能「エコー」登場

                          こんにちは。mixi開発部のyouheiです。 今回は先日8月4日にリリースした「エコー」について書きたいと思います。 エコーとは まずはエコーとはどういう機能かのご紹介ですが、プロモーションページがございますのでそちらをご覧いただければ幸いでございます。 http://mixi.jp/guide_echo.pl いくつか抜粋しますと、 あなたの"今"を一言にしてみませんか?誰かに伝えたいこと、ひとりごと等、何でもOK! 気軽な新コミュニケーション機能です。 たとえば、「今日はいい天気だな〜」という、ひとりごとから、「お腹すいたー!誰かランチにいこうよ!」というメッセージ的な使い方まで、「エコー」の楽しみ方はあなた次第! マイミクシィ同士で「エコー」を使うとホームにお互いの書きこみが表示されます。 気になった書きこみには、返信することもできちゃいます。あなたがふと書きこんだ一言に、思わぬ返

                            mixi Engineers’ Blog » 期間限定の新機能「エコー」登場
                          • @IT Special PR: DeNAのPerl使いたちに聞く モバゲーオープン化の裏にPerlアリ!

                            ケータイ向けSNS「モバゲータウン」で知られるDeNAは、Web企業としての側面は見えづらい。PC向けのECサイトやオークションサイトも運営しているが、比率として大きいのはケータイ関連事業だからだ。しかし、サーバ側を見てみれば、mixiやlivedoorと同様のWeb企業。PerlやMySQLを使いこなしてスケールアウトするノウハウに長けたエンジニア集団を抱えている。モバイル向けOpenSocial対応のプラットフォーム「モバゲーオープンプラットフォーム」を実装した2人のエンジニアに話を聞いた。 「オークションサイトのビッダーズや航空券販売サイトのSkygateではJavaが使われていますが、それ以外はほとんどPerlですね」 こう語るのは、DeNAの木村秀夫氏(ソーシャルメディア事業本部プラットフォーム統括部 システムグループ)だ。モバゲーはもちろん、「みんなのウェディング」や「ネッシー

                            • 2014年だけど Q4M の紹介をしてみるよ - Qiita

                              先日 MySQL Casual Talks vol.7 で LT をしてきました。 LT では Ruby(Rails) からカジュアルに Q4M を使える何かを作ったお話 として Q4M 周りのお話をしてきたのですが、そこで冒頭 "Q4M 使ってる人ー" と挙手を求めたら誰一人として手が挙がらなかったことに絶望してこのエントリーをしたためています。 (まーカジュアルだからなーカジュアルだから Q4M 使ってなくてもしょうがないからなー) (使ってないだけで知っている人はいたかもしれません、あと恥ずかしがり屋さん) このエントリーでは簡単な Q4M の使い方と特徴について説明していきます。 Q4M って Q4M は簡単に言うと DeNA の奥一穂さんが開発されている MySQL を使ったキューストレージです。 Q4M 自体は MySQL のストレージエンジンとして実装されているので、テーブル

                                2014年だけど Q4M の紹介をしてみるよ - Qiita
                              • Q4Mを簡単に導入する方法 - MySQL Casual Advent Calendar 2011 - blog.nomadscafe.jp

                                xaicronとネタが被ったようだけど気にしない>< livedoorでOperations EngineerやってるkazeburoだYo。最近livedoorからオープンソース化された3億ファイルを管理してるオブジェクトストレージ「STF」でも使ってるMessage QueueのQ4Mのインストール方法を紹介するよ! カジュアルだからインストールだけ! 知ってる人も多いと思うけどQ4Mはkazuhoさんによって開発されたMySQLのストレージエンジンとして実装されてるMessage Queue。livedoorではもちろん、mixiやDeNAをはじめソーシャルゲーム各社でも使われている。 Message Queueの説明や使い方はDIS_COMMENTでテーブルスペースフルの猫神様が書いてるので参考になるね! Perl Hackers Hub 第10回 ジョブキューで後回し大作戦―Th

                                • Q4M - a Message Queue for MySQL

                                  Q4M (Queue for MySQL) is a message queue licensed under GPL that works as a pluggable storage engine of MySQL, designed to be robust, fast, flexible. It is already in production quality, and is used by several web services (see Users of Q4M). To start using Q4M, download either a binary or source distribution from the install page, and follow the installation instructions. A small tutorial is also

                                  • Kazuho@Cybozu Labs: Q4M - MySQL 上で動作するメッセージキュー

                                    « ウェブアプリケーションにおけるHDDの正しい使い方 | メイン | Pathtraq リニューアルのおしらせ (リアルタイム検索機能の追加ほか) » 2008年01月15日 Q4M - MySQL 上で動作するメッセージキュー 数年来ずっと「RDBMSに統合されたメッセージキューがほしい」と言ってきたわけですが、昨年末にストレージエンジンをプラグインとして開発できる MySQL 5.1 が RC になっていることに気づき、自分で作ってみました。 Q4M (Queue for MySQL) は MySQL 5.1 のプラガブル・ストレージ・エンジンとして動作するメッセージキューであり、堅牢・高速・柔軟であるよう設計されています。昨年12月遅くに開発が開始され、まだ非常に原始的ですが、かなり高速に動作します。 q4m.31tools.com 自分の英語を日本語訳するというのも変なものですが

                                    • ウノウラボ Unoh Labs: PHP版 Parallel::Prefork で奥一穂さんと親に感謝しよう

                                      こんちにわ、去年末に入社した「ちわ」です、こんにちわ。 Perl には CPAN というものがあり、そこには様々なライブラリが登録されています。国内の方々も多くライブラリを登録されていますがその中で牧大輔さんの Queue::Q4M、奥一穂さんの Parallel::Prefork を PHP に移植したので今回は奥一穂さんの Parallel::Prefork のPHP版を紹介したいと思います。 弊社が提供しているサービスの「まちつく!mixi版」、「まちつく!モバゲー版」の地図を生成、Amazon S3 への転送をキューを使って処理していまして、そのキュー処理に Q4M を導入することになりました。キュー処理の主な流れは下記のようになります。 主な処理の流れ Web やバッチで生成キューをエンキュー 生成デーモンがデキューし地図を生成 正常に地図を生成できたら転送キューにエンキュ

                                      • Kazuho@Cybozu Labs: 監視とは継続的なテストである、という話 (もしくは cronlog とテストスクリプトを組み合わせた監視手法について)

                                        結論から先に。cronlog を使えば、アプリケーションのテストコードと全く同じ形式で、監視用のスクリプトを書くことができます。プログラマが監視ツールの記法を覚える必要はありません。これは、プログラマが運用も行うケースでは特に有効な手法だと思います。 先週公開した Kazuho@Cybozu Labs: crontab を使って効率的にサービス監視する方法 というエントリで、crontab と拙作の cronlog を用いてサービス監視を書く手法を紹介しました。しかし、挙げた例はいずれも ping や http のテストといった外形監視の手法です。RDBMS とウェブアプリケーションのみから構成されるサービスならそれだけで十分でしょう。 しかし、外形監視だけでは、メッセージキューのような非同期処理の遅延を観測することはできません。また、http のログを監視して、エラーレスポンスや平均応答

                                        • Kazuho@Cybozu Labs: Parallel::Prefork - Perl でマルチプロセスなサーバを書く方法

                                          « Q4M (Queue for MySQL) 0.3 リリース | メイン | Q4M Version 0.4 で高速なクローラを書いてみた » 2008年04月04日 Parallel::Prefork - Perl でマルチプロセスなサーバを書く方法 Perl でマルチプロセス処理を行う場合は Parallel::ForkManager を使うというのが定番かと思います。しかし、このモジュールはシグナル処理を前提とした作りになっていない注1ため、シグナルを受信するまで動き続けるようなサーバを書きづらい、という問題がありました。 そこで、Parallel::ForkManager の API は、ほぼそのままに、シグナル処理が可能なプロセス管理モジュールを作ることにしました。それが Parallel::Prefork です。Parallel::Prefork を使うことで、Gracef

                                          • YAPC 2012 - 続・Mobage を支える技術

                                            Me 嶋田 裕二 (Yuji Shimada) @xaicron ソフトウェアエンジニア Me CPAN Author Me デザインセンスがとてもよい Me New! 最近ぎっくり腰になりました Works DeNA Co., Ltd. Mobage オープンプラットフォーム Mobge API Gadget Server (Proxy Server) 宣伝 宣伝 春頃に「Mobage を支える技術」という本を書きました。 ⇡これね 他にうちの部では @zigorou @nekokak の二人が書いています。 ちなみに ちなみに JPA 理事 JPA 理事 路傍の石 はい 紹介ブログの名言集 @kazeburo 35億PV/day の世界では1万回に1回しか起きない事が1秒に8回起きる。100万回に1しか起きないことが1日に3500回起きる @Yappo DeNA のノウハウが12個も馬

                                            • Kazuho@Cybozu Labs: Q4M Version 0.4 で高速なクローラを書いてみた

                                              « Parallel::Prefork - Perl でマルチプロセスなサーバを書く方法 | メイン | Japanize for IE バージョンアップのおしらせ » 2008年04月07日 Q4M Version 0.4 で高速なクローラを書いてみた 本日、MySQL 5.1 のプラガブルストレージエンジンとして動作するメッセージキューQ4M のバージョン 0.4 をリリースしました。本バージョンでは、条件付購読 (conditional subscription) という、特定の条件を満たす行だけをメッセージキューから読み込む機能に対応したのですが、これを使って、クローラを書いてみました。 使い方は以下のとおりです。 # url テーブルを作成 % mysql -p test mysql> CREATE TABLE url ( id int(10) unsigned NOT NULL

                                              • YappoLogs: はてなのお気に入りアンテナをTwitter Clientで見れるゲートウェイ「Hatetter」作りました

                                                はてなのお気に入りアンテナをTwitter Clientで見れるゲートウェイ「Hatetter」作りました 注意:ブックマークだけでなく、お気に入りアンテナのフィードを使うようになりました。 はてブのお気に入りリストってRSSリーダとかで見たりするのが多いんですが、もっとTwitterのようにカジュアルにウオッチしたいと思って、お気に入りリストのRSSをTwitter API互換のFeedに変換するサーバを書きました。 Hatter - 太っ腹にソースコードも公開してるので、自宅サーバとかに置いて使うってのもできます。 たとえばid:acotieがお気に入りに入れてる人達のブックマークをTwitter風に変換したい時は http://hatetter.blogdb.jp/acotie/statuses/friends_timeline.json もしくは http://hatetter.b

                                                • 第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(1) | gihyo.jp

                                                  本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはnekokakさんこと小林篤さんで、テーマは「ジョブキューで後回し大作戦」です。 ジョブキューとは 一時代前は時間のかかる処理もすべてWebアプリケーションで行っていましたが、最近ではいろいろな部分で処理の非同期化が行われるようになってきました。たとえばWebのインタフェース側ではAjaxがその最たるものでしょう。アプリケーションのバックグラウンド側でも今回のテーマであるジョブキューと呼ばれるしくみが多く利用されるようになりました。ジョブキューを賢く上手に利用することで、ユーザにストレスを与えることなく、またサーバのリソースも有効に使えるようになります。 ジョブキューは延々と動き続けるバッチ処理、というイメージが最もわかりやすいでしょう。通常のバッチ処理であればcrondを利用し、一定周期でプログラムを起動して

                                                    第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(1) | gihyo.jp
                                                  • Kazuho@Cybozu Labs: メッセージキュー事始め with Q4M

                                                    « YAPC::Asia 2008 で Pathtraq について話してきました | メイン | MySQL のクエリ最適化における、もうひとつの検証方法 » 2008年05月27日 メッセージキュー事始め with Q4M 今日、奥が開発し Pathtraq でも使っているメッセージキュー Q4M について説明する機会があったので、自分の頭を整理しながらスライドに起こしてみました。メッセージキューとはそもそも何か、という所から始まって、Q4M の内部構造と使用方法、さらには、ウェブサービス等でキューを使うべきいくつかのシナリオについても書いてありますので、よろしければご覧ください。

                                                    • mixi の年末年始対策 2009-2010 - mixi engineer blog

                                                      こんにちは。パートナーサービス部の加藤和良です。 2008年末に、mixi の年末年始対策について紹介しました。今回は、ここ数年の年末年始対策の歩みと、今年の対策について紹介したいと思います。実をいうと、設計も実装も自分じゃなかったりするのですが、このまま歴史に埋もれていくのも悲しいので、関係各所に取材してみました。 2008年末をふりかえる まずは、2008年末をふりかえってみましょう。 あのころはまだ mixi の機能も少なく、年末年始の負荷は主に日記に集中していました。そこで当時は ID Generator の改善 - mod_perl をあいだにはさんで MySQL への接続本数を減らす 最新情報DBへの書き込みを非同期に - Q4M をつかって負荷を時間軸で分散する という2つを日記に実装したのでした。 しかし、2008年末から2009年のお正月にかけて、mixi はまたも日記に

                                                        mixi の年末年始対策 2009-2010 - mixi engineer blog
                                                      • 死んだプロセスのスタックトレースを自動収集するデーモンを書いた (そして、その出力を開発者に送ってあげると喜ばれるよという話) - kazuhoのメモ置き場

                                                        死んだプロセス (あるいは kill したプロセス) の core イメージから自動的にスタックトレースを収集するデーモンを書いたので、これをセットアップしてサーバにインストールしとくといいかもです (kaztools/bt_cores at master · kazuho/kaztools · GitHub)。Linux のみ対応*1。使い方は bt_cores --help とするか、perl Makefile.PL && make install して man bt_cores。 具体的にいうと、Q4M とか Incline とか kazuho product が落ちたり固まったりしたらスタックトレース送ってくれると、私がうれしいです (古いバージョンのスタックトレースだととても悲しいです)。コアファイルは内部データがいろいろ入ってるから外部の人には見せられないけど、スタックトレース

                                                          死んだプロセスのスタックトレースを自動収集するデーモンを書いた (そして、その出力を開発者に送ってあげると喜ばれるよという話) - kazuhoのメモ置き場
                                                        • Shibuya.pmでしゃべってきました - 最速転職研究会

                                                          遅くなったけど資料、と、動画。最近のお仕事について話しました。 http://svn.coderepos.org/share/docs/mala/20081127-shibuyapm10-lt/index.html http://svn.coderepos.org/share/docs/mala/20081127-shibuyapm10-lt/main.txt 転職とか退職とか何のことだか良く分からない。

                                                            Shibuya.pmでしゃべってきました - 最速転職研究会
                                                          • Q4M - a Message Queue for MySQL

                                                            Q4M (Queue for MySQL) is a message queue licensed under GPL that works as a pluggable storage engine of MySQL, designed to be robust, fast, flexible. It is already in production quality, and is used by several web services (see Users of Q4M). To start using Q4M, download either a binary or source distribution from the install page, and follow the installation instructions. A small tutorial is also

                                                            • YAPC Asia 2010 でのスライド公開と補足、あと感想など - 日向夏特殊応援部隊

                                                              はい、@941 さんを初めとして、@lestrrat さん、JPA の皆様って僕もですけど、それとボランティアスタッフの皆さん、スピーカーの皆さん、ご来場者の皆さん3日間お疲れ様でした。そして、今年も盛り上がりましたね。 さて、後半だいぶ時間が押して早口になってしまいましたが当日のスライドを公開します。 Inside mobage platformView more presentations from zigorou. さてと特に後半の Q4M を複数台構成にした際の負荷のばらつきですが、INSERT の方は DNSRR とかでやればいいのですが、queue_wait() して実際に何かタスクを実行する際に、処理時間に偏りがある場合、queue_wait() の sleep が無視出来なくなって片側に接続が偏ってしまう現象が何度か起きました。 これを解決するために、ひとつのQ4Mに接続す

                                                                YAPC Asia 2010 でのスライド公開と補足、あと感想など - 日向夏特殊応援部隊
                                                              • ハタさんのブログ(復刻版) : PHPカンファレンス2009「Q4MとFlareを使って スケーラブルなサービスを作る!」の資料

                                                                すいません、遅くなっていましたが、とりあえずここに置いておきます。 ref - http://www.slideshare.net/nowelium/building-highscalable-web-applications-using-q4m-and-flare Building High-Scalable Web Applications Using Q4M and Flare View more documents from nowelium. Ustreamはこの辺 ref - http://www.ustream.tv/recorded/2107541 いくつか質問があったものは、別途書きます

                                                                • ウノウラボ Unoh Labs: 「ちわさん、奥さんが来ましたよ」

                                                                  「え!?妻が会社に!?」と一瞬戸惑いましたが奥一穂さんでした。 別に妻が会社に来てもやましいことなど何もありませんが、こんちには、ちわです。こんにちわ。 以前の記事でもご紹介した通り弊社が提供しているまちつく!というサービスでは Q4M 0.9.0 を利用して地図の画像生成と Amazon S3 への転送を行っています。 その Q4M に障害が発生し弊社ではどうも解決できそうにないので Q4M の作者の奥一穂さんに相談させてもらいました。 その際は、デッドロックのバグを踏んでいる可能性があるので Q4M を 0.9.1 以上のものしてみてはどうかと返答を頂きました。 弊社では 64bit 環境であった為、0.9.2 は除外され、0.9.3 は新しすぎるので 0.9.1 を採用することにし、バージョンアップ後に障害もなく安定稼働を続けています。 そんな経緯もありまして、先日弊社に奥一

                                                                  • オープンソース開発者がDeNAを選ぶ理由

                                                                    This document discusses the history and capabilities of Q4M, an open-source message queue plugin for MySQL. It was created in 2008 by Cybozu to provide a robust, fast messaging system accessible via SQL. Major Japanese companies like DeNA, Livedoor and Mixi use Q4M for asynchronous communication between services. The document also covers related projects like Mycached, a memcached-like plugin, and

                                                                      オープンソース開発者がDeNAを選ぶ理由
                                                                    • PostgreSQL で簡易に MQ - 木曜不足

                                                                      「PostgreSQL で安くて早くてうまい MQ 作ってね」的ミッションがどこからともなく降ってきたので、色々調べて試してみたところ、案外よい方法が見つかったので、まとめてみた。 [4/24] 複数キューを扱う場合の方法を tableoid を利用するように更新。 [4/27] フィルタ条件を付ける場合の記法について追記(WHERE 句内の評価順の明示的指定) [4/30] 優先順位に ORDER BY は利用できない旨追記 鍵は advisory lock。PostgreSQL 8.2 以降の機能だ。 メッセージキューと言っても、安くて早いわけだからもちろんフルフルの高機能なわけなく、いろいろ制限がある。 receiver は複数可。メッセージは receiver の一つが受信する。ブロードキャスト/マルチキャストは対象外。 ack あり。ack せずに receiver が落ちた場合

                                                                        PostgreSQL で簡易に MQ - 木曜不足
                                                                      • Kazuho at Work: Q4M Presentation Slides at MySQL Conference

                                                                        Today at MySQL Conference & Expro 2009, I did a presentation introducing / explaining Q4M. Thank you to people who came to listen. The presentation slides I used can be found on slideshare (slideshare). Tomorrow (Apr 23) from 6:10pm, I will be doing another presentation at Percona Performance Conference, held at the same location, to describe the techniques (mainly MySQL UDFs) used to squeeze maxi

                                                                        • BIGLOBEクラウドホスティング

                                                                          ご不便おかけしまして申し訳ございません。 ただいまサーバが混み合っているか、メンテナンス中です。 しばらくたってから再度お試しください。 Sorry for the inconvenience. The server is now busy or under maintenance. Please wait a while, then try again.

                                                                          • STFで気づいたら8ヶ月間に及んだオペレーションがいつのまにか終わってた件 : D-7 <altijd in beweging>

                                                                            本当に手前味噌な話ですけど、STFさん。今回も「あー、俺いいソフトウェア書いた」と満足できたので、この記事を書きます。ちなみにSTFとはみんな大好きPerlで書かれた分散オブジェクトストレージです。(github) tl;dr; ああ、俺いいコード書いた8ヶ月間最初のスクリプトをキックする以外何もしてないけど、18億個のデータを無事格納しおえた去年の夏くらいに「お、そろそろ今ある物理ストレージサーバーのディスク容量一杯になるぞ」という状態が観測されたので 追加のストレージを導入していただいて、そこから「現在格納されているオブジェクト群を新しいストレージにまた均等に均す」というオペレーションを開始しました。もちろんシステムを停止させることができればあっという間に終わる仕事なんですが、ユーザーのデータがのっているので当然止めるわけにはいかないです。そこで システムはオンラインのまま、遅延等を発

                                                                              STFで気づいたら8ヶ月間に及んだオペレーションがいつのまにか終わってた件 : D-7 <altijd in beweging>
                                                                            • Q4M + Parallel::Prefork + Signal handling + Log::Minimal - tokuhirom's blog

                                                                              conditions precedent: use daemontools & multilogPoints: make DB connection after forkdo not trap SIGTERM while calling queue_wait(), so that the process can be shut down while waiting for the response from q4mremove $time and add $PID for log. Because I'm using multilog. It prints the tai64n automatically(and, tai64n is better).package OreOre::Worker::Base; use strict; use warnings; use parent qw/

                                                                              • YappoLogs: Q4MをMacPortsのMySQL環境に入れる方法

                                                                                Q4MをMacPortsのMySQL環境に入れる方法 macportsでmysql入れると /opt/local/lib/mysql5/mysql とかいう独創的な所にライブラリが入るので、そのまんまのQ4Mのconfigureじゃ./configureすら上手く動かないし、ググっても良くわからないのでてっとり早くconfigure.inを書き換えたよ。 パッチはhttp://gist.github.com/94339から 実行令とかは下記の通り。 $ patch < ../for-macports.patch $ autoconf # include ディレクトリを追加するのが必要 $ CPPFLAGS=-I/opt/local/include ./configure --with-mysql=/opt/local/var/macports/sources/rsync.macports.

                                                                                • Q4Mを簡単に導入する方法 for MySQL 5.6 - blog.nomadscafe.jp

                                                                                  以前、「Q4Mを簡単に導入する方法 - MySQL Casual Advent Calendar 2011」で紹介したQ4M専用MySQLのセットアップスクリプトのMySQL5.6対応版を作りました。 kamipo先生によると、プラグインをあとからビルドしてMySQLに追加する事は推奨されていないとのことなので、Q4MのソースコードをMySQLのソースコードツリーにコピーしてから一緒にビルドします。これは同じくkamipo先生のmysql-buildを参考にさせて頂きました。 #!/bin/sh set -e MYVER=5.6.15 Q4MVER=0.9.11 CDIR=$(cd $(dirname $0) && pwd) cd /usr/local/src if [ -f $CDIR/mysql-$MYVER.tar.gz ]; then cp $CDIR/mysql-$MYVER.t