go.mercari.io/datastore@v1.8.2/dsmiddleware/fishbone/doc.go (about) 1 /* 2 Package fishbone automatically rewrites the behavior based on KeysOnly + Get by Key when Run or GetAll Query, contributing to reducing the amount of charge. 3 If you use Run or GetAll with Query, you will be charged for Small Operations + Entity Reads as you retrieve all Entities from Datastore. 4 We decompose this automatically, set it to KeysOnly and get Entity from cache in Run or GetAll method. 5 6 Why fishbone? 7 8 https://www.google.co.jp/search?q=%E9%AD%9A%E3%81%AE%E9%A3%9F%E3%81%B9%E6%96%B9+%E8%83%8C%E9%AA%A8&tbm=isch 9 10 Recommend: don't use this middleware in production. 11 You should implement KeysOnly + GetMulti strategy in YOUR application. 12 Because, SingleGet is executed every time when Iterator#Next called. It's too slow even memcache access. 13 */ 14 package fishbone // import "go.mercari.io/datastore/dsmiddleware/fishbone" 15 16 // TODO アプリケーション側で実装する場合のベストプラクティス的コードをどこかに作成してリンクを置く