随笔分类 -  项目总结

C++ HDFS Client
摘要:概念(扫盲) google three paper Google File System(2003) - 存储 MapReduce(2004) - 计算 BigTable(2006) - 查询 HDFS Hadoop Distributed File System,分布式文件系统,它是GFS的开源实 阅读全文
posted @ 2020-09-05 21:06 chenguang9239 阅读(2092) 评论(0) 推荐(0)
缓存
摘要:背景 在请求具有一定的重复性的业务场景下,客户端或者服务端将请求结果保存在缓存中,可以大大减少服务端压力和延时(尤其是请求方采用负载均衡策略,比如IP一致性哈希时)。通常缓存的大小是固定的,在大部分情况下缓存应该尽量保存热度较高的请求结果以提高缓存命中率,有多种缓存淘汰策略如:LRU、定期淘汰等,在 阅读全文
posted @ 2020-08-27 00:08 chenguang9239 阅读(217) 评论(0) 推荐(0)
死锁及分析
摘要:概念 死锁的四个必要条件 互斥 至少有一个资源必须处于非共享模式,即一次只有一个进程可使用。如果另一进程申请该资源,那么申请进程应等到该资源释放为止 占有并等待 —个进程应占有至少一个资源,并等待另一个资源,而该资源为其他进程所占有 非抢占 资源不能被抢占,即资源只能被进程在完成任务后自愿释放 循环 阅读全文
posted @ 2020-07-18 14:47 chenguang9239 阅读(360) 评论(0) 推荐(0)
连接池学习
摘要:前言 工作中经常会用到各种池,因此写几篇随笔学习并记录一下,最后附有实现代码。另见:线程池学习、对象池学习 概念 单结点 & 多结点 连接数量 故障恢复 获取多个结点 设计 连接池 监听多个动态结点 负载均衡 轮询 一致性哈希 相关设计模式 工厂模式 父类决定实例的生成方式,子类决定所要生成的具体的 阅读全文
posted @ 2020-06-26 13:49 chenguang9239 阅读(126) 评论(0) 推荐(0)
对象池学习
摘要:前言 工作中经常会用到各种池,因此写几篇随笔学习并记录一下,最后附有实现代码。另见:线程池学习、连接池学习 概念 为了避免大量创建(构造)对象、销毁(析构)对象带的性能开销 设计 对象队列 初始化时,指定队列长度 出队、入队操作需要加锁保护 对象的构造 在初始化对象池时构造好 对象并不是一开始全部构 阅读全文
posted @ 2019-09-21 21:58 chenguang9239 阅读(199) 评论(0) 推荐(0)
ZooKeeper学习及其C++ client
摘要:概念 ZooKeeper集群中的三种服务器角色 Leader Follower Observer ZAB协议(ZooKeeper Atomic Broadcast)简介 一致性保证 写操作强一致性 读操作顺序一致性 要解决的问题 正确、高效地处理客户端大量的并发请求 分布式环境中,要保证一个全局的变 阅读全文
posted @ 2019-08-10 17:16 chenguang9239 阅读(1869) 评论(1) 推荐(1)
限流(令牌桶算法)学习
摘要:限流概念 为了保证系统的 稳定性 甚至 可用性,需要对接收到的QPS进行限流;简单的说,在QPS上,不能因为serving某一个服务影响到serving整体的服务 算法描述 每秒最多可拿N个令牌(每秒内拿令牌的最大速率可以不均匀,但每秒间拿令牌的最大速率是均匀的) 如果这一秒内没有剩余可拿的令牌(或 阅读全文
posted @ 2019-06-02 22:53 chenguang9239 阅读(447) 评论(0) 推荐(0)
线程池学习
摘要:前言 工作中经常会用到各种池,因此写几篇随笔学习并记录一下,最后附有实现代码。另见:连接池学习、对象池学习 概念 为了避免每次执行任务都新建线程、销毁线程的开销 设计 线程队列 固定数量 初始化时,创建指定个数的线程,每个线程会循环从任务队列中取任务并执行,或者等待任务队列有任务添加进来 任务队列 阅读全文
posted @ 2019-06-02 22:53 chenguang9239 阅读(223) 评论(0) 推荐(0)
Redis学习及C++ Codis Client
摘要:Redis 学习 待补充 Codis 学习 待补充 C++ Redis Client C Redis client hiredis库基本实现了Redis的协议的最小集,大部分C++ Redis Client都是基于hiredis进行封装与开发 pipeline pipeline方式是指把多次请求交互 阅读全文
posted @ 2019-06-02 22:50 chenguang9239 阅读(447) 评论(0) 推荐(0)
Thrift从入门到TNonblockingServer学习
摘要:入门 从0开始 参考Thrift 入门教程 设计做完了,小吴要开始编码了。如果按照“手工作坊”的思路,小吴至少需要完成如下几个方面: (1)“客户端向服务器端发送数据”的代码 (2)“客户端接收服务器端查询结果”的代码 (3)“服务器端接收客户端数据”的代码 (4)“服务器端向客户端发送查询结果”的 阅读全文
posted @ 2018-08-16 22:26 chenguang9239 阅读(1052) 评论(0) 推荐(0)
Faiss索引学习
摘要:背景 以神经网络对样本进行特征的提取,然后在海量的特征库里进行特征相似度的检索、匹配已经是 AI 技术落地的一大领域;使用机器学习、深度学习领域中的方法提取出样本的特征,最终目标就是用一个embedding向量更准确、丰富的表达原始样本。在此基础上出现了许多开源的向量相似性检索库,比如 Faiss: 阅读全文
posted @ 2018-08-03 23:00 chenguang9239 阅读(2429) 评论(0) 推荐(0)