タグ

queueに関するuokadaのブックマーク (9)

  • Meet Bandaid, the Dropbox service proxy

    // By Dmitry Kopytkov and Patrick Lee • Mar 01, 2018 With this post we begin a series of articles about our Service Oriented Architecture components at Dropbox, and the approaches we took in designing them. Bandaid, our service proxy, is one of these components. Follow along as we discuss Bandaid’s internal design and the approaches we chose for the implementation. Bandaid started as a reverse pro

    Meet Bandaid, the Dropbox service proxy
  • GitHub merge queue is generally available

    CompanyEnterpriseOpen SourceGitHub merge queue is generally availableSupercharge pull request merges on your busiest branches by enabling your team to queue. General availability of GitHub’s merge queue means good-bye to traffic jams on your team’s busiest branches. No more rushing to merge your pull requests before someone else merges theirs 🥵. Turn on GitHub’s merge queue today and accelerate y

    GitHub merge queue is generally available
  • ストリーム処理を支えるキューイングシステムの選び方

    This document discusses messaging queues and platforms. It begins with an introduction to messaging queues and their core components. It then provides a table comparing 8 popular open source messaging platforms: Apache Kafka, ActiveMQ, RabbitMQ, NATS, NSQ, Redis, ZeroMQ, and Nanomsg. The document discusses using Apache Kafka for streaming and integration with Google Pub/Sub, Dataflow, and BigQuery

    ストリーム処理を支えるキューイングシステムの選び方
  • 分散キューという名の苦しみ - Software Transactional Memo

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

    分散キューという名の苦しみ - Software Transactional Memo
  • Kestrelのfanoutを使ってみる

    Advanced Message Queuing Protocol (AMQP) モデルでは Producer -> Exchange -> Binding(topic exchange の場合のみ) -> Queue とメッセージは流れる。ここで中心的な役割を果たす Exchange は主に fanout/direct/topic の3パターンがある。このうち Kestrel もサポートしている fanout を触ってみた。 AMQP の3つの Exchange 1. Fanout Exchange fan-out exchange ではメッセージは exchange とつながっている各キューに配信される。 2. Direct Exchange direct exchange ではメッセージの routing key に応じて配信先キューが振り分けられる。 3. Topic Exchan

    Kestrelのfanoutを使ってみる
  • kernel:I/O Schedule - Simple is Beautiful

    CPUリソースの割当スケジュールとは別に、デバイスI/Oもスケジューラがある(I/Oスケジューラ) kernel2.6がサポートするI/O Scheduler Name 内容 Complete Fair Queueing(CFQ) ProcessごとにQueueを割り当て、各Queueに均一の帯域幅を、I/O要求に優先度を設定する。優先度に基づきI/Oが処理される deadline 特定の時間を経過しても実行されていないI/O処理を優先的に処理する(長時間I/O処理が実施されないことを防止する)。データベース管理システムのI/O処理等に向く anticipatory deadlineスケジューラ改良型。Processごとの統計情報に基づき、一般的に連続的なI/O要求を行う傾向があることを利用して一連のI/O処理をまとめて実行するようにする noop 要求順でのI/O処理 CFQはkerne

    kernel:I/O Schedule - Simple is Beautiful
  • memcachedプロトコルを使ったBlockingQueue - Blog by Sadayuki Furuhashi

    マルチスレッドプログラミングでよく使うBlockingQueueをmemcachedプロトコルを使ってネットワーク越しに使うことができるサーバーを実装してみました。 タスクをガンガンpushしていく一方で、ワーカースレッドならぬワーカーサーバーが1つずつpopして処理していくような分散処理に使えるかも知れません。スレッドプールのネットワーク分散版。 ソースコードはCodeReposにあります:lang/ruby/lkserver $ svn co http://svn.coderepos.org/share/lang/ruby/lkserver $ cd lkserver # memcachedテキストプロトコルのパーサーをコンパイル $ ruby extconf.rb $ make # Rev(イベント駆動IOライブラリ)をインストール $ gem install rev # 11511

    memcachedプロトコルを使ったBlockingQueue - Blog by Sadayuki Furuhashi
  • 待ち行列

    待ち行列(queue)とは 待ち行列をとりあえず簡単に構築する リングバッファ 待ち行列の構造体を作る レポート問題 待ち行列(queue)とは 待ち行列(キュー)も,逐次入出力が繰り返されるデータを一時的に貯えておくためのデータ構造である。なお,英語でキュー(queue)とは,レジなどで順番を待つ人の列も意味する。 待ち行列にデータを追加することを enqueue と言い,待ち行列からデータを取り出すことを dequeue と言う。待ち行列へのデータの追加取り出しは次のように行われる。 enqueue: 追加されたデータは順次,待ち行列の末尾に付け加わる。行列の長さは1だけ増える。 dequeue: データを取り出すときには,待ち行列の先頭から取り出す。行列の長さは1だけ減る。 すなわち,待ち行列から一つデータを取り出すとき,それは(残っているデータの中で)最初に追加したものである。この

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

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

  • 1