随笔分类 -  设计思想

摘要:摘要:腾讯CKV,是腾讯自主研发的高性能、低延时、持久化、分布式KV存储服务。在腾讯的微信平台、开放平台、腾讯云、腾讯游戏和电商平台广泛使用,日访问量超过万亿次。本文将全面剖析CKV的实现原理和技术挑战。与Memcached和Redis等开源NoSQL相比,CKV具有以下优点。低成本:CKV利用数据冷热自动分离技术,将热数据存储在内存,冷数据存储在SSD中,从而大幅度降低成本,且保证99%以上的访问命中内存。而Memcached和Redis的数据都存储在内存中,成本是CKV的3倍。可扩展性强:CKV单表存储空间可以在1GB到1PB之间在线自动无损伸缩,业务基本无感知,适合各种规模的业务和业务的 阅读全文
posted @ 2014-03-27 13:52 D调的晨星 阅读(975) 评论(0) 推荐(0)
摘要:TCP一、TCP数据包格式首部格式:http://en.wikipedia.org/wiki/Transmission_Control_Protocol建立和关闭连接时,SYN和FIN需要占一个序列号,其它的纯ACK不占序列号。伪首部计算:http://www.tcpipguide.com/free/t_TCPChecksumCalculationandtheTCPPseudoHeader-2.htmTCP协议:http://www.networksorcery.com/enp/protocol/tcp.htm选项:用来传递附加信息给终点。二、流量控制与可变窗口三、TCP建立连接和关闭的三次握 阅读全文
posted @ 2014-02-10 18:10 D调的晨星 阅读(451) 评论(0) 推荐(0)
摘要:摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。第二部分结合MySQL数据库中MyISAM和InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题。第三部分根据上面 阅读全文
posted @ 2013-02-22 09:28 D调的晨星 阅读(195) 评论(0) 推荐(0)
摘要:第 1 部分: 推荐引擎初探“探索推荐引擎内部的秘密”系列将带领读者从浅入深的学习探索推荐引擎的机制,实现方法,其中还涉及一些基本的优化方法,例如聚类和分类的应用。同时在理论讲解的基础上,还会结合 Apache Mahout 介绍如何在大规模数据上实现各种推荐策略,进行策略优化,构建高效的推荐引擎的方法。本文作为这个系列的第一篇文章,将深入介绍推荐引擎的工作原理,和其中涉及的各种推荐机制,以及它们各自的优缺点和适用场景,帮助用户清楚的了解和快速构建适合自己的推荐引擎。信息发现如今已经进入了一个数据爆炸的时代,随着 Web 2.0 的发展, Web 已经变成数据分享的平台,那么,如何让人们在海量 阅读全文
posted @ 2012-10-08 09:43 D调的晨星 阅读(348) 评论(0) 推荐(0)
摘要:NoSQL架构实践(一)——以NoSQL为辅本文为凤凰网负责底层组的研发工作的孙立同学在InfoQ上发表的NoSQL系列文章之一,本文探讨了使用NoSQL作存储的几种典型模式,对NoSQL的实践及应用,具有很强的指导意义。前面《为什么要使用NoSQL》和《关系数据库还是NoSQL数据库》两篇从大体上介绍了为什么要用NoSQL,何时该用NoSQL。经常有朋友遇到困惑,看到NoSQL的介绍,觉得很好,但是却不知道如何正式用到自己的项目中。很大的原因就是思维固定在MySQL中了,他们问得最多的问题就是用了NoSQL,我如何做关系查询。那么接下来,我们看下怎么样在我们的系统中使用NoSQL。怎么样把N 阅读全文
posted @ 2012-09-27 11:09 D调的晨星 阅读(1209) 评论(0) 推荐(0)
摘要:老文章了,但是参数还是很有参考性的。Google 公司的Jeff Dean在Stanford大学做了一个非常精彩的演讲(视频未墙)。我觉得我们每一个人都应该去看一看这个视频,当然,没有字幕,需要不错的听力,当然,我不可能全部翻译出来,因为我也不是完全能听懂,下面是一些相关的Notes,供你参夸,并欢迎牛人指证。比较了从1999年到2010年十年来的搜索量的变化。搜索量增加了 1000 倍,而搜索速度快了5 倍。1999年,一个网页的更新最多需要一个月到两个月,而今天,只需要几秒钟,足足加快了5w倍。一开始,这些大量的查询产生了大约30GB的I/O量。2004年,他们考虑过全部重写infrast 阅读全文
posted @ 2012-09-26 17:02 D调的晨星 阅读(255) 评论(0) 推荐(0)
摘要:Google Spanner (中文版)摘要:Spanner是谷歌公司研发的、可扩展的、多版本、全球分布式、同步复制数据库。它是第一个把数据分布在全球范围内的系统,并且支持外部一致性的分布式事务。本文描述了Spanner的架构、特性、不同设计决策的背后机理和一个新的时间API,这个API可以暴露时钟的不确定性。这个API及其实现,对于支持外部一致性和许多强大特性而言,是非常重要的,这些强大特性包括:非阻塞的读、不采用锁机制的只读事务、原子模式变更。中文关键词:谷歌,分布式数据库英文关键词: Google, Spanner, Bigtable, Distributed Database全文目录结 阅读全文
posted @ 2012-09-24 09:49 D调的晨星 阅读(655) 评论(0) 推荐(0)
摘要:首先一定要清楚:事件和委托都是一种程序变量的类型,就和int,string等类型一样是用来定义变量的,然后再学习事件和委托是如何使用的)事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互(例如鼠标单击)引起的,也可能是由某些其他的程序逻辑触发的。引发事件的对象称为事件发送方。捕获事件并对其作出响应的对象叫做事件接收方。在事件通信中,事件发送方类不知道哪个对象或方法将接收到(处理)它引发的事件。所需要的是在源和接收方之间存在一个媒介(或类似指针的机制)。.NET Framework 定义了一个特殊的类型(Delegate),该类型提供函数指针的功能。委托是可保存对方法的引用的类。 阅读全文
posted @ 2012-09-06 17:58 D调的晨星 阅读(186) 评论(0) 推荐(0)
摘要:一些特殊语境的理解摘自《Linux device drivers 3rd》设备驱动程序的作用作为一名驱动程序的编写者,你需要在编程所需的时间以及驱动程序的灵活性之间选择一个可接受的折衷方案。虽然用“灵活”这个词来形容驱动程序显得有些奇怪,但我用这个词实际上是强调设备驱动程序的作用在于提供机制( mechanism ),而不是提供策略( policy ) o区分机制和策略是UNIX设计背后隐含的最好思想之一。大多数编程问题实际上都可以分成两部分:“需要提供什么功能”(机制)和“如何使用这些功能”(策略)。如果这两个间题由程序的不同部分来处理,或者甚至由不同的程序来处理,则这个软件包更容易开发,也 阅读全文
posted @ 2012-09-06 16:17 D调的晨星 阅读(366) 评论(0) 推荐(0)