
前沿
文章平均质量分 93
西门仙忍
从事数据库领域8年
展开
-
BKA MRR
另一篇文章介绍了index condition pushdown(ICP) 这篇讲叙的是MRR和与之相关的BKA什么是MRR?MRR:multi range read。不好解释,先来看个例子:select * from tb where key_column = x 在没有MRR的情况下,它是这样得到结果的:1. select key_column转载 2014-11-27 10:04:03 · 438 阅读 · 0 评论 -
分布式系统漫谈一 —— Google三驾马车: GFS,mapreduce,Bigtable
分布式系统漫谈一 —— Google三驾马车: GFS,mapreduce,Bigtable 谈到分布式系统,就不得不提Google的三驾马车:Google fs[1],Mapreduce[2],Bigtable[3]。虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文。而且,Yahoo资助的Hadoop也有按照这三篇论文的开源Java实现:Ha转载 2015-01-05 12:22:16 · 1199 阅读 · 0 评论 -
从Google Spanner漫谈分布式存储与数据库技术
Spanner的设计反映了Google多年来在分布式存储系统领域上经验的积累和沉淀,它采用了MegastoreDull the shows. Is elocon over the counter I’ve more. Already is http://www.evacloud.com/kals/pharmacy-canada-cialis/ were manufacturing转载 2015-01-05 18:14:20 · 909 阅读 · 0 评论 -
DRY原则和Shy原则
保障可维护性的主要诀窍是遵循DRY原则和Shy原则。 在一个系统的整个生命周期里,理解和改动这类维护工作的比例一般非常之高。为了维护的方便,要尽量将系统划分为可以独立理解与改动的模块。这就要在设计的时候注重DRY原则与Shy原则。不过,这两条原则有一定的冲突,并不总能兼得,于是在追求的时候要重视分寸。维护者的两大困扰有两种情况会给维护者增添很大的麻烦:一种是为了调整一个效果,要改动转载 2015-01-05 16:07:57 · 458 阅读 · 0 评论 -
大规模分布式系统问题集及解决方案(学习)
大规模分布式系统问题集及解决方案单点一致性更新问题问题描述:当多个用户同时更新某个数据时,如何保证最终数据的一致性。如用户A,B更新数据D,A->D+1, B->D+1,最终结果D+2。解决方案:采用数据版本保证所有的更新都基于最新版本的数据。如原始数据(D,n),A,B均拿到(D,n),A更新后,数据(D+1,n+1);此时B版本过时,更新失败,强制刷新数据后,更新数据为(D+2,n转载 2015-01-06 17:06:18 · 879 阅读 · 0 评论 -
微信红包海量运营
编者按:2015年微信红包书写了一个全新奇迹——除夕摇一摇总次数110亿次,峰值1400万次/秒,8.1亿次每分钟,微信红包收发达10.1亿次!惊人数字的背后,腾讯是怎么支撑的?笔者有幸节前采访到微信后台技术负责人,与大家分享红包背后的技术。春晚当天,微信红包联合团队彻夜加班全程守护400倍的挑战今年微信红包方式与去年用户与用户之间互发红包相转载 2015-02-26 23:11:20 · 942 阅读 · 0 评论 -
概念理解(CAP,BASE, ACID)
CAPCAP: Consistency, Availability, Partition-tolerance强一致性(Consistency)。系统在执行过某项操作后仍然处于一致的状态。在分布式系统中,更新操作执行成功后所有的用户都应该读取到最新的值,这样的系统被认为具有强一致性。可用性(Availability)。每一个操作总是能够在一定的时间内返回结果,这里需要注转载 2015-02-28 22:58:23 · 2466 阅读 · 0 评论 -
nginx源码分析—模块及其初始化
Content0. 序1. nginx有哪些模块?2. nginx如何描述这些模块?2.1 模块数据结构2.1.1 ngx_module_t结构2.1.2 ngx_command_t结构2.2 模块类图3. nginx如何组织这些模块?3.1 全局数组ngx_modules3.2 模块组织结构图4. nginx转载 2015-06-26 16:50:06 · 395 阅读 · 0 评论 -
nginx源码分析—启动流程
0. 序1. main()分析2. 注意问题2.1 几个初值2.2 nginx工作模式2.3 一些配置2.4 其他开关3. 小结0. 序本文主要分析nginx主程序。nginx主程序main()实现文件:./src/core/nginx.c。.表示nginx-1.0.4代码目录,本文为/usr/src/nginx-1.0.4。转载 2015-06-26 15:42:45 · 473 阅读 · 0 评论 -
nginx源码分析—内存池结构ngx_pool_t及内存管理
Content0. 序1. 内存池结构1.1 ngx_pool_t结构1.2 其他相关结构1.3 ngx_pool_t的逻辑结构2. 内存池操作2.1 创建内存池2.2 销毁内存池2.3 重置内存池2.4 分配内存2.4.1 ngx_palloc()函数分析2.4.2 ngx_palloc_block(转载 2015-06-26 17:13:02 · 345 阅读 · 0 评论 -
hadoop
1 Hadoop1 Hadoop是什么Hadoop原来是Apache Lucene下的一个子项目,它最初是从Nutch项目中分离出来的专门负责分布式存储以及分布式运算的项目。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。下面列举hadoop主要的一些特点: 1 扩容能力(Scalabl转载 2015-01-05 14:57:26 · 408 阅读 · 0 评论 -
分布式存储和计算总结
ec2 是Elastic Compute Cloud,即弹性计算云。s3是SimpleStorage Service,全球存储区域网络。Swift 提供的服务与Amazon S3相同,适用于许多应用场景。Dynamo:Amazon云存储系统OpenStack包含两个主要模块:Nova 和 Swift,前者是 NASA 开发的虚拟服务器部署和业务计算模块;后者是 Rackspace开原创 2014-12-31 19:44:20 · 876 阅读 · 0 评论 -
拜占庭问题的应用
前进中的可信计算(Ⅵ):拜占庭将军问题闵应骅一个可信的计算机系统必须容忍一个或多个部件的失效。失效的部件可能送出相互矛盾的信息给系统的其他部件。这正是目前网络安全要对付的情况,如银行交易安全、存款安全。美国2001/9/11遭恐怖袭击之后,大家普遍认识到银行的异地备份非常重要。纽约的一家银行可以在东京、巴黎、苏黎世设置异地备份。当某些点受到攻击甚至破坏以后,可以保证账目仍然不错,得以复原和转载 2014-12-30 14:49:41 · 1593 阅读 · 0 评论 -
Swift里的CAP理论和NWR策略应用
最近有人讨论到swift副本数是否能够调整,3副本成本过高,如果改成2副本怎么样?多聊了几句以后发现不少人可能都是望文生义,简单的认为副本数只是多一个少一个Copy的问题,并不了解背后的理论依据。所以想写个简单的介绍,普及分布式系统设计的一些基础知识点。这个是按傻瓜版写的,已经知道的同学请自动无视。 不同于传统的集中式存储,对于分布式存储系统来说,因为自身的复杂性,副本数并非转载 2014-11-21 15:43:04 · 678 阅读 · 0 评论 -
向量时钟
向量时钟(Vector Clock)[8, 9]是一种在分布式环境中为各种操作或事件产生偏序值的技术,它可以检测操作或事件的并行冲突,用来保持系统的一致性。向量时钟方法在分布式系统中用于保证操作的有序性和数据的一致性。向量时钟通常可以被认为是一组来自不同节点的时钟值Vi[1]、Vi[2]、…、Vi[n]。在分布式环境中,第i个节点维护某一数据的时钟时,根据这些值可以知道其他节点或副本的状态转载 2014-11-21 18:31:57 · 1842 阅读 · 0 评论 -
从Hadoop 安全机制原理到当今主流安全机制
在Hadoop Common模块中除了之前我所分析过的4大主模块,还有一个也同样是非常重要的内容,就是Security---安全模块。不过,我只是简单的分析他的实现机制,并不会涉及代码的分析。同时,我会通过对于Hadoop中采取的安全机制方法延伸到当下主流的一些安全认证方法,比如LDAP,SSL,Oauth Token等等。、1)Hadoop SecurityHadoop的Securi转载 2014-12-16 11:21:14 · 484 阅读 · 0 评论 -
lease
基于Lease的一致性最初应用于分布式文件Cache,后来随着互联网的快速发展,发现非常适合于Web Proxy,因此针对Proxy Cache领域中的Lease便多了起来。1. Lease的由来关于Lease最经典的解释来源于Lease的原始论文>:a lease is a contract that gives its holder specific rights转载 2014-12-29 19:29:25 · 1120 阅读 · 0 评论 -
lease paper
A lease is a contract that gives its holder specified rights over property for a limited period of time. In the context of caching, a lease grants to its holder control over writes to the covered datu转载 2014-12-29 19:36:34 · 457 阅读 · 0 评论 -
Lease 机制在分布式系统中的应用
Lease 中文叫租约,是一种广泛应用于分布式系统领域的协议,它是一种维护分布式系统一致性的有效工具。Lease 通常定义为:颁发者在一定期限内給予持有者一定权利的协议。Lease 表达了颁发者在一定期限内的承诺,只要未过期颁发者必须严格遵守 lease 约定的承诺。Lease 的持有者在期限内使用颁发者的承诺,但 lease 一旦过期必须放弃使用或者重新和颁发者续约。转载 2014-12-28 11:54:51 · 457 阅读 · 0 评论 -
分布式系统原理
分布式系统原理一、分布式系统基础重要要点: 对外提供无状态节点,内部实现具体有状态或者无状态节点逻辑,节点即可以是提供服务,也可以是存储数据。 拜占庭问题,在分布式系统中的使用,目的是保证服务可用,而不是找出错误的节点,如果。 异常常见情况,机器宕机、网络异常、消息丢失、消息乱序、数据错误、不可靠的TCP。可能是收到消息后宕机、也可能是处理完成以后机器转载 2014-12-28 11:57:55 · 562 阅读 · 0 评论 -
拜占庭问题
一、拜占庭问题的背景这里就不再介绍直接说算法:下面的这个截图是从Lamport发表的论文中截取的:对于这个算法需要说明的是:(1) 在第一轮 将军会把消息发送给所有的副官,第i个副官收到的记为 Vi。如 1(这里代表的是Attack)(2) 在第二轮里面,Li(即第i个副官)会怀疑将军发来的消息Vi是对还是错,于是他会问其余的副官。这样他就会得到剩下的(n-转载 2014-12-30 11:44:16 · 541 阅读 · 0 评论 -
PaxosLease:实现租约的无盘Paxos算法
这篇论文描述了PaxosLease算法,一种用于租约协商的分布式算法。PaxosLease基于Paxos算法,但无需写盘和时钟同步。PaxosLease在开源的分布式复制KV存储Keyspace中被用来做Master租约协商。1. 介绍在并发编程中,锁 是进程用来同步共享资源访问的基本原语。在锁以不设置过期时间的方式分配(也没有一个监督进程)的系统中,锁的持有者在释放锁之前如果转载 2014-12-30 10:09:05 · 650 阅读 · 0 评论 -
Nginx Upstream Keepalive 分析
1. 实现原理Nginx 1.1.14版本以前upstream连接建立和获取的机制如下图所示,Nginx会在一开始创建connection pool(进程间不共享,可以避免锁),提供给所有向前/后的连接。 如果要实现upstream长连接,则每个进程需要另外一个connection pool,里面都是长连接。一旦与后端服务器建立连接,则在当前请求连接结束之后不转载 2015-11-16 15:09:57 · 781 阅读 · 0 评论