[关闭]
@joshsulin 2015-07-02T06:12:57.000000Z 字数 824 阅读 674

收藏功能重构二期

公司zhe800


重构一期回顾

一期主要工作就是解决了业务复杂的问题, 把favorites与temai_favorites两表进行了合并, 收藏都统一存在 favorites 表中. 此功能己经在测试阶段了.

重构二期计划

现在favorites表数据己经快达到2亿了, 二期主要计划是对 favorites 进行分表操作。
现在面临需要讨论的问题是:

1. 需要分成多少个表?

以下我统计了一些数据, 最近4个月的某一天收藏数.
2015-07-01 号收藏数达: 372452
2015-06-01 号收藏数达:427112
2015-05-01 号收藏数达:456034
2015-04-01 号收藏数达: 555206

随着网站的发展, 我们按日收藏数80万来计算, 今后一个月的收藏数达到 2.4千万。
如果分100张表
  每张表一个月的增量在24万, 按每张表最大的量值 1千万, 大概在3年后会达到1千万。如果按每张表最大的量值 5千万计划,大概在15年后会达到5千万。

如果分50张表
第张表一个月的增量在48万,按每张表最大的量值 1千万, 大概会在1.7年后会达到1千万.如果按每张表最大的量值5千万计划,大概在8年后会达到5千万, 其实favorites达到1个亿也不会影响到效率, 因为现在也2个亿了。所以我认为分50张表就己经足够了.

总结:我认为分50张表己经很足够了。

2. 采用Ruby还是Java实现?

我认为采用Ruby实现就可以了, 因为之前的积分项目score_serivce也进行了分表, 采用Ruby完成的, 现在在分表操作上面也非常成熟了.

3. 工作量如何? 是否需要把收藏相关业务移出折800项目?

二期只是做分表和修改现有代码以支持分表后代码能正常运行. 数据库也不会移出折800数据库. 工作量不会太大。
三期计划是把分好的50张表移到单独的数据库, 代码移出折800项目, 以提供收藏服务接口。

以上为收藏功能重构二期的总体开发方案.

总共分为三期完成,重构总体思路为小步迭代。请大家看看,提出意见

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注