Package fishbone automatically rewrites the behavior based on KeysOnly + Get by Key when Run or GetAll Query, contributing to reducing the amount of charge. If you use Run or GetAll with Query, you will be charged for Small Operations + Entity Reads as you retrieve all Entities from Datastore. We decompose this automatically, set it to KeysOnly and get Entity from cache in Run or GetAll method.
Recommend: don't use this middleware in production. You should implement KeysOnly + GetMulti strategy in YOUR application. Because, SingleGet is executed every time when Iterator#Next called. It's too slow even memcache access.
New fishbone middleware creates and returns.