shard实现思路