| 702 | } |
| 703 | |
| 704 | KeyRange getCachedKeyRange(StorageCacheData* data, const KeySelectorRef& sel) |
| 705 | // Returns largest range that is cached on this server and selectorInRange(sel, range) or wrong_shard_server if no such |
| 706 | // range exists |
| 707 | { |
| 708 | auto i = sel.isBackward() ? data->cachedRangeMap.rangeContainingKeyBefore(sel.getKey()) |
| 709 | : data->cachedRangeMap.rangeContaining(sel.getKey()); |
| 710 | |
| 711 | if (i->value()->notAssigned()) |
| 712 | throw wrong_shard_server(); |
| 713 | else if (!i->value()->isReadable()) |
| 714 | throw future_version(); |
| 715 | |
| 716 | ASSERT(selectorInRange(sel, i->range())); |
| 717 | return i->range(); |
| 718 | } |
| 719 | |
| 720 | ACTOR Future<Void> getKeyValues(StorageCacheData* data, GetKeyValuesRequest req) |
| 721 | // Throws a wrong_shard_server if the keys in the request or result depend on data outside this server OR if a large |
no test coverage detected