跳转到主要内容

Sharedata

2 篇
  • 关于 sharedata 的使用

    发布于 文章 1069 字 3 分钟

    SkynetSharedata引用计数

    最近上了全节点热更配置表。起因是有一次热更配置表时没有覆盖全节点,导致数据不一致而 traceback,中断了一个重要流程。由于读表服务和目标服务的相关性比较隐蔽,热更 review 时没能发现这个问题,于是决定后续所有配置表都采用全节点热更。 全节点热更上线后,发现内存会持续增长,多次热更后尤为明显。同事排查后发现是 sharedata 服务的内存一直在涨,应该是旧配置表没有释放导致的。这件事比较复杂,搞清楚后很容易又忘了,决定写篇博客记录一下。 为什么要有 sharedata 各服务的配置内 …

    最近上了全节点热更配置表。起因是有一次热更配置表时没有覆盖全节点,导致数据不一致而 traceback,中断了一个重要流程。由于读表服务和目标服务的相关性比较隐蔽,热更 review 时没能发现这个问题,于是决定后续所有配置表都采用全节点热更。 全节点热更上线后,发现内存会持续增长,多次热更后尤为明显。同事排查后发现是 sharedata 服务的内存一直在涨,应该是旧配置表没有释放导致的。这件事比较复杂,搞清楚后很容易又忘了,决定写篇博客记录一下。 为什么要有 sharedata 各服务的配置内 …

  • 当lua_sharedata碰上上限

    发布于 文章 567 字 2 分钟

    SkynetSharedata

    最近在使用sharedata共享配置表的时候遇到了问题,报了stack overflow,最小复现的例子贴在这里了。之前因为忙,没有细读过sharedata 的代码,这次事故正好临急抱佛脚读一遍,匆忙记点笔记,以后好回忆起来。sharedata是为了不同服务之间共享配置表而诞生的,通过sharedata接口拿到的是一个 c 的代理对象,并不直接持有配置表本身。正是通过这个代理,实现了配置表的无感热更,以及服务之间的配置内存共享。对于字符串来说,这个C代理持有的并不是字符串本身,而是一个索引,指向 …

    最近在使用sharedata共享配置表的时候遇到了问题,报了stack overflow,最小复现的例子贴在这里了。之前因为忙,没有细读过sharedata 的代码,这次事故正好临急抱佛脚读一遍,匆忙记点笔记,以后好回忆起来。sharedata是为了不同服务之间共享配置表而诞生的,通过sharedata接口拿到的是一个 c 的代理对象,并不直接持有配置表本身。正是通过这个代理,实现了配置表的无感热更,以及服务之间的配置内存共享。对于字符串来说,这个C代理持有的并不是字符串本身,而是一个索引,指向 …