Scala関西サミット2018で発表したスライドです。
Scala関西サミット2018で発表したスライドです。
2. トランザクションの基本 • トランザクションとは:CommitかAbortで終わる 複数の手続きの塊 – 例 [Read(x) Read(y) Write(y) Commit] • トランザクションマネージャとは:トランザクショ ンを複数並行して流し込んでも、何らかの順序 で一つずつ直列に流し込んだかのような結果を 生み出すシステム – トランザクションマネージャの中では主に並行制御 アルゴリズムが使われる 3. 並行制御アルゴリズム • 2 Phase Lock・タイムスタン プ・グラフ・楽観的制御と 様々な亜種が考案されて きた – その系統を樹形図で表し たのが右図 – 2PLは有名だがその位置づ けは数ある手法の一角に 過ぎない Transactional Information Systems 176ページから抜粋 4. 2 Phase Lock おさらい A「ロックを取っ
Concurrency is a great way to get more stuff done faster. Go channels are perfect for enabling multiple concurrent goroutines to safely communicate within a single process, but if we want to let multiple machines/nodes communicate in a similar way, we have to write completely different code and integrate with messaging queues, gRPC, or something else. Until now. Vice abstracts message queue techno
Concurrency is not Parallelism Waza Jan 11, 2012 Rob Pike Video This talk was presented at Heroku's Waza conference in January 2012. Watch the talk on Vimeo 2 The modern world is parallel Multicore. Networks. Clouds of CPUs. Loads of users. Our technology should help. That's where concurrency comes in. 3 Go supports concurrency Go provides: concurrent execution (goroutines) synchronization and mes
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
So, I have been working on a multi-threaded JavaScript runtime, Nexus.js. You can think of it as the mad cousin of Node.js. First of all: there is no event loop. You heard that right, there is no event loop. Everything is scheduled on a thread pool, which picks “tasks” from a priority-queue and begins executing them — in parallel — on all CPU cores, simultaneously. There’s no `process.nextTick()`
Goというプログラミング言語の強みの1つは、 Tony Hoare考案のCSP に基づくビルトインの並行性(Concurrency)です。Goは並行性を念頭にデザインされているため、複雑に並行したパイプラインの構築を可能にしています。でも、それぞれの並行性パターンがどのように見えるものなのか気になったことはありませんか。 もちろん、気になったことはあると思います。恐らくそれぞれ形は違っても、誰もが頭に描いているのではないでしょうか。もし、「1から100までの数字」について聞かれたら、無意識に頭の中で数字のイメージを思い浮かべると思います。例えば、私の場合、自分の前から1から20までがまっすぐに並び、21以降は90度右に曲がり1000以降まで続くイメージが浮かびます。これは多分私が幼稚園の時に教室の壁に沿って数字が貼られていて、ちょうど角に数字の20があったからなのだと思います。別の例えをす
If you prefer video over blog posts, here is my talk on this at GopherCon 2016: https://www.youtube.com/watch?v=KyuFeiG3Y60 One of the strongest sides of Go programming language is a built-in concurrency based on Tony Hoare’s CSP paper. Go is designed with concurrency in mind and allows us to build complex concurrent pipelines. But have you ever wondered - how various concurrency patterns look lik
Go Concurrency Patterns Rob Pike Google Video This talk was presented at Google I/O in June 2012. Watch the talk on YouTube 2 Introduction 3 Concurrency features in Go People seemed fascinated by the concurrency features of Go when the language was first announced. Questions: Why is concurrency supported? What is concurrency, anyway? Where does the idea come from? What is it good for? How do I use
Go使いたくなる理由の一つに、マルチスレッドプログラミング的なものを高速な言語で安全に実装したいというのがある。Goにおいてそれを支えるのが、自前で実装した軽量スレッドといえるgoルーチンと、mutexなどのロックの代わりに使えるChannelという概念だ。 実際に実装するときに、Goルーチンは難しくないが、Channelを使うのは割と知識と経験が必要なのでここでは、Channelについてすこし詳しく書いてみる。 Message Passing まずは理論から。 Goのチャネルなどのロックを使わない方法の並行処理はMessage Passingと呼ばれている。 以下の英語版Wikipediaにあるように数学的な理論にもなっているしっかりした枠組み。 ErlangのActor Modelなどもこの仲間。GoのチャネルとActor Modelは、実は、同等の概念で表現方法が違うだけらしい。 (
1. Goroutineと Channelから はじめるGo言語 ver. 5 2015/11/26(木) @「最近、Go言語始めました」の会 The Go gopher was designed by Renee French. The gopher stickers was made by Takuya Ueda. Licensed under the Creative Commons 3.0 Attributions license. 2. アジェンダ ● 自己紹介 ● Goとは? ● Goroutineの基本 ● GoroutineとChannel ● 複数のChannelを扱う ● ファーストクラスオブジェクト ● 単方向のChannel ● for-selectパターン
項番 機能 1 主要3キャリアへの独自?ルールにより送信(セッション数、同時メール送信数の制限) 2 配信時刻制限(docomo.co.jp宛のメールは深夜帯を避けるなど) 3 エラーメール処理(バウンスメールをカウントして、設定した回数を越えたら配信しない) 4 絵文字メール送信 5 単位時間あたりのメール送信制限(例 1時間に6万通を上限にする等) 6 複数アドレスによるメール送信(キャリア宛のメール送信の高速化) 本日は、1についてです。前回、なにげに解答が書いてあったのですが、master.cfでコントロールします ## 配信制限用 smtp-docomo unix - - n - - smtp -o smtp_destination_concurrency_limit=1 -o smtp_destination_recipient_limit=1 smtp-softbank un
はじめに 実際に運用していた時に非同期にしていた主な処理は下記のようなものがあります。 iOS Android の push 通知の送信処理 ログの作成 様々な外部 API の呼び出し 非同期で更新しても問題ないデータの更新 Sidekiq is なに sidekiqは非同期処理を実現する gem 他にも Ruby で非同期処理を実現できる有名な gem には resque や delayed_job 等がある。 sidekiq.org Enterprise版等もありますが、 今回はOSS版を使用している前提でのお話しです。 他の非同期処理が可能な gem との簡単な比較 FAQ · mperham/sidekiq Wiki · GitHub この内容は結構真実を語っていることを最近知った Sidekiq Redis マルチスレッド リトライ処理あり おしゃれなダッシュボード Resque
Threading and concurrency are hot topics in the Ruby community. Want to join the conversation? You've probably heard people around you talking mutexes, race conditions, or the GIL. Do you wonder what the heck they're talking about? This book is a gentle introduction to these concepts and will give you the knowledge you need to become your teams resident concurrency expert. "If you've been avoiding
以前、このような記事を書きました。 Concurrency Utilitiesを使った並列処理・マルチスレッドのおさらい (2013-12-26) 前回の内容は、Concurrency UtilitiesだけでなくJavaのマルチスレッドの話も一部含んでいましたが、今回は、Concurrency Utilitiesだけにフォーカスして、全体が分かるように整理してまとめ直しました。 目次 概要 準備 タスク・フレームワーク (Executor) 同期キュー シンクロナイザー 並行処理コレクション 時間単位 アトミック値型とアトミック操作 ロック・フレームワーク 概要 今回は、Concurrency UtilitiesのAPIをいくつかのグループに分類し、それぞれのグループの主要な機能を「広く浅く」紹介する、という形式でまとめています。 パッケージ単位で分け、それからjava.util.con
Ruby developers need to stop using EventMachine. It's the wrong direction. Lost in the "Threads vs Event Driven vs Process Spawning" debate is that you can combine them! Learn how Celluloid is improving thread programming by abstracting them using a higher level framework called Celluloid, how you can use Celluloid::IO to throw a reactor pattern into a thread. Using this approach, you can take adv
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く