240 发简信
IP属地:湖北
  • 使用 jemalloc profile memory

    对于长时间运行的服务端程序,内存的使用一直是一个非常重要的监控指标,当内存的使用量一直在上升的时候,我们就需要警觉起来,因为很有可能整个系统出现了内存泄露。那么剩下的问题就比...

  • 120
    Redis中国用户组|唯品会多线程redis设计与实现

    作者介绍 申政,开源爱好者,唯品会高级DBA,主要负责Redis相关领域的源码研究和研发工作。开源项目: _ redis cluster的C客户端(hiredis-vip)_...

  • Tuning RocksDB - Write Stalls

    RocksDB 使用 LSM 的方式用来提升写入的性能,但如果写入过快,超过了 RocksDB 处理的极限,RocksDB 就会考虑对写入进行降速处理。这个在 TiKV 调优...

  • 120
    Libco协程库实现

    腾讯开源的Libco协程库,以前看过部分源码,所有的协程都用数组模拟栈表示,里面使用到的技术点有hook系统函数,时间轮定时器,epoll,共享栈等,但没有协程池,当协程完成...

  • 常见的内存错误

    好久没有更新博客了,一方面是最近一段时间很忙很忙,策划需求不明确,开会喷案子,修改再修改,最后形成定稿,不容易;另一方面是负责了比较重要的系统,需要花更多的时间去分析,整理方...

  • 120
    RDMA Vs DPDK

    DPDK DPDK网络层: 硬件中断->放弃中断流程; 用户层通过设备映射取包->进入用户层协议栈->逻辑层->业务层; 核心技术: 1)将协议栈上移到用户态,利用UIO技术...

  • 120
    likely(unlikely)与pthread_once

    最近遇到些比较语法糖的知识,记录下来防止忘记。 1. likely与unlikely likely与unlikely是Kernel中提供的两个宏,在Linux 2.6版本中,...

  • 赞,写得很清晰

    Raft协议简述

    Raft 是一种为了管理复制日志的一致性算法,该算法强依赖 Leader 节点的可用性来确保集群数据的一致性,即如果client向leader发起添加日志请求,如果leade...

  • 协程二三事(1)

    1. 协程介绍 协程(coroutine)是近些年来在后台开发方向比较火的一个概念,实际上,协程在历史上比线程还要早些,而最近火起来则是因为近来后台服务开发中遇到的C10K问...

  • 120
    一种解决jar包冲突的组件实现

    对于java开发程序员来说,jar包冲突是个让人很头痛的问题,而osgi可以解决这个问题,但是使用成本比较高,必须要按照osgi那一套结构来才能使用,在现有项目代码基础上重构...

  • Paxos算法简述

    算法包含proposer(提案者)、acceptor(决议者)、leaner(学习者)三种角色,分成两个阶段:prepare阶段和accept阶段。 acceptor维持3个...

  • Raft协议简述

    Raft 是一种为了管理复制日志的一致性算法,该算法强依赖 Leader 节点的可用性来确保集群数据的一致性,即如果client向leader发起添加日志请求,如果leade...

  • 跳表的简单实现

    跳表(SkipList)是一种检索效率非常高的数据结构,其检索效率经证明与红黑树相当。但是,轮到实现复杂度比较的时候,跳表可就把红黑树、AVL树等结构足足甩出了八条街,以至于...

  • C++模板小结

    C++中突出的特性之一就是代码重用,而模板在其中发挥了重要的作用,STL也是依托于C++模板而实现的最为广泛和有用的工具库。模板所涉及到的知识比较杂,简单总结如下,以便日后温...

  • 一个高效的C++类型转换判断实现

    最近在网上看到了一个C++类型转换判断的高效实现,分享出来共同学习。作者使用了sizeof关键词、函数重载与可变参数的功能,功能实现得简洁优雅。Talk is cheap, ...