TwitterのSearch APIを見ていて気がついたこと

Twitter Search APIのドキュメントを見ていて
気がついたことをだらだらと書いてみる。

例えば、「ヤフオク」で検索した時に、検索結果が返ってくる。
この時、最新のIDが*****だったとすると、次に、
since_id=*****をつけると、*****以降に更新された分の結果だけを
取得することが出来る。

これは、APIを利用する側が差分更新をするための機能なのだが、
差分更新をするために指定するパラメータが、
if-modified-since的に日時+時刻を指定するのではなく、
IDを指定させるところが面白いな、と思った。


差分更新の時に、時刻ではなくIDを指定させる、ということは、
Twitterのデータは最新のつぶやきの方が、
大きいIDが付いていることが保証されている、ということになる。

実際、流れているつぶやきを見ていると、確かに、
新しいつぶやきの方が大きいIDが付与されている。

つまり、Twitterのつぶやきは、
1つのでっかいQueue(配列)のような形で保存されている、
ということなんだろう。

IDが数値なので、その配列の*****番目、ということだろうか。
auto_incrementとしてIDが付与されるとすると、
atomicに処理しなければならず、ロック処理が大変な気がする。

単純に投稿日時(+micro秒)とかからIDを発行しているなら
ロックも必要ないが、投稿タイミング的にかぶってしまう可能性が
でてきてしまう。

このIDはどのタイミングで、誰が発行するものなのか、
かなり知りたいので、ご存知の方がいたら教えてもらいたいっす。

人気の投稿