
逻辑思维
文章平均质量分 51
青箫
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
12个球找出奇异球
问题:有12个球,有一个是奇异的球,其他都一样,有一个天平,只能称3次,找出这个球。答案: 1、将球分成等分 2、四个四个称重,如果相同,则在另外四个中存在奇异球,将这奇怪的球为:a、b、 c、 d 另外8个为标准球:efghi。。。 a、b 和c、d 称重,若a、b 大于 c、d, a、c 和 e、d称重, 若 a、c 大于 e、d 则 奇异球为 a ,否则奇异球为d原创 2015-11-26 02:14:28 · 579 阅读 · 0 评论 -
多版本并控制MVCC 在分布式系统中的应用
ob系统是分布式系统,每台服务器刷新schma 采用的MVCC这种处理方式。某分布式系统由一个数据中心D和若干业务处理中心L1,L2,…LN组成;D本质上是一个key-value存储,它对外提供基于HTTP 协议的CRUD操作接口。L的业务逻辑可以抽象为下面的3步骤:1、read: 根据keySet {k1, … kn}从D获取keyValueSet {k1:v1, … kn:vn} 2、do:转载 2016-03-29 12:06:44 · 669 阅读 · 0 评论 -
多线程处理锁
1、pthread_mutex_lock 当一个线程处于锁运行状态时,其他线程被挂起,当线程结束锁运行状态时,将唤醒一个被挂起的线程。 其中涉及到CPU context的恢复,这个会比较耗费时间。 被挂起的线程将不消耗CPU资源。(节省CPU)2、spin_lock 当一个线程处于锁运行状态时,其他线程将不断的询问是否锁被释放,当线程结束锁运行状态时,另外一个原创 2016-03-28 21:23:35 · 347 阅读 · 0 评论 -
红黑树
红黑树的特性: (1)每个节点或者是黑色,或者是红色。 (2)根节点是黑色。 (3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!] (4)如果一个节点是红色的,则它的子节点必须是黑色的。 (5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。注意: (01) 特性(3)中的叶子节点,是只为空(NIL或null)的节点。 (转载 2016-03-28 14:11:40 · 971 阅读 · 0 评论 -
mysql的索引实现
在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,本文主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。MyISAM索引实现MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。这里设表一共有三列,假设我们以Col1为主键,MyISAM的索引文件仅仅保存数据记录的地址。在MyISAM中,主索引和辅助索引(Secondary转载 2016-03-28 12:58:27 · 268 阅读 · 0 评论 -
为什么mysql用B-树
红黑树等数据结构也可以用来实现索引,但是文件系统及数据库系统普遍采用B-/+Tree作为索引结构,这一节将结合计算机组成原理相关知识讨论B-/+Tree作为索引的理论基础。一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。这样的话,索引查找过程中就要产生磁盘I/O消耗,相对于内存存取,I/O存取的消耗要高几个数量级,所以评价一个数据结构作为索引的优劣最重要的转载 2016-03-28 12:52:28 · 1508 阅读 · 0 评论 -
B+ 树
B-Tree有许多变种,其中最常见的是B+Tree,例如MySQL就普遍使用B+Tree实现其索引结构。与B-Tree相比,B+Tree有以下不同点:每个节点的指针上限为2d而不是2d+1。内节点不存储data,只存储key;叶子节点不存储指针。由于并不是所有节点都具有相同的域,因此B+Tree中叶节点和内节点一般大小不同。这点与B-Tree不同,虽然B-Tree中不同节点存放的key和指针可能数量转载 2016-03-28 12:44:35 · 321 阅读 · 0 评论 -
B- 树
为了描述B-Tree,首先定义一条数据记录为一个二元组[key, data],key为记录的键值,对于不同数据记录,key是互不相同的;data为数据记录除key外的数据。那么B-Tree是满足下列条件的数据结构:d为大于1的一个正整数,称为B-Tree的度。h为一个正整数,称为B-Tree的高度。每个非叶子节点由n-1个key和n个指针组成,其中d<=n<=2d。每个叶子节点最少包含一个key和两转载 2016-03-28 12:40:14 · 364 阅读 · 0 评论 -
lsm-tree
lsm思想非常朴素,就是将对数据的更改hold在内存中,达到指定的threadhold后将该批更改批量写入到磁盘,在批量写入的过程中跟已经存在的数据做rollling merge。拿update举个例子: 比如有1000万行数据,现在希望update table.a set addr=’new add’ where pk = ‘833’,如果使用B-Tree类似的结构操作,就需要:1、找到该条原创 2016-04-07 20:50:42 · 649 阅读 · 0 评论 -
悲观锁和MVCC对比
上面介绍了悲观锁和MVCC的基本原理,但是对于它们分别适用于什么场合,不同的场合下两种机制优劣具体表现在什么地方还不是很清楚。这里我就对一些典型的应用场景进行简单的分析。需要注意的是下面的分析不针对分布式,悲观锁和MVCC两种机制在分布式系统、单数据库系统、甚至到内存变量各个层次都存在。场景1:对读的响应速度要求高有一类系统更新特别频繁,并且对读的响应速度要求很高,如股票交易系统。在悲观锁机制下,写转载 2016-03-29 14:40:07 · 494 阅读 · 0 评论 -
5个海盗分金币
五位绝顶聪明、勇敢、理智、果断干练的女海盗抢得100枚金币后,讨论如何进行公正分配。他们商定的分配原则是: (1)抽签确定各人的分配顺序号码(1,2,3,4,5); (2)由抽到1号签的女海盗提出分配方案,然后5人进行表决,如果方案得到超过半数的人同意,就按照他的方案进行分配,否则就将1号扔进大海喂鲨鱼 (3)如果1号被扔进大海,则由2号提出分配方案,然后由剩余的4人进行表决,当且转载 2015-11-30 00:28:57 · 2999 阅读 · 0 评论 -
rpc调用
同步调用 客户方等待调用执行完成并返回结果。 异步调用 客户方调用后不用等待执行结果返回,但依然可以通过回调通知等方式获取返回结果。 若客户方不关心调用返回结果,则变成单向异步调用,单向调用不用返回结果。RPC 服务方通过 RpcServer 去导出(export)远程接口方法,而客户方通过 RpcClient 去引入(import)远程接口方法。客户方像调用本地方法一样去调用远程接口方转载 2016-04-22 21:28:36 · 474 阅读 · 0 评论