随笔分类 -  cache

上一页 1 2 3 4 5 下一页
分布式缓存系统 Memcached 状态机之SET、GET命令
摘要:首先对状态机中的各种状态做个简单总结,具体可见状态转换示意图: 1.listening:这个状态是主线程的默认状态,它只有这一个状态:负责监听socket,接收客户连接,将连接socket派发给工作线程。 2.conn_new_cmd:每个工作线程的接收到新连接的初始状态,为处理该连接socket准 阅读全文
posted @ 2016-01-17 23:45 duanxz 阅读(742) 评论(0) 推荐(0)
分布式缓存系统 Memcached 状态机之socket连接与派发
摘要:上节已经分析到了主线程中监听socket注册事件和工作线程中连接socket注册事件的回调函数都是event_handler,且event_handler的核心部分都是一个有限状态机:drive_machine。因此接下来将对该状态机具体的业务处理进行深入的剖析。 memcached将每个socke 阅读全文
posted @ 2016-01-17 23:44 duanxz 阅读(741) 评论(0) 推荐(0)
分布式缓存系统 Memcached 状态机之网络数据读取与解析
摘要:整个状态机的基本流程如下图所示,后续分析将按该流程来进行。 接上节分解,主线程将接收的连接socket分发给了某工作线程,然后工作线程从任务队列中取出该连接socket的CQ_ITEM,开始处理该连接的所有业务逻辑。这个过程也就是上图中的第一个状态conn_listening。 而工作线程首先进入的 阅读全文
posted @ 2016-01-17 23:44 duanxz 阅读(713) 评论(0) 推荐(0)
分布式缓存系统 Memcached 半同步/半异步模式
摘要:在前面工作线程初始化的分析中讲到Memcached采用典型的Master_Worker模式,也即半同步/半异步的高效网络并发模式。其中主线程(异步线程)负责接收客户端连接,然后分发给工作线程,具体由工作线程完成客户端的求情任务。 在memcached中,主线程负责监听所有socket上的事件,当so 阅读全文
posted @ 2016-01-17 23:43 duanxz 阅读(928) 评论(0) 推荐(0)
分布式缓存系统 Memcached 主线程之main函数
摘要:前两节中对工作线程的工作流程做了较为详细的分析,现把其主要流程总结为下图: 接下来本节主要分析主线程相关的函数设计,主函数main的基本流程如下图所示: 对于主线程中的工作线程的初始化到启动所有的工作线程前面已经做了分析,后面的创建监听socket、注册监听socket的libevent事件、启动主 阅读全文
posted @ 2016-01-17 23:43 duanxz 阅读(636) 评论(0) 推荐(0)
分布式缓存系统 Memcached slab和item的主要操作
摘要:上节在分析slab内存管理机制时分析Memcached整个Item存储系统的初始化过程slabs_init()函数:分配slabclass数组空间,到最后将各slab划分为各种级别大小的空闲item并挂载到对应大小slab的空闲链表slots上。本节将继续分析对slab和item的主要操作过程。 s 阅读全文
posted @ 2016-01-17 23:42 duanxz 阅读(649) 评论(0) 推荐(0)
分布式缓存系统 Memcached 内存管理机制
摘要:在前面slab数据存储部分分析了Memecached中记录数据的具体存储机制,从中可以看到所采用的内存管理机制——slab内存管理,这也正是linux所采用的内存高效管理机制,对于Memchached这样的内存cache服务器,内存高效管理是其最重要的任务之一。 Linux 所使用的 slab 分配 阅读全文
posted @ 2016-01-17 23:41 duanxz 阅读(671) 评论(0) 推荐(0)
分布式缓存系统 Memcached 工作线程初始化
摘要:Memcached采用典型的Master-Worker模式,其核心思想是:有Master和Worker两类进程(线程)协同工作,Master进程负责接收和分配任务,Worker进程负责处理子任务。当各Worker进程将各个子任务处理完成后,将结果返回给Master进程,由Master进程做归纳和汇总 阅读全文
posted @ 2016-01-17 23:40 duanxz 阅读(652) 评论(0) 推荐(0)
分布式缓存系统 Memcached 数据存储slab与hashtable
摘要:缓存数据以item为基本单元,以双链表形式存放在对应级别大小的slabclass结构的chunk中。同时该item还存放在链式hashtable中bucket中,用于提供快速查找的索引。 首先是理解缓存的基本数据单元item结构: typedef struct _stritem { struct _ 阅读全文
posted @ 2016-01-17 23:39 duanxz 阅读(858) 评论(0) 推荐(0)
分布式缓存系统 Memcached 哈希表操作
摘要:memcached 中有两张hash 表,一个是“主hash 表”(primary_hashtable),另外一个是“原hash 表”(old_hashtable)。一般情况下都在主表中接受操作,在插入新item时判断是否需要进行扩;每次操作的时候,先会检测表是否正处于扩展(expanding)状态 阅读全文
posted @ 2016-01-17 23:39 duanxz 阅读(782) 评论(0) 推荐(0)
分布式缓存系统 Memcached 整体架构
摘要:分布式缓存出于如下考虑,首先是缓存本身的水平线性扩展问题,其次是缓存大并发下的本身的性能问题,再次避免缓存的单点故障问题(多副本和副本一致性)。分布式缓存的核心技术包括首先是内存本身的管理问题,包括了内存的分配,管理和回收机制。其次是分布式管理和分布式算法,其次是缓存键值管理和路由。 什么是Memc 阅读全文
posted @ 2016-01-17 23:38 duanxz 阅读(1478) 评论(0) 推荐(0)
数据分析与处理之二(Leveldb 实现原理)
摘要:郑重声明:本篇博客是自己学习 Leveldb 实现原理时参考了郎格科技系列博客整理的,原文地址:http://www.samecity.com/blog/Index.asp?SortID=12,只是为了加深印象,本文的配图是自己重新绘制的,大部分内容与原文相似,大家可以浏览原始页面 :-),感兴趣的 阅读全文
posted @ 2016-01-17 22:58 duanxz 阅读(476) 评论(0) 推荐(0)
LevelDB Cache实现机制分析
摘要:几天前淘宝量子恒道在博客上分析了HBase的Cache机制,本篇文章,结合LevelDB 1.7.0版本的源码,分析下LevelDB的Cache机制。概述 LevelDB是Google开源的持久化KV单机存储引擎,据称是HBase的鼻祖Bigtable的重要组件tablet的开源实现。针对存储面对的... 阅读全文
posted @ 2016-01-17 22:12 duanxz 阅读(1621) 评论(0) 推荐(0)
大型分布式系统中的缓存架构
摘要:本文主要介绍大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景。 缓存概述 缓存的分类 缓存主要分为四类,如下图: CDN 缓存 CDN(Content Delivery Network 内容分发网络)的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中。 阅读全文
posted @ 2016-01-17 22:10 duanxz 阅读(1454) 评论(0) 推荐(0)
Ehcache/Redis/Tair缓存性能对比[转载]
摘要:FW : http://xulingbo.net/?p=434 版权归许令波所有。此处只是一个转载。 后面介绍的不同方式都有测试数据,这些测试数据都是在同一的测试环境下得出的测试结果: 测试机器的配置如下: 64位5核CPU, E5620 @ 2.40GHz,内存8G CDN端缓存 由 于计数器的价 阅读全文
posted @ 2016-01-17 21:29 duanxz 阅读(4942) 评论(0) 推荐(0)
redis connect time out /connection refused
摘要:出现redis的“Could not get a resource from the pool”真实原因目前有几种: 1、Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeou 阅读全文
posted @ 2015-11-30 23:36 duanxz 阅读(2869) 评论(0) 推荐(0)
EhCache 分布式缓存/缓存集群
摘要:开发环境: System:Windows JavaEE Server:tomcat5.0.2.8、tomcat6 JavaSDK: jdk6+ IDE:eclipse、MyEclipse 6.6 开发依赖库: JDK6、 JavaEE5、ehcache-core-2.5.2.jar Email:ho 阅读全文
posted @ 2015-10-28 23:51 duanxz 阅读(3595) 评论(0) 推荐(1)
查看日志 journalctl
摘要:1. 查看所有日志(默认) journalctl2. 查看内核日志journalctl -k3. 查看本次启动日志journalctl -b4. 按服务查看 -ujournalctl -u ha-bridge.servicejournalctl -u home-assistant@pi.servic 阅读全文
posted @ 2015-08-29 13:48 duanxz 阅读(632) 评论(0) 推荐(0)
Redis事务和watch
摘要:redis的事务 严格意义来讲,redis的事务和我们理解的传统数据库(如mysql)的事务是不一样的。 redis中的事务定义 Redis中的事务(transaction)是一组命令的集合。 事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。事务的原理是先将属于 阅读全文
posted @ 2015-08-20 18:03 duanxz 阅读(750) 评论(0) 推荐(0)
RocketMQ之十:RocketMQ消息接收源码
摘要:1. 简介 1.1、接收消息 RebalanceService:均衡消息队列服务,负责通过MQClientInstance分配当前 Consumer 可消费的消息队列( MessageQueue )。当有新的 Consumer 的加入或移除,都会重新分配消息队列。主要实现consumer的负载均衡, 阅读全文
posted @ 2015-08-06 08:09 duanxz 阅读(2015) 评论(0) 推荐(1)

上一页 1 2 3 4 5 下一页