7ebc91f4b8
* fix: docker path bug. * renew: update comment. * fix: update travis * fix: test/get.cc bug. Co-authored-by: wuxinzhen1 <wuxinzhen1@jd.com> Co-authored-by: wuxz <1067764612@qq.com> Co-authored-by: caopei11 <caopei11@jd.com> |
||
---|---|---|
.gitee | ||
.github/workflows | ||
conf | ||
dockerfiles | ||
docs | ||
script | ||
src | ||
test | ||
.gitignore | ||
.travis.yml | ||
CMakeLists.txt | ||
LICENSE | ||
README.md |
README.md
DTC - Distributed Table Cache 分布式表缓存
概述
DTC是一个分布式表级缓存系统,可为数据库提供热点数据缓存支持,减少数据库的访问压力。 DTC系统由以下组件组成:
- Agent - 提供Key一致性Hash路由、命令请求的服务;能够减少Cache的连接数,提升性能。
- Dtcd - 提供热点数据缓存、DB代理的服务。
- Connector - 此组件为缓存与持久化存储数据库(例如:MySql)之间提供连接和数据传输功能。
特征
- 为数据库提供保护机制:
- 保护空节点,防止缓存穿透。
- 提供永不过期的缓存数据,防止缓存击穿。
- 数据源线程柔性可用,保护数据库有限的连接数。
- 预估超时机制,减少无效数据库请求。
- 保障缓存和数据库的数据一致性:
- write-through机制,保证缓存和数据库数据一致。
- 栅栏机制,防止高并发情景下更新请求丢失。
- 缓存高性能:
- 集成内存分配机制,避免频繁系统调用。
- I/O多路复用机制,承接大并发请求量。
- 多种数据结构模型,提高内存
- 扩展性:
- 缓存节点横向扩容,增强缓存容量。
- 缓存节点纵向扩容,支持备读,解决热key问题。
- 支持分库分表,支持持久化存储的拓展。
性能
单核CPU,单DTC实例情况下,可支持90,000 QPS的查询;
在真实的分布式场景中,DTC可支持超过3,000,000 QPS的查询服务,且命中率在99.9%以上。
构建
项目提供docker镜像,可快速启动服务:
- 启动server镜像:
docker pull dtc8/server:latest
docker run -i -t -p 127.0.0.1:20015:20015 dtc8/server:latest
更多编译详情,请移步buiding.
第三方依赖
项目成员
特别感谢
感谢京东副总裁王建宇博士给予项目的大力支持,多次参与指导提供建议和方向!
许可证
京东集团 版权所有 © Copyright 2021 JD.com, Inc.
许可证遵循 Apache 2.0 协议. 更多细节请访问 LICENSE.