タグ

asyncに関するyuguiのブックマーク (18)

  • 次世代バックグラウンドジョブシステム Faktory を試す - リサーチ・アンド・イノベーション 開発者ブログ

    リサーチ・アンド・イノベーションの浜田(hamadu)と申します。 いつものお買い物がちょっとお得に、家計簿にもなるポイントアプリ「CODE」のサーバサイド、およびAndroidアプリの開発を担当しています。 序 CODE ではバックグラウンドジョブシステムとして、Sidekiq を採用しています。その作者、Mike Perham 氏が新しい仕組みを作っていました。その名も Faktory。Sidekiq と違いワーカーが言語に依存せず、また体はGoで書かれているためスケールするのがウリのようです。まだまだ開発中で、プロダクションで使うには厳しい印象を受けますが、今後Sidekiqを置き換えうるプロジェクトになるのではと思います。 稿では簡単に仕組みの紹介をして、Rubyでジョブを投げるClientと、ジョブを処理するワーカーをそれぞれ実装してみました。 ソースコードは faktory

    次世代バックグラウンドジョブシステム Faktory を試す - リサーチ・アンド・イノベーション 開発者ブログ
    yugui
    yugui 2018/02/15
  • 安全な非同期イベント駆動プログラミングのためのP言語をMicrosoftがオープンソース化

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    安全な非同期イベント駆動プログラミングのためのP言語をMicrosoftがオープンソース化
  • mruby で同期呼出を非同期化する話(もしくは H2O の mruby ハンドラでネットワークアクセスする話)

    ■背景 H2Oではバージョン1.5より、mrubyを用い、Rackのインターフェイスに則った形でハンドラを書けるようになっています。 この機能を提供している目的は、正規表現による書き換え等を用いる複雑な設定ファイルではなくプログラミング言語を用いることで、ウェブサーバの設定をより簡潔に拡張しやすくするためです(Apacheのmod_rubyやmod_perlのようにウェブアプリケーションをウェブサーバ内で実行可能にすることではありません)。 とは言っても、現実のウェブサーバの設定においては、外部のデータベース等に問い合わせた結果に基づいたルーティングが必要になることがあります。 H2Oのようなイベントドリブンなウェブサーバ上で動作する、同期モデルを採用するRackインターフェイスを用いて記述されるハンドラ内において、データベースへの問い合わせをどのように実現すれば良いか。問い合わせが同期的

  • “1000倍高速”なら世界は変わる

    これまでに比べ1000倍速くする──東京大学と日立製作所はビッグデータ活用をにらみ、高速なデータ処理エンジンを2014年3月に向けて研究開発中だ。研究開発は、内閣府の「最先端研究開発支援プログラム」に基づく。共同研究成果を生かし、まず従来比約100倍の性能を持つ処理エンジンを「Hitachi Advanced Data Binder プラットフォーム」として日立が製品化。これにDTSのBIツールを組み合わせた「Hitachi Advanced Data Binder プラットフォーム BIアプライアンス」は2012年10月、日経BPが主催する「ITpro EXPO AWARD 2012」で大賞を受賞した(関連記事)。研究開発を率いる喜連川氏は、「非順序型実行原理」であくまで1000倍を狙うと力を込める。 米国では、科学技術政策局(OSTP)などが、ビッグデータ活用に向けた取り組みを進めてい

    “1000倍高速”なら世界は変わる
  • バッファキャッシュとAIO(4) - O'Reilly Japan Community Blog

    前回はPOSIX AIOとLinuxカーネルのAIOサポートについて解説しました。今回は、このAIOの使い勝手を良くするため、POSIX AIOインタフェース準拠のライブラリを作成しています。 LinuxネイティブAIOライブラリliblaioの試作 Linux AIOを使用する場合、現在では前述のlibaioの利用が第一候補になりますが、やや使い勝手が悪いため、記事でPOSIX AIOインタフェース準拠のライブラリを試作してみます。Linux AIOではO_DIRECTが前提となるため、この点もやや使い勝手が悪いのですが、SSDなどメモリベースのファイルシステムもありますし、動作は非同期になりませんがio_submit(2)はO_DIRECTがなくとも使用可能ですから、まぁ試しにやってみましょう。 ライブラリ設計要点を挙げます。 Linux AIOにPOSIX AIOインタフェースをか

    yugui
    yugui 2010/11/12
  • 並列イベント駆動I/Oフレームワーク「mpio」リリース - Blog by Sadayuki Furuhashi

    分散KVS kumofs のコードは、全体で約2万行です*1。 そのうち、ネットワークI/Oやプロトコルに関するコードは約1万行*2で、全体の約半分を占めています。 ロジックは残りの半分*3だけで実装されています。 この実例から分かりますが、kumofsのような分散アプリケーションを開発するにはI/O周りの実装が大変で、とてつもなく大きな障壁になっています。*4 さらに今日では、性能を稼ぐためにマルチスレッド化が必須です。また、多数のクライアントを少ないリソースで効率よく相手にするには、非同期・イベント駆動型のアーキテクチャも必要になります。さらに、究極的な性能を達成すべく GC を利用しない C++ においては、実装のみならず設計も大変です。 これに加えてソケットAPIの難解な挙動に対処にしなければならないため、C言語やC++によるネットワークプログラミングは、vimの使いこなしなどと同

    並列イベント駆動I/Oフレームワーク「mpio」リリース - Blog by Sadayuki Furuhashi
  • Resque について調べてメモした - KoshigoeBLOG

    GitHub のブログより。 KOSHIGOE学習帳 - [BackgroundJob][Ruby] Resque とは KOSHIGOE学習帳 - [system][osx] Homebrew KOSHIGOE学習帳 - [BackgroundJob][Ruby] Resque の README より 間に Homebrew が挟まっているのは、Resque の README に「OSX なら Homebrew で Redis を簡単にインストールできるぞ!」と書いてあったからです。結局 MacPorts でインストールしましたけど。 モニタリング用ツールも同梱されているのが、自分にとっては興味をそそられるポイントでした。 Redis も Resque を通じて初めて知りました。とはいえ、存在を確認しただけで、詳しい事は知らないままです。データを永続化したり、扱えるデータ種類が色々あった

  • 『翻訳: 同期的非対称性と非同期的対称性』

    gregors-ramblings-jaプロジェクトにeverpeace君が参加してくれました。彼は、「The Core Protocol」の翻訳などもやっている人です。さっそく、記事「"同期的な非対称とか非同期的な対称"って言ってごらん(Can You Say "Synchronous Asymmetry or Asynchronous Symmetry"?)」を翻訳してくれました。 SOAの世界では、非同期のメッセージングが非常に重要な役割を果たします。オブジェクト指向においても古くから「オブジェクト同士のメッセージのやり取り」こそが質とされてきたので、SOAにおける「メッセージング」とオブジェクト指向の「メッセージのやり取り」の違いが見出せず、混乱してしまうことがあります。 私は、オブジェクト指向とSOAとはやはり質的に異なるパラダイムだと思っていますが、そのポイントがこの記事の

    yugui
    yugui 2008/06/30
  • 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

    yugui
    yugui 2008/04/09
  • ファイルシステムの変更を受け取れる、inotifywatch - UNIX的なアレ

    kernel2.6.13から導入された、apiでinotifyというものがあります。これは、ファイルシステムのイベントを監視するためのもので、指定したディレクトリ配下に対しての操作をとることができます。 たとえば、/tmp を監視しているとしたら、/tmp配下への操作をこのapiで監視をすることができます。 kernelのapiですが、コマンドラインで使用するためにはinotifywatch等のコマンドが必要になるのでインストールをしてみます。debian系ならaptで一発で入ります。 インストールする debian/ubuntu sudo apt-get install inotify-tools これでOK。 早速使ってみる inotifywatchの使い方は簡単です。コマンドの引数に対して監視対象を渡すだけ。 今回はディレクトリ単位で監視をしようと思いますので、再帰的に取得をしてみよ

    ファイルシステムの変更を受け取れる、inotifywatch - UNIX的なアレ
  • スターバックスは2フェーズコミットを使わない - gregors-ramblings-ja - Google Code

    Code Archive Skip to content Google About Google Privacy Terms

  • スレッドよりも軽く、スレッドよりも早く・・・ | レビログ (Make a little happier) 13周年+3i年

    レビログ (Make a little happier) 13周年+3i年 レビログの半分は管理人の独断と偏見でできています。残りの半分は現在残 希少につき 入荷待ちです。旧称 貧乏だけど心は萌え : スレッドよりも軽く、スレッドよりも早く・・・ 2007年10月11日 Category > 6_日記 > うだうだ日記 > TAG( ) Comments : 2 (link this page) すばらしい記事が上がっている。naoyaのはてなダイアリー – マルチスレッドのコンテキスト切り替えに伴うコスト 要約すると切り替えコストがプロセス>スレッドなので、スレッドの方がプロセスよりも高速ですよ。という事。 個人的な経験から、これをさらに加速すると、莫大な処理量を持つ基幹サーバーの場合、スレッドの切り替えコストすら、処理量が多いと甚大になるので支払いたくなくなる。 そこで、ジョブ<>タス

    yugui
    yugui 2007/10/11
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • The Spread toolkit

    The Spread toolkit provides a high performance messaging service that is resilient to faults across local and wide area networks.Spread functions as a unified message bus for distributed applications, and provides highly tuned application-level multicast, group communication, and point to point support. Spread services range from reliable messaging to fully ordered messages with virtual synchrony

    yugui
    yugui 2007/07/26
    "Spread is an open source toolkit that provides a high performance messaging service"
  • 第3回「Twitter」と「ニコニコ動画」の共通点(2):ニコニコ動画編 | WIRED VISION

    第3回「Twitter」と「ニコニコ動画」の共通点(2):ニコニコ動画編 2007年6月 7日 ITメディア コメント: トラックバック (0) 前回(Twitter)からの続きです。今回はニコニコ動画について見ていきます。前回の最後で、ニコニコ動画の設計コンセプトは「非同期実況」だと紹介しました(前回のエントリの投稿後、今月頭に発表された「ニコニコ宣言」というマニフェストでは、「非同期チャット」とも表現されています)。それはどういうことでしょうか。例によって、すでにご存知の方も多いと思われるのですが、以下で具体的に記述していきたいと思います。 ■「動画視聴体験共有サービス」としてのニコニコ動画(2-1) さて、ニコニコ動画というサービスを一言で説明する際には、「動画の再生画面上にユーザーがコメント(テロップ)を付けることができるサービス」と最大公約数的に表現されることが多いようです。ここ

    yugui
    yugui 2007/06/19
    非同期な共時性感覚について
  • Ruby会議2007 2日目 - 非同期重要 - ただのにっき (2007-06-10)

    Ruby会議2007 2日目 - 非同期重要 Ruby会議2007、スタッフとして参加、2日目。 スポンサーセッションが今日の担当。交代時間短縮のために、できるだけ共通のPC(というかおれのLet's note)に資料を集めることになっていたのだが、朝、PDFファイルを持ってきた(NaClの)前田さんの手には、SONYのUSBメモリが。お、おれのPCにSONY製品を……くっ、屈辱だ。 セッションの方は、もっと宣伝色の濃いものになるかもと危惧していたが、みなさん空気を読んでくださって、面白いものになった。フォーメーションなど、直前までばたばたしてしまって申しわけなかったです。 その他のセッションは、RubyCocoaの超絶プレゼンとか、MDDとか、もちろんDave Thomasの感涙講演とか、どれもみんな盛り上がったんだけど、ひとつだけ取り上げるとしたらAP4Rだろう。 まじろうネタのお

    yugui
    yugui 2007/06/12
    非同期重要。うん。エンタープライズじゃないけど非同期は助かってる。
  • これ日記なん?(2006-09-02)

    _ [Ruby]mongrel win32 サービスを試す mongrelがwin32サービスに対応しているらしい、というところで止まっていたのでちょっと試してみた。 OS WindowsXP SP2 HOME ruby C:\home\kog\development\test_mongrel>ruby -v ruby 1.8.4 (2005-12-24) [i386-mswin32] gem list C:\home\kog\development\test_mongrel>gem list *** LOCAL GEMS *** gem_plugin (0.2.1) A plugin system based only on rubygems that uses dependencies only mongrel (0.3.13.3) A small fast HTTP library

  • http://www.akadav.org/async.html

    yugui
    yugui 2006/10/01
  • 1