並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 642件

新着順 人気順

queueの検索結果1 - 40 件 / 642件

  • とれるだけ仕事をとってはいけない : タイム・コンサルタントの日誌から

    最初に、損益分岐点の説明からはじめよう。企業は、製品やサービスを売って売上を得る。しかし、世の中にタダの物はないので、そこには必ず費用(原価)が発生する。その費用が製品の販売数量に単純に比例する場合、企業は売上に比例した利益を得ることになる。この関係を図(a)に示す。横軸は、売上である。工場の視点から言うと、売上向上すなわち稼働率向上を意味するから、横軸は稼働率と見てもよい。縦軸は金額で、実線が売上高を、点線が費用を示す。費用は純粋に、売上高に比例する。これを変動費ともいう。売上に伴って、変動するからである。たとえば製品を作るのに必要な原材料の購入費がそうだ。あるいは、製品を加工するための外注費などもそうだ。 ところが、企業にはこれとは別に、売上高にまったく関係なく、固定的に発生する費用がふつうある。これを固定費という。その典型例は、設備機械の減価償却費である。あるいは、従業員の給料なども

      とれるだけ仕事をとってはいけない : タイム・コンサルタントの日誌から
    • アルゴリズムとプログラミングをビジュアルで一挙に理解できる「VisuAlgo」

      アルゴリズムを理解するのにビジュアル化することは非常に有効で、プログラムをビジュアル化することで理解が進むのもまた同じ。そこで、アルゴリズム・プログラミングの理解が進むようにと、アルゴリズムを記述したプログラムコードを一挙にビジュアル化することで、アルゴリズム&プログラミングを同時に学習できる一挙両得なサービス「VisuAlgo」が公開されています。 VisuAlgo - visualising data structures and algorithms through animation https://visualgo.net/en 上記のVisuAlgoサイトで試しにソートアルゴリズムの基本プログラム「バブルソート」をビジュアル化してみます。「Sorting」の「bubble」をクリック。 検索窓の下に「bubble」と表示されたのを確認したら「Sorting」の画像をクリック。

        アルゴリズムとプログラミングをビジュアルで一挙に理解できる「VisuAlgo」
      • 分散キューという名の苦しみ - Software Transactional Memo

        TL;DR 分散システムにおいてキューを導入する場合、本当にキューが必要なのか再考すべき。そこが地獄の入り口だから。 システムの抽象 コンピュータの世界は、本来は0と1の信号の羅列が飛び交う無機質なものである。でも人類は信号だけですべてを語らず、様々な喩えを定義してきた。それはデスクトップ・ウィンドウ・マウスカーソルといったグラフィカルな表現に留まらず、パケットやカプセル化といった用語にロック・キュー・リスト・木などのアルゴリズムやデータ構造の世界にも自然に溶け込んでいる。これらはすべて人間の理解を助けるための喩え話に過ぎず、この喩えこそが人間のより直感的な理解をもたらす一方で、発想の制約を生み出してきた。 人間が大きなシステムを作るときも何らかの喩えを用いてシステム全体を整理する。アーキテクチャの「ポンチ絵」を描いて情報共有をするのは企業に勤めていれば経験した人も多いだろう。パワーポイン

          分散キューという名の苦しみ - Software Transactional Memo
        • 様々なrate limitアルゴリズム - Carpe Diem

          概要 インターネットに晒されているWebサービスでは TV等で紹介されたことによる大量流入 悪意ある人物からの攻撃 クライアントのバグに依る大量リクエスト など、本来想定していた以上のトラフィックが来ることはよくあります。 単純にシステムを構築すると大規模トラフィックに対応できずシステムがスローダウンしてしまうため、何かしらrate limitをかけておいた方が良いです。 ただしrate limitと一口に入っても色々あるため、今回は主なrate limitアルゴリズムを紹介します。 Leaky bucket Leaky bucketはデータ転送レートを一定にする(=上限を設定する)アルゴリズムです。 下の図のように、様々な流量の水流がそのバケツに流れ込んでも小さな穴からは一定の水流が流れ出す仕組みです。 ref: What is the difference between token

            様々なrate limitアルゴリズム - Carpe Diem
          • 大量メッセージが来ても安心なLINE BOTサーバのアーキテクチャ - Qiita

            Help us understand the problem. What is going on with this article? 3月24日に発表になったLINEのBOT API Trial Accountが、いよいよ4月7日から実際に試せるようになりました。既に多くのBOTが開発者の手によって作られ始めたようですね。QiitaにもいくつかBOTの作り方が投稿されていますので、"LINE BOT"というキーワードで探してみてください。 実際の作り方の基本は他の投稿に任せるとして、BOT API自体は非常にシンプルな作りなので、試すこと自体はすぐにできると思います。しかし、シンプルな反面、仮に近い将来「Trial」が取れて、友だち50人制限が撤廃された時、それでも正しく安定的に動作するBOTとするには、アーキテクチャ上の工夫が必要になります。個人的に、既にLINE BusinessCo

              大量メッセージが来ても安心なLINE BOTサーバのアーキテクチャ - Qiita
            • Apache Kafkaに入門した

              Apache kafka 最近仕事でApache Kafkaの導入を進めている.Kafkaとは何か? どこで使われているのか? どのような理由で作られたのか? どのように動作するのか(特にメッセージの読み出しについて)? を簡単にまとめておく(メッセージングはまだまだ勉強中なのでおかしなところがあればツッコミをいただければ幸いです). バージョンは 0.8.2 を対象に書いている. Apache Kafkaとは? 2011年にLinkedInから公開されたオープンソースの分散メッセージングシステムである.Kafkaはウェブサービスなどから発せられる大容量のデータ(e.g., ログやイベント)を高スループット/低レイテンシに収集/配信することを目的に開発されている.公式のトップページに掲載されているセールスポイントは以下の4つ. Fast とにかく大量のメッセージを扱うことができる Scal

              • cron の意外な落とし穴! - もろず blog

                システムを運用していく上で cron を使う場面はよくありますよね 処理をスケジュール実行したい時にとても便利です そんな cron ですが、最近仕事で作業しているときに ntpdate でシステム時刻を変更した後に cron で設定した時刻になってもジョブが実行されないという問題が見つかりました 全てのジョブが実行されていないわけではなく一部のジョブは実行されているようでした また、時刻を変更した後に crond を再起動すれば全てのジョブが正常に実行されるようになりました 幸い、実運用ではなくてシステムテスト中に見つかった問題なのでまだよかったんですが、運用している環境で同じ問題が起きたら相当マズイですよね そもそも ntp の時刻同期でシステム時刻が修正された場合にも同じ問題が起きそうじゃないですか? ググっても同じような事象は見つからず、社内のメンバーにも聞いてみても cron で

                  cron の意外な落とし穴! - もろず blog
                • Registration: Machine learning & data conference | O'Reilly Strata

                  We’ve made the very difficult decision to cancel all future O’Reilly in-person conferences. Instead, we’ll continue to invest in and grow O’Reilly online learning, supporting the 5,000 companies and 2.5 million people who count on our experts to help them stay ahead in all facets of business and technology. Come join them and learn what they already know. Become an O’Reilly online learning member

                    Registration: Machine learning & data conference | O'Reilly Strata
                  • 大規模インフラの監視システム その2 | GREE Engineering

                    こんにちは。グリーのmdoi(@m_doi)です。 今回は、グリーの監視システムについて説明したいと思います。以前、こちらの記事にて、リソース監視システムの説明をさせて頂きましたが、死活監視やログ監視については語られなかったので、気になっていた方も多いと思います。ということで、今回は、グリーのインフラにおける死活監視やログ監視、アラート通知システムを紹介したいと思います。 何を使っているの? グリーでは、死活監視にNagiosを使用していました。監視システムの中では、かなり有名なソフトウェアですから、監視システムの構築に使用したことがある方も多いのではないでしょうか。プラグインも豊富に存在するので、様々な監視を行うことができます。死活監視は、このNagiosの機能をそのまま利用し、ログ監視は、Nagiosと独自に作成したエージェント及びログフィルタを連携させて行っていました。 全体のシステ

                      大規模インフラの監視システム その2 | GREE Engineering
                    • ストリーム処理を支えるキューイングシステムの選び方

                      ビッグデータのリアルタイム処理技術勉強会 http://futureofdata.connpass.com/event/40077/ 発表資料Read less

                        ストリーム処理を支えるキューイングシステムの選び方
                      • MySQL を使ったお手軽メッセージキュー実装 - ドワンゴ 研究開発ブログ

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

                        • 大規模分散システム ”Amazon Web Services” の使い方

                          • ネットワークプログラムのI/O戦略 - sdyuki-devel

                            図解求む。 以下「プロトコル処理」と「メッセージ処理」を分けて扱っているが、この差が顕著に出るのは全文検索エンジンや非同期ジョブサーバーなど、小さなメッセージで重い処理をするタイプ。ストリーム指向のプロトコルの場合は「プロトコル処理」を「ストリーム処理」に置き換えるといいかもしれない。 シングルスレッド・イベント駆動 コネクションN:スレッド1。epoll/kqueue/select を1つ使ってイベントループを作る。 マルチコアCPUでスケールしないので、サーバーでは今時このモデルは流行らない。 クライアントで非同期なメッセージングをやりたい場合はこのモデルを使える: サーバーにメッセージを送信 イベントハンドラを登録;このときイベントハンドラのポインタを取っておく イベントハンドラ->フラグ がONになるまでイベントループを回す イベントハンドラ->結果 を返す 1コネクション1スレッ

                              ネットワークプログラムのI/O戦略 - sdyuki-devel
                            • Goで毎分100万リクエストを処理する | POSTD

                              Malwarebytes は、驚くべき成長を見せています。1年以上前にこのシリコンバレーの会社に入社して以来、私の主な仕事は急成長するセキュリティ企業の力となるシステムの設計と開発です。日々数百万人が利用する製品をサポートするために必要な、全ての基盤をつくります。私は12年以上、アンチウイルスとアンチマルウェアに関わるいくつかの会社で働いてきました。毎日処理する膨大なデータのせいで、これらのシステムがどれだけ複雑なものになるかを理解しています。 面白いことに、ここ9年ほどで私が携わったWebのバックエンド開発のほとんどは、Ruby on Railsが使われていました。誤解されないように言っておきますが、私はRuby on Railsが大好きですし、すばらしい環境だと思っています。しかし、Rubyでシステムを設計し始めると忘れてしまうのは、マルチスレッド化や並列化、高速化、メモリオーバーヘッ

                                Goで毎分100万リクエストを処理する | POSTD
                              • AWS をどう使わずにおくか - portal shit!

                                ジョブキューイングシステムをどうするかでチームのリーダーとやりあって考えたことがあるのでまとめておく。 Rails で使うジョブキューイングシステムの技術選定で、リーダーは Amazon SQS 推し(レガシーシステムで SQS を使っている)、自分は Sidekiq 推しだった。前職時代に Sidekiq を使ってトラブルに遭遇したことはなかったし、とても簡単に使えるので Sidekiq で十分だと思っていた。 Sidekiq は GitHub でのスター数は 9000 オーバーで、 Rails の ActiveJob バックエンドとしては事実上のデファクトスタンダードだといえると思う。ググれば情報がいっぱい出てくるし、チームメンバーもリーダー以外は全員 Sidekiq の使用経験があった。 GitHub - sidekiq/sidekiq: Simple, efficient back

                                  AWS をどう使わずにおくか - portal shit!
                                • 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を用いたジョブキューシステムを作るときに考えたこと - ゆううきブログ
                                  • - サルでもわかる待ち行列

                                    (株)永和システムマネジメント   平鍋健児 作成日:初版 1999, 3/16 第2版 2002, 11/6 第3版 2004, 9/14 第4版 2008, 5/1 情報処理技術社試験の中で良く出て来る「待ち行列」理論を,直感的に覚えやすく解説してみました. 何度もトライしたけど待ち行列が理解できない人向けです. 正確な定義や論理展開は重視せず,いかに効率的にこの理論を覚えることができるかに焦点を絞ってみました.

                                    • fluentdでログが欠損する可能性を考える : sonots:blog

                                        fluentdでログが欠損する可能性を考える : sonots:blog
                                      • MQTTについてのまとめ — そこはかとなく書くよん。 ドキュメント

                                        注釈 MQTT As a Service: sangoをリリースしました 2014年8月に、GitHubアカウントで簡単に登録できてMQTTを使い始められる sango を 時雨堂 がリリースしました。 無料プランもありますので、MQTTを一度使ってみたいという方はsangoを使うことをお勧めします。 最近voluntasさんが 活動 してお り、にわかにMQTT関連が熱くなってきました。たぶん観測範囲が狭いからだと は思いますが。 とはいえ、M2M (Machine to Machine)やIoT(Internet of Things)というバズワー ドもあり、モノがインターネットにつながる時代になってきて、MQTTの価値が 高くなってきている気もします。また、モバイル時代に適したプロトコルとい う意味でも注目されているのかもしれません。 ということ、MQTTについて一旦ここでまとめてみ

                                        • Sinatra

                                          Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort: require 'sinatra' get '/frank-says' do 'Put this in your pipe & smoke it!' end

                                          • cron + α が欲しい時には ts(Task Spooler) のご利用をご検討下さいというメモ - ようへいの日々精進XP

                                            おひさしブリーフ、かっぱです。 tl;dr 下図のように cron ジョブで定期的にスクリプトを生成して実行させようとした時、スクリプト完了する前に次の cron ジョブが走ってスクリプトが生成されて、そのスクリプトが実行されてしまうような状況に遭遇してどうしたもんかなと悩んでいたら ts というツールを見つけたので試してみた。 memo ts とは http://vicerveza.homeunix.net/~viric/soft/ts/ https://osdn.jp/magazine/09/01/20/0150258 スクリプトやコマンドを ts コマンド経由で実行することで、それらをジョブとしてキューに放り込んで順次実行してくれるツール。冒頭の構成に ts を加えると下図のようになり、cron の開始時間とスクリプトの実行時間の依存関係は切り離される。 導入 CentOS 6 に導

                                              cron + α が欲しい時には ts(Task Spooler) のご利用をご検討下さいというメモ - ようへいの日々精進XP
                                            • Amazon SQS を使ったアプリケーションを本番で運用する際に考慮すべき基本的な 5 つのこと

                                              Amazon SQS は可用性やスケーラビリティの高いメッセジキューサービスであり、AWS の代表的なサービスの 1 つと言えるでしょう。ところが、本番の運用に耐えられるアプリケーションにしようと思うと考えることが意外に多いものです。本エントリーでは簡単なサンプルアプリケーションをベースに、本番で運用するために考慮すべき点・注意点について見ていきます。題材として扱うのが SQS なだけで、SQS 以外を使ったアプリケーションにも応用できる内容もあるでしょう。 なお、SQS には Standard queue と FIFO queue がありますが、Standard queue を使う前提とします。 アジェンダは次のとおりです。 サンプルアプリケーション 1. ログ 2. At-least-once delivery と visibility timeout 3. デプロイ 4. 異常系 5

                                                Amazon SQS を使ったアプリケーションを本番で運用する際に考慮すべき基本的な 5 つのこと
                                              • iOS 通信のパフォーマンス改善 ・ iOSオールスターズ登壇資料

                                                var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18Syo Ikeda

                                                  iOS 通信のパフォーマンス改善 ・ iOSオールスターズ登壇資料
                                                • システム開発で得たRedis利用ノウハウ | フューチャー技術ブログ

                                                  こんにちは。初投稿です。 2012年新卒入社の竹内です。入社当時を振り返るとOracle10g,11gを良く利用していおり、データモデリングなどテーブル設計が好きで、2018年4月ぐらいまでRDBとバッチに浸ってました。 さて、現在プロジェクトでRedisを使っているのですが、いままでRDB人間だっただけにKVSやRedisならではの特徴に四苦八苦してます。 苦しんだ分、色々な知見を得ることができているので、その内容をご紹介します! 対象者 Redisの業務システム導入を検討している方 RDBとRedisの違いを知りたい方 現場的なRedisの利用方法を知りたい方 書いてないこと データ型やコマンドなど、HelloWorld的に公式ドキュメントを見て得られる情報 インストールなど、Redisを利用できるまでの手順 フェイルオーバーやバックアップをはじめとする運用に関する内容 データ永続化に

                                                    システム開発で得たRedis利用ノウハウ | フューチャー技術ブログ
                                                  • 分散型メッセージングミドルウェアの詳細比較 | POSTD

                                                    メッセージキュー について書いている連載の続きとして、今週末は分散型メッセージングを実行するための様々なライブラリを詳細に分析していきたいと思います。今回の分析では、APIの特性、デプロイメントやメンテナンスの容易さ、そしてパフォーマンスの質を含めて2、3種類の異なる側面に着目します。メッセージキューは2つのグループに分類できます。ブローカレス(brokerless)とブローカード(brokered)です。ブローカードなキューはエンドポイント間に何かしらのサーバを挟んでいますが、ブローカレスなメッセージキューは、メッセージ送信の際でも間に何も挾まないP2Pです。 今回分析するのは以下のシステムです。 ブローカレス nanomsg ZeroMQ ブローカード ActiveMQ gnatsd Kafka Kestrel NATS NSQ RabbitMQ Redis 取り掛かりとして、ほぼ間違

                                                      分散型メッセージングミドルウェアの詳細比較 | POSTD
                                                    • ORWiki

                                                      OR学会50年の歴史の中で,OR事典の編纂・改訂は通算3度目となる.いろいろな理由からOR事典編集委員会は,「OR事典」をWebに公開するという手段をとることになった.前回はCDによる出版であった. 資料編だけは「OR事典」から切り離して,OR学会の通常のホームページの中に移すことになった.これは逆瀬川浩孝委員長のアイディアである。内容の性格上,資料追加も間違いの訂正も広報委員会の責任で簡単に出来るようになる. 前回までの学会の歴史資料はそのまま残してある.今回はデータ追加作業を基本に多少の資料追加を行った.前事務局長の藤木秀夫さんには,その後の学会活動全般にわたる記録をまとめて原稿を作成してもらった.学術会議関係も藤木さんが前回の形式に習って資料原稿を作成し,FMES会長の高橋幸雄さんに目を通していただいた. 各支部から増補追加の原稿が送られてきた.Webのサンプルを見てくださいと言って

                                                      • Redis - The Real-time Data Platform

                                                        # Create a new session and store it as a JSON document > JSON.SET session:12345 . ‘{“user_id”: 1001, “login_time”: “2024-02-27T10:00:00Z”, “data”: {“last_page_visited”: “/home”, “preferences”: {“theme”: “dark”}}}’ “OK” # Fetch the entire session > JSON.GET session:12345 “{\”user_id\”:1001,\”login_time\”:\”2024-02-27T10:00:00Z\”,\”data\”:{\”last_page_visited\”:\”/home\”,\”preferences\”:{\”theme\”:\

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

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

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

                                                            Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

                                                            • 「これからのWeb(バックエンド)」を自分の頭で考えてみた - As a Futurist...

                                                              ふと今更、年初のCROSS 2013の「次世代 web セッション」の動画を見て、うんうん唸ってしまった。プロトコル編の方は知識不足であんまり分からなかったですが、アーキテクチャ編の方はグサグサくるものがあった。「自分の頭でこれからの web を考えてブログに書くまでがこのセッション」という宿題が出ていたので、せっかくなので最近考えてることをつらつらと書いておこうと思った次第。特にまとまりはないですし、戯言です。 これからの Web の話をしよう。 (次世代 Web セッション @ CROSS2013) – Block Rockin’ Codes 前提 僕はコード書いてない&サーバサイドしか見たことない&WEB サーバはあんまり見たこと無くて、それより後ろ側ばっかり見てた人なので、ユーザ側とかアプリ開発者がどうなっていくかについて特に尖った意見はありません orz SPDY とかもまだ手を

                                                                「これからのWeb(バックエンド)」を自分の頭で考えてみた - As a Futurist...
                                                              • Don'tStopMusic - DB分散の次は非同期処理がウェブアプリのスケーリングのトレンドになる , るびま 21 号

                                                                _ [ソフトウェア] DB分散の次は非同期処理がウェブアプリのスケーリングのトレンドになる サイボウズも memcached + MySQL DB 分散 Cybozu Developer Network: MySQL Users Conference Japan 2007 講演概要 を読んで、memcached でキャッシュ& 複数の MySQL をアプリのロジックで分散化というのは、もうすっかりスケーラブルなウェブアプリの作り方として常套手段になったと思いました。 2004 年 4 月の MySQL カンファレンスでの Brad Fitzpatrick の発表 Inside LiveJournal's Backend (PDF)から約 3 年半。Mixi やはてなのようなエッジな企業はだいぶ前からこの構成を採用してますが、対法人のビジネスをしているサイボウズでも採用されたというのは一つ

                                                                • 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

                                                                    • pythonモジュールmechanizeでWeb上の作業を自動化する | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

                                                                      みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー mechanizeはWeb上の操作を自動化してくれる便利なPythonのライブラリ。Pure Pythonなのでいろんなところで動くよ。PerlのWWW::Mechanizeにinspireされて作られた。RubyにもMechanizeという同種のライブラリがある。Perl偉い! 「Web上の操作を自動化する」っていうのは,例えばどこかのサービスにログインしてあれこれするとか,そういったことをプログラマブルに行える,ということ。フォームの操作などもオブジェクトを使って実行できるのでとても手軽。Webアプリの開発などではテストに使われたりするんだけど,結局僕がなにをしたかったかというと,

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

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

                                                                        • Linux:昨今のI/Oスケジューラ事情 2020

                                                                          まえがき HDDやSSDはシステムの中でもボトルネックとなる一番データの転送速度が遅い記憶媒体だ。 オペレーティング・システムには記憶媒体による遅延を減らすためキャッシュを利用するなど I/Oアクセスを最小限に留める工夫が施されている。そんな中でもI/OスケジューラはI/Oリクエストの処理順を入れ替えたりリクエストを一つにまとめたりすることにより応答速度やスループットを向上させる機能だ。ディスク・スケジューリングとも呼ばれることがある。 数年前まではLinuxカーネルは cfq noop deadline と言ったI/Oスケジューラを搭載していたが、昨今のスケジューラはだいぶ変わっているようだ。 Linuxカーネル ver 3.13 からCPUの多コア化、SSDやPCIeなどの高速な記憶媒体の普及に対応するために旧来の単一キュー処理からマルチキュー処理をする Blk-mq(Multi-Qu

                                                                            Linux:昨今のI/Oスケジューラ事情 2020
                                                                          • グリーの大規模分散ストレージ戦略(nanofs) Vol.2 | GREE Engineering

                                                                            はじめに グリー株式会社でエンジニアをしておりますkgwsと申します。 今回は、前回に引き続き分散ストレージ(nanofs)のHTTPメソッド毎の処理を紹介させていただければと思います。 nanofsは5つのHTTPメソッド(GET、PUT、DELETE、HEAD、MKCOL)をサポートしております。今回は主なGET、PUT、DELETEの3つについてご説明させていただきます。 まずは構成のおさらい nanofsは、主に3つのプロセスで構成されております。 nanofsd(dispatcher) アプリケーションサーバからリクエストを受け取り実際に保存されているnanofsnに振り分ける 5つのHTTPメソッドをサポートしている(GET、PUT、DELETE、HEAD、MKCOL) データベース(KVS)に保存したデータの情報を送る queueに処理の指示を送る nanofsw(worke

                                                                              グリーの大規模分散ストレージ戦略(nanofs) Vol.2 | GREE Engineering
                                                                            • &Oslash;MQ(zeromq)について調査する。

                                                                              ØMQ(zeromq)について簡単に調査したのでメモ。元ネタはØMQ - The Guide。 概要 N-N通信を実現する、socket API風軽量メッセージングライブラリ。 自動的な再接続や、メッセージのキューイングを行ってくれる。 複数のメッセージングパターンと呼ばれるものを組み合わせることによって、柔軟なメッセージ配信を行うことができる。 ライブラリについて socket APIライクなC APIを持つ。以下socketは、zeromqのsocketを指す。 zeromqはコンテキストというものを通じて使う。1コンテキストに、I/Oスレッドが1つ割り当てられる。基本1プロセスに1コンテキストでOK。複数のcontextを持つことはできるし、その場合は同じ個数のI/Oスレッドが走る。 zeromqのsocketは、プロセス内通信(スレッド間通信など)、プロセス間通信、TCP、UDPマ

                                                                                &Oslash;MQ(zeromq)について調査する。
                                                                              • jQuery.stopのjumpToEnd引数が便利すぎてやばい(JavaScript Advent Calendar 2010 5日目) - KAYAC engineers' blog

                                                                                JavaScript Advent Calendar 20105日目のago(@kyo_ago)です。 jQueryのソースを眺めててjQuery.stopに引数があることに気づいたので調べてみました。 まず、簡単なスライドダウンメニューを作ってみたいと思います。 jQuery.stop 1 - jsdo.it - share JavaScript, HTML5 and CSS JS部分は以下の通りです。 $(function () { $('div').hover(function () { $(this).find('ul').slideDown(); }, function () { $(this).find('ul').slideUp(); }); }); 少し触ると分かると思いますが、マウスがmenuから外れた後も何度も.slideDown、.slideUpが実行されるため非常に

                                                                                  jQuery.stopのjumpToEnd引数が便利すぎてやばい(JavaScript Advent Calendar 2010 5日目) - KAYAC engineers' blog
                                                                                • マルチスレッド・プログラミングの落とし穴、その2

                                                                                  ずいぶん前に、「マルチスレッド・プログラミングの落とし穴、その1(かもしれない)」というエントリーを書いたが、今回はPhotoShareサーバーを運営していて、まさにこのあたりの深い考察が必要になって来たので、良い機会なので続編エントリー。 PhotoShareのバックエンドのようにCRUD(Create/Read/Update/Delete)のAPIをサポートするバックエンドを作る場合、Create/Update/Deleteのリクエストに対してはクライアントからのAPIコール時にすぐに(HTTP Requestに返事をする前に)データベースに変更を加え、Readの際にも(キャッシュを使う・使わないを別にして)データベースの最新の状況を反映するデータを返すように設計するのが普通である。 このアーキテクチャの問題は、ユーザーのアクティビティが増えた時に、データベースやI/Oがボトルネックと