binling的专栏

主要是备忘性质的笔记和零言碎语

c++ 二进制兼容本质

总的一条就是让client只依赖“名字”,而不依赖任何"实现"。 “实现” 具体的就是2类 1)函数体,code 2)任何内存块大小,layout细节 为什么会有二进制兼容问题,就是因为一般的c++头文件并不是单纯的接口声明,其中也还包括了“实现细节”,因为成员变量就是...

2017-07-24 16:35:41

阅读数 331

评论数 0

Elastic Search 的分布式特点(和MongoDB对比)

Elastic Search 的分布式特点(和MongoDB对比)回顾一下mongoDB的分布式: replica set:若干mongod组成,只有一个master可写,自动选举 。 sharding: 若干mongos 作为前端router,每个shard对应一个replica ...

2016-12-31 01:24:54

阅读数 5238

评论数 0

MongoDB 的分布式属性(replication and sharding)

Cluster  and Replicate 和mysql 类似,全局级的replicate 配置(cassandra 是每个key space可以独立配置) ,一个master,多个secondary,写只能在master上 一致性:写操作返回可以配置为 1)全部副本写成功(complete),...

2016-11-15 17:18:33

阅读数 963

评论数 0

资源调度器的一些基本问题

1 调度算法 Capacity based, DRF(dominant recourse fairness),label based等 多态化,插件化,可以多种策略一起工作,对应于不同Job (优先级,job特性,service or batch job) 2 容错,HA 调度器一般处在一个中...

2016-10-28 21:04:02

阅读数 1055

评论数 0

redis中hashtable 的 rehash/ resizing 策略

依赖于连续存储的数据结构(具体的,就是依赖array)都有一个resizing问题。对于vector,一般的策略就是满的时候double and copy,降到1/4时候 half 。 Hashtable也可以这么做,均摊的复杂度模型是一样的。比如load factor (number of en...

2016-10-26 16:36:17

阅读数 832

评论数 0

文件洞的处理

存储引擎经常要面对的一个问题,就是洞的处理。 1)Segment File: 2)segment file 之间整理 3)Copy

2016-10-26 16:01:49

阅读数 539

评论数 0

自己动手写一个key value store

一涉及到persistent, 哪怕只是最基本的需求,很多人都会依赖数据库,或是其他现成的库或工具。确实,对于文件,大部分人很少直接打交道,或者只是诸如整体反序列化/序列化、按行读取、append new line等有限的操作。 一个persistent store最基本的问题是如何组织数据,...

2016-10-10 18:08:41

阅读数 1075

评论数 0

有限自动机总结

有限自动机A用来识别字符串,它由5部分组成: 1)alphabet,字符集 2)states,状态集合 3)init,初始状态 4)trans(s, ch),状态转移函数 5)end 可接受state 集合 A(str) == true的意思是,A可以接受字符串str,即从初始状态init读入st...

2016-09-26 13:07:10

阅读数 4895

评论数 0

爬虫,索引,PageRank,搜索,综合例子

indexer 主要包含: html parser,word generator, url id generator,inverted index(keyword->[docId],docs table(url, id, refCount) word generator的职责是输入一个tex...

2016-09-23 16:34:56

阅读数 1031

评论数 0

再谈Parser

Parser的作用就是把一个字符串(一维,流)parse成一个数据结构。 Parser的写法大概有2种方式 1)递归下降(recursive descend) 2)事件驱动的状态机。状态就是一些表明当前状态的变量和最终要parse出的data structure。 xml parser, js...

2016-09-19 22:41:10

阅读数 278

评论数 0

TrieMap 实现

最大问题是占空间,R = 256,插入百万数量级的key就 OutOfMemory了。在key的数目比较小的情况下,正如理论指出的一样,性能高于HashMap;但到了占内存比较多的时候由于影响系统整体运行,性能不如HashMap。 用HashMap而不是大小为256的数组作为link的时候,占...

2016-09-18 23:14:48

阅读数 1075

评论数 0

AC 自动机

多pattern的匹配, 比KMP更general public class ACAutomata { static final int R = 26; private class Node { Node next[] = new Node[R]; Node fail; Strin...

2016-09-18 10:38:28

阅读数 232

评论数 0

树堆TreapMap 实现

测试结果居然比红黑树,AVL都好。 RBT,AVL,SBT,Treap 区别只是节点信息和 maintain函数。所有的读操作都可以放在普通BST里,insert 和 delete(除了RBT)也可以,只需要扩展Node 和 maintain函数就行。 import java.util.Ran...

2016-09-15 19:48:51

阅读数 485

评论数 0

SBT(size balanced tree) 和AVL 合二为一

SBT 和AVL类似,只是是基于size 进行balance的,旋转的case是一样的。 public class AVLOrSBTTreeMap, Value> { public enum BF {HEIGHT, SIZE, NONE}; //balance factor privat...

2016-09-15 19:40:04

阅读数 455

评论数 0

基于LLRB 红黑树的 TreeMap 实现

public class LLRBMap, Value> { private static final boolean RED = true; private static final boolean BLACK = false; private class Node { Key ...

2016-09-14 14:51:32

阅读数 440

评论数 0

基于AVL自平衡树的TreeMap实现

自平衡的插入 struct node { int val; struct node* left; struct node* right; int ht; node(int v) : val(v), left(nullptr), right(nullptr) {} no...

2016-09-08 16:35:35

阅读数 448

评论数 0

彻底解决数据库去中心化问题

1)首先垂直切分,按业务模块把一些紧密联系的表分在一起(按表切分),形成一个抽象的vertical partition 2)水平切分。垂直切分之后的单个vertical partition(甚至其中单个表)仍然可能太大,一个server放不下,进一步按行切分,这时候需要选择一个聚合根作为记录的ho...

2016-08-12 18:40:16

阅读数 2483

评论数 1

再谈 循环/递归就是状态机

状态是相关变量的组合状态,一个变量相当于一个分量 一次循环就是一轮状态状态转移 初始状态 -> 按某种规则转移,有些状态属于终止状态,然后状态的某个变量就是所求 当前状态下,各个变量间互动,迁移,达到另一个状态,状态机的一般形式是 while (true) { //转移规则}, for ...

2016-08-04 19:20:27

阅读数 904

评论数 0

再谈type ahead 问题

问题:给定一个词典,包括一些词和其出现的频率。实现type ahead功能,要求用户每键入一个字符,下拉框显示以当前输入为前缀的前10个最热门的词 解法1:用不带data的Trie,实时查询法 框架就是Triie的 startWithPrefix 查询,不同的是并不是返回遍历得到的所有词,而是...

2016-08-02 21:32:54

阅读数 851

评论数 0

欧拉路径 LeetCode 332

图中一条路径,包含了所有边(且只包含一次) 如果起点和终点是同一个点,则是一种特殊的欧拉路径——欧拉环路 求法1:暴力法:遍历所有的路径,如果当前路径长度为总边数,则当前路径是一条欧拉路径,如果一直没有碰到这样的路径,则无解。 一个图总共多少条路径(一般是有环的) 1)不允许路径里有环,也就是...

2016-06-23 14:30:43

阅读数 1446

评论数 0

提示
确定要删除当前文章?
取消 删除