We've seen cases where stray keys end up on the wrong shard. This shouldn't happen. Add debug assertions to prevent this. In release builds, we should be lenient in order to handle changing key ownership policies. Touches #9914.
wait_until_flushed
PageCache
InMemoryLayer
Value::deser
shard_id
BufferedWriter