CloudantのQueryをケチる
経緯
ケチる 無駄な処理をなくす、ですね。
Node-redでBotを書いていて、CloudantのLite枠内に収まるように動かすことを少し真面目に考えた時に、結構Queryがネックになってることに気がついた。
Documentを呼び出す時に最初何も考えていなかったのでQueryを使ってたわけですが、できるだけ使わない様にしたい。きっと早いはずだし。
やること
至極当たり前だけど、各Documentの_id
をシステムが入れてくれる値を使わず、アプリ側で入れる。
具体的には、BotでSession管理する時にSessionデータを入れるDocumentの_id
はユーザー情報に紐づいたデータ(例えばユーザーのUUIDとか)などを使う方が良いと思われる。
その方が、QueryじゃなくてLookup(つまり_id
でGetしに行く)で済む。Indexもいらなくなるし。Liteで20Lookup/sec vs 5Query/secだからえらく違ってくる。
ただ、UUID等をまんま使うのは何となくよろしくない気がするので、不可逆に加工したものを使う方がより良いんではないかと思う。
その他
そもそもBotのSession管理で都度Writeするってのも如何なものかと思えてきたが、かといってどこに情報持たせるかってのもメンドイので後で考えることにする。
上限に引っかかるとCloudantでエラーになるってことは、アプリ側で待たされるんじゃなくて処理が止まると言う事を意味するとなると、スループットを調整して上限超えない様にするって事も考えないといけない。。
Author And Source
この問題について(CloudantのQueryをケチる), 我々は、より多くの情報をここで見つけました https://qiita.com/kouichirou/items/74da5b96206b1c8f45b6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .