HENTAI Advent Calendar 2012 番外編キュー(QUEUE) を実装しよう!       2012/12/29 忘年会駆動       お だ
自己紹介織田 信亮(おだ しんすけ)大阪で開発者していますSQLWorld の代表ですhttp://d.hatena.ne.jp/odashinsuke/Twitter:@shinsukeoda
単に実装するのはつまらないので…デキュー(DEQUEUE) に トランザクション機能をつける  分散システムとかだと欲しくなったりする  よね?  分散システム作らないけど…
こんな感じの API を提供するenqueuedequeueWithTransactioncommitrollback
Transaction機能つけたった! Hoge 駆動なので、Java で実装したった 仕様  Thread 間で別トランザクション扱い  操作する キュー の インスタンス は同じ
これのどこが HENTAI? みなさん今から実装して下さい! 参加者に負荷を強いるところが      HENTAI!
ネタはさておき…一部 Xtend を使って実装したった  結構あっさり出来た  Xtend の便利なところと不便なところ
これのどこが HENTAI? 大したことなくね? どこが HENTAI よ?       HENTAI?
Transaction といえば… DB (RDBMS) が一般的 SQL Server 使って実装したった! 仕様   DB のトランザクションを利用する   ロック競合で待ちが発生しないようにする   他のトランザクションが開いている状態で...
キューを実現するクエリdelete from [Table] with (READPAST)output deleted.[Value]where [Id] = (  select top (1) [Id]  from [Table] (REA...
T-SQL の解説 TOP 句   先頭 N 件を返す (ソート済データに対し   て) READPAST テーブルヒント   他のトランザクションによってロックされ   ている行を読み取らない OUTPUT 句   更新内容を取得出来る(変更...
他の DB でも出来ると思うけど…機能が足りないとメンドいかも  OUTPUT が無かったり  プロシージャにするとか  READPAST が無かったり  仕様を変えて、commit フラグ列追加して一旦コ  ミットして読み飛ばすとか
HENTAI の条件を満たしているか?DB をキューに見立てるのは実用でもあるかも…  経験ないですがでも、あんまり聞かないので      HENTAI!
Upcoming SlideShare
Loading in...5
×

Hentai advent calendar 2012 番外編

1,107

Published on

2012/12/29 忘年会駆動

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
1,107
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
1
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Hentai advent calendar 2012 番外編

  1. 1. HENTAI Advent Calendar 2012 番外編キュー(QUEUE) を実装しよう! 2012/12/29 忘年会駆動 お だ
  2. 2. 自己紹介織田 信亮(おだ しんすけ)大阪で開発者していますSQLWorld の代表ですhttp://d.hatena.ne.jp/odashinsuke/Twitter:@shinsukeoda
  3. 3. 単に実装するのはつまらないので…デキュー(DEQUEUE) に トランザクション機能をつける 分散システムとかだと欲しくなったりする よね? 分散システム作らないけど…
  4. 4. こんな感じの API を提供するenqueuedequeueWithTransactioncommitrollback
  5. 5. Transaction機能つけたった! Hoge 駆動なので、Java で実装したった 仕様 Thread 間で別トランザクション扱い 操作する キュー の インスタンス は同じ
  6. 6. これのどこが HENTAI? みなさん今から実装して下さい! 参加者に負荷を強いるところが HENTAI!
  7. 7. ネタはさておき…一部 Xtend を使って実装したった 結構あっさり出来た Xtend の便利なところと不便なところ
  8. 8. これのどこが HENTAI? 大したことなくね? どこが HENTAI よ? HENTAI?
  9. 9. Transaction といえば… DB (RDBMS) が一般的 SQL Server 使って実装したった! 仕様 DB のトランザクションを利用する ロック競合で待ちが発生しないようにする 他のトランザクションが開いている状態でも、デ キュー可能(読み飛ばし) キューのインスタンス間で別トランザク ション扱い
  10. 10. キューを実現するクエリdelete from [Table] with (READPAST)output deleted.[Value]where [Id] = ( select top (1) [Id] from [Table] (READPAST) order by [Id])
  11. 11. T-SQL の解説 TOP 句 先頭 N 件を返す (ソート済データに対し て) READPAST テーブルヒント 他のトランザクションによってロックされ ている行を読み取らない OUTPUT 句 更新内容を取得出来る(変更前/変更後)
  12. 12. 他の DB でも出来ると思うけど…機能が足りないとメンドいかも OUTPUT が無かったり プロシージャにするとか READPAST が無かったり 仕様を変えて、commit フラグ列追加して一旦コ ミットして読み飛ばすとか
  13. 13. HENTAI の条件を満たしているか?DB をキューに見立てるのは実用でもあるかも… 経験ないですがでも、あんまり聞かないので HENTAI!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×