时间戳的原理与意义.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
时间戳的原理和意义 两个问题的解决 带宽和查询压力 每个client 都会拉取一系列列表数据,典型的如好友列表、群列表、阻止列表、分组列表 等等。这些列表数据与用户的体验密切相关,属于非常重要的数据。为了保证数据的正确拉 取,client 最开始采取的做法是,每次登陆拉取这些列表。 后来我们发现用户的列表很少发生改变,于是希望client 能够通过某种方式捕捉数据改变 的事件,从而触发拉取动作。这么处理所带来的好处是,client 与server 之间的流量被减少 了,同时server 面临的压力会被减轻。 我们采取的做法是为每个列表数据分配用于标识版本的时间戳。Client 在拉取列表数据之 前,先拉取时间戳与本地时间戳进行对比,如果server 的数据有更新,client 才会发起拉取 操作。 为什么时间戳需要存放在server 端呢?考虑如下情况: 机器A Step 1 用户从机器A迁移至机器B 版本1 S 2 t e p p Server e t 1 S 版本2 机器B Step 2 用户从机器B迁移至机器A State 1 用户在机器A 使用client,然后拥有数据版本1 作为本地存储 State 2 用户在机器B 使用client,然后操作了列表数据,拥有数据版本2 作为本地存储 State 3 用户回到机器A 使用client,本地存储的数据版本实际上已经很低了,需要与server 做一次同步 综上所述,server 端需要为每个用户存储时间戳数据,它实际上是由多个时间戳所组成, 每个时间戳代表着一类数据。 通常情况下,列表型的数据拥有自己的时间戳。此外,我们按照变化频率,把用户的属性 数据 (如签名档、头像等),分为了不同的时间戳。这里分类的依据是: 1. 基本不变或很少变化的数据合用一个时间戳 2. 变化频率较高的数据合用一个时间戳 对于情况1,可以预料时间戳的版本基本不会发生变化,所以它的确可以起到节省流量的 作用。对于情况2,则对流量的节约作用很有限。 时序问题 对于两台服务器而言,例如chat-dbcache: Chat dbcache R-f W-f 数据版本发生更新 W-b cache b - R drop in 时间 时间 1. R-f(read-forward)表示发出读请求 2. W-f(write-forward)表示发出写请求 3. R-b(read-backward)表示读请求处理完毕返回 4. W-b(write-backward)表示写请求处理完毕返回 由上图可知,读请求携带了一份旧数据返回给请求方 (这里是chat )。当请求方含有cache 时,由于没有对cache 做额外的保护,旧数据会进入cache 。这时除了等待cache 超时,没 有什么好的办法把旧数

文档评论(0)

xiaofei2001129 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档