CassandraとHBaseの比較の資料

HintedHandoffというのがなんなのかを探してたら、見つけた資料。

CassandraとHBaseの比較をして入門するNoSQL

とても分かりやすくて、良い資料だと思います。

HintedHandoffは、可用性を極限まで高めるために、一貫性の保証をかなり排除した仕組み。更新するべきノードが死んでいたら、他のノードに教えておいて、死んでいたノードが普及したら同期する。この間、書き込んだデータを読み込んだりすることは出来ない。個人的には、そこまで可用性を高めて、得られるものはなんだろうか?こういったAvailabilityとConsistencyのトレードオフが、どのようなサービスに結びつくのかちょっとすぐに分からないな。

あれかなー、顧客がすごく買いたくなったときに、エラーを返却したら買う気をなくすので、とりあえず購買意欲を削がないようにする?でも、それって技術者としてはさすがに、何を保証しているのだかよくわからない。まあ、経験上そのうちHintedHandoffなデータは、元の鞘にもどるのかもしれないけど。

それとも、SNS上のデータとかで、とりあえず情報伝達の緊急性がないデータはこれでも良いのかもしれないな。書き込んだユーザへの更新は、クライアントにそもそも更新データがあるので、いかにも更新したことにしておいて、繋がっている友達への更新通知はちょっと遅れるみたいな。せっかく書き込んだ日記に対して、「ちょっとサーバの調子がわるいので、ちょっと待ってから、再度書き込みしてください」と言われるよりは気が利いてる。ただ、絶対に永続性は保証しないと、とてつもない不信感が募ると思うけど。まあいいや。