RavenDb 分片。摆脱加载文档
RavenDb Sharding. Get rid of LoadDocument
我需要制作一个简单的 Post/Comments 示例可分片。我遇到的问题是用户头像。它存储在用户文档中,在当前的单服务器实现中,它被添加到带有 LoadDocument 的 Transformer 中的 Post/Comment(即 LoadDocument(post.UserId).Avatar)。在分片环境中,转换器显然不是我的选择(我不会为每个分片复制用户)。那么我该如何克服这个问题呢?
我有两个想法:
- 通过将其存储在每个 post 和评论中来重复用户头像存储。然后,当用户更新他的头像时,该值应该在他创建的所有 post 和评论中更新。不喜欢这个解决方案,用户头像似乎不是复制的完美候选者
- 从适当的分片请求 posts/comments,在客户端处理它们,以便我们知道我们需要其头像的用户,为用户头像单独请求,合并结果。这就是我目前倾向于的解决方案。
我是不是漏掉了什么?
第二个选项更好,是的。
我需要制作一个简单的 Post/Comments 示例可分片。我遇到的问题是用户头像。它存储在用户文档中,在当前的单服务器实现中,它被添加到带有 LoadDocument 的 Transformer 中的 Post/Comment(即 LoadDocument(post.UserId).Avatar)。在分片环境中,转换器显然不是我的选择(我不会为每个分片复制用户)。那么我该如何克服这个问题呢?
我有两个想法:
- 通过将其存储在每个 post 和评论中来重复用户头像存储。然后,当用户更新他的头像时,该值应该在他创建的所有 post 和评论中更新。不喜欢这个解决方案,用户头像似乎不是复制的完美候选者
- 从适当的分片请求 posts/comments,在客户端处理它们,以便我们知道我们需要其头像的用户,为用户头像单独请求,合并结果。这就是我目前倾向于的解决方案。
我是不是漏掉了什么?
第二个选项更好,是的。