Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

类似是brpc(bthread)folly(graph)abseil(container) 三个的组合吗 #32

Open
Nic-bit opened this issue May 31, 2024 · 3 comments

Comments

@Nic-bit
Copy link

Nic-bit commented May 31, 2024

内部推广不多哇,都没看到相关文档。
可以看成是brpc(bthread)folly(graph)abseil(container) 三个的组合吗

@oathdruid
Copy link
Collaborator

oathdruid commented May 31, 2024

内部最多的主要用在推荐系统那边,小度和apollo也有一些应用吧,不方便贴内部链接,厂里同学可以知识库搜索『巴比伦塔』

这个库定位主要是

  • 围绕abseil为基础,增强一些必要的功能(有一些folly也提供的功能,不过厂里folly用起来的不多)
  • 主打功能是anyflow的策略框架,还有Reusable的内存池框架,做性能优化支持的
  • 周边的一些增强异步日志的东西,适配brpc的协程同步机制之类的零零总总

@sikey647
Copy link

sikey647 commented Oct 9, 2024

l想问下transient_cache后续会开源吗,厂外有可替代的组件吗

@oathdruid
Copy link
Collaborator

本质就是

  • 一个concurrent hash map用来做cache容器
  • 一个shared future/promise机制,用来做一写多读等待
  • 结合transient使用特性,轮转使用insert only hash map,实现批量后台淘汰和前台缓存解耦

TransientCache写的比较早了,内部这几个独立机制后来都独立拆出来实现了一下,其实内部也就只剩了个壳的封装了;不过用的比较多,有些API其实做的有点晦涩,有时间可以包装一个清爽的开出来;不过还是基础组件和思路就是上面这个,其实包出起来也不太难了;

Java上有个LoadingCache,如果做成fifo淘汰其实也就是这个逻辑了;还没仔细翻过folly,估计可能也有类似LoadingCache的东西

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants