算法
文章平均质量分 51
百科全书学派
热衷技术,喜欢交流, 立志于IT领域的百科全书,分布式存储技术爱好者。
业余爱好是自然语言处理和机器学习。
微博 http://weibo.com/u/2708980410?refer_flag=1005055010_&is_all=1
展开
-
为什么redis中会采用skiplist
redis既然是单线程,采用skiplist作为索引,相对于传统的红黑树而言,查询速度相仿,优势在哪里关键在于redis是一个经常需要做插入删除操作的kv容器。redis有超时剔除机制,需要对key维护一个时间维度的索引或者队列,剔除超时的记录。剔除同时就需要对索引进程插入删除操作skiplist插入删除worst case的时间复杂度会比红黑树小很多原创 2016-10-13 11:01:32 · 1028 阅读 · 0 评论 -
深度学习和计算机视觉的一些思考和总结
做视觉和算法也有一年多了,是时候做一些必要的思考和总结。 最初接触深度学习是这样的,老大打算做一个深度学习框架在云环境下自动化部署的一个项目。之前对云这块还比较熟悉,误打误撞开始接触前段比较火的深度学习领域。这个任务还是比较简单的,只要把一个深度学习训练任务的各个步骤串联起来放到kubernetes里面run起来就ok了。对深度学习训练的一些基本知识有了初步的印象...原创 2019-01-18 23:28:53 · 1208 阅读 · 0 评论 -
谈一谈索引技术
熟悉关系数据库的人应该对索引不陌生。单列索引,多列索引,B树索引,位图索引,事务索引,三星索引等等。读研时期导师就说,索引可以作为一个研究课题搞一辈子。撇开最新的理论创新,即使了解过一些的研究成功,坑需要从一些大部头的著作看起。每年VLDB,sigmod上的关于索引的文章也很多。本文不打算过于深入,针对常见的一些索引技术做一些总结,算是入门知识吧。最常见的两种索引数据结构是B+树和LSM-原创 2017-12-19 15:41:44 · 1649 阅读 · 0 评论 -
数据结构和算法的一些小结
索引 通过数据的冗余和预计算,以减少io次数和逻辑判断的消耗,最终提高查询的速度。索引的副作用 索引的加载、修改,会带来额外的IO和锁的消耗。协程 把cpu的调度和上下文切换的工作,交给程序员控制的应用代码,而不是OS内核或者虚拟机,主要应用于RPC调用比较多的场景。 补充:能在变成语言级别实现的是一种比较优雅的方式,例如golang,l原创 2016-10-26 13:10:22 · 452 阅读 · 0 评论 -
Data Structure and Algorithm
index数据结构内存池管理NLPdeep learning原创 2016-03-24 17:59:28 · 988 阅读 · 0 评论 -
常见的join算法
大表的Join算法无论在传统的关系数据库、在OLAP数据仓库还是在离线批处理系统中都是至关重要的一个算法。大表Join利用的数据冗余特性(join列在两个表都做存储),为用户的数据统计需求,提供了一个单间的视图,不需关心底层数据的存储格式、join的处理过程等等。关于Join算法的选择、多表Join的顺序等问题,涉及到比较复杂的查询优化的技术,采用了动态规划、遗传算法、启发式搜索等比较前沿性技原创 2016-10-17 12:41:41 · 6440 阅读 · 0 评论 -
数据削重的利器--cuckoo filter
最近再看Bloom Filter的删除问题,偶然间看到cuckoo filter的数据结构。Bloom Filter的思想是通过多维hash的办法,降低hash冲突的概率.。Basic Bloom Filter仅存储位图信息,只能判断一个key是否在集群内,可能存在假阳性(false positive),不存在假阴性(false negtive)。counting bloom filter还可以做原创 2016-10-13 10:48:19 · 3869 阅读 · 0 评论 -
海量数据查询的一些关键技术
MPP架构,数据并行化处理垂直切分,列式存储,列存储只需要将需要查询的数据列load到内存即可,且列式存储压缩比很高,例如bigtable/hbase等列族数据存储、dremel/impala的parquet数据格式水平切分,数据sharding,DRDS,mycat之类对mysql表进行简单的分表query predicate push down,查询谓词下推,在一个查询原创 2016-09-27 00:31:19 · 3906 阅读 · 0 评论 -
skip-list vs red-black tree
红黑树是常见的数据结构,主要用来建内存索引,内核的VFS里面有很多。skip-list的数据结构,大学里面接触的少,近些年比较流行;skip-list的优点:1.适合高并发的场景,red-black tree在经常插入和删除时候可能会涉及整个树的旋转,这就需要对多个节点枷锁;导致并发效果不过;2.skip-list的插入和删除相对简单,插入和删除时候只涉及前驱和后继,不会影响整体;原创 2016-09-03 12:34:24 · 1583 阅读 · 0 评论 -
DPDK关键技术点
DPDK是intel推出的高效的zero-copy的发包工具,许多同学对其中的关键技术并不太了解,这里罗列一些粗略的技术点,感兴趣的可以针对其中某些点深入研究。补充一点,intel最近推的SPDK跟DPDK类似,SPDK是跨设备IO,SPDK更复杂,需要考虑读写冲突、IO调度和不同硬件特性的优化(后面有时间研究下)。这里单说DPDK的技术用户态驱动实现zero-copy。如果使用l原创 2016-10-13 11:47:05 · 3632 阅读 · 0 评论 -
概率图模型的一些总结
概率图模型是统计机器学习中比较重要的内容。在自然语言处理、时间序列分析、交通流量建模等领域有着比较广泛的应用。概率图模型不像LR、SVM、GBDT等机器学习算法比较简单和直观,理解起来往往比较抽象和困难:首先,从建模型上讲,概率图模型把训练数据抽象为相关的随机变量及其互相之间的依赖关系。LR、SVM等分类器更多的是把原始数据映射到一个高维的欧几里德空间。显然,从建模上讲,概率图模型没有明显...原创 2019-03-17 17:47:35 · 415 阅读 · 0 评论