如何使用Firebase分散/分发500000条记录?
要求:如何使用Firebase分散/分发500000条记录?,firebase,firebase-realtime-database,large-scale,Firebase,Firebase Realtime Database,Large Scale,要求: 用户可以注册到公司并免费退订 用户只能获得他们注册的公司的帖子 用户不应该看到他们已经喜欢/不喜欢的帖子 目前,我们正在做的是,当用户加入一家公司时,我们将相关帖子复制到用户user\u Feed,然后客户端获取帖子 现在假设我们有4万个帖子和5万个用户。每个加入公司的用户,我们都需要将40K的数据复制到用户提要。或者,当一家公司发布一篇新帖子时,我们需要构建一个巨大的扇出对象来传递给500KUSER\u FEEDs 这是不可伸缩的 David East在他的陈述中说,扇出技术支持数
- 用户可以注册到公司并免费退订李>
- 用户只能获得他们注册的公司的帖子李>
- 用户不应该看到他们已经喜欢/不喜欢的帖子
user\u Feed
,然后客户端获取帖子
现在假设我们有4万个帖子和5万个用户。每个加入公司的用户,我们都需要将40K的数据复制到用户提要。或者,当一家公司发布一篇新帖子时,我们需要构建一个巨大的扇出对象来传递给500KUSER\u FEED
s
这是不可伸缩的
David East在他的陈述中说,扇出技术支持数百万条记录,但即使在他的例子中,他如何处理100万追随者
我们觉得我们走错了方向。有更好的办法解决我们的问题吗 我们目前的结构如下:
Companies(~20 companies)
{
companyId: {
...comanyInfo
}
}
Users (~500K users)
uid: {
...userInfo
}
User_Companies (500k * max(20 companies))
uid: {
company1: true,
company2: true,
....
}
Company_Users (20 * max(500K users))
companyId: {
uid1: true,
uid2: true,
....
}
Company_POSTS (2K posts/company)
{
companyId: {
postId: {
...postInfo
}
}
}
User_Feed (For each user (500K))
{
uid:
posId : {
like: true
}
}
这篇文章也是在北京开设的