数据结构
文章平均质量分 82
Android路上的人
开源社区爱好者, Apache Hadoop PMC & Apache Ozone PMC, 专注于分布式存储领域, 大数据方面的研究
展开
-
一个SkipList简单跳表的实现
文章目录前言SkipList样例结构SkipList样例代码简单实现前言上一篇文章笔者写了关于HDFS使用SkipList跳表的结构来加速Snapshot的diff比较过程,然后加速HDFS大Snapshot删除的过程(此部分文章可阅读上篇博文:聊聊HDFS删除Snapshot行为导致的NameNode crash)。本文笔者想继续聊聊这个跳表结构,简单说就是构造多链表层级结构,利用(数据存...原创 2020-04-04 11:44:15 · 624 阅读 · 0 评论 -
增量capacity分配的ByteBuffer实现
文章目录前言Ozone内部的增量ByteBuffer实现引用前言对于Java nio ByteBuffer,我们常常会拿来做缓冲数据的处理。如果我们就为了图方便,每次数据读写操作专门allocate一个比较大capacity的ByteBuffer,这样会造成不必要的JVM heap的浪费。但是如果我们转而变为多个小ByteBuffer的动态申请,又会加大ByteBuffer的管理协调 操作。...原创 2020-03-11 23:36:24 · 855 阅读 · 0 评论 -
基本排序算法分析
以前有句话说程序==算法+数据结构,其实不然,说的fei原创 2014-08-06 16:38:38 · 2040 阅读 · 0 评论 -
高级数据结构研究-B树系列以及红黑树
程序员做的越久,越发觉得基本功显得越来越重要了。基本功不扎实会潜移默化的影响你的程序开发,这不是,上次浏览博客,看到了一篇运用B+树实现数据库索引的功能,当时就不明白了,看似毫无关系的两者,怎么会有联系呢,所以想把大学时学的数据结构拿来看看,这到底怎么回事,当然了,看过了之后,顺便把另一种高级树结构-红黑树也看了一下,红黑树,说起来,容易,实现起来那代码看的人真是眼花。红黑树的插入,删除实现,同学原创 2014-10-04 10:24:32 · 3451 阅读 · 0 评论 -
具有Set属性的Queue
在最近的工作中,遇到了一个特殊的需求:我们需要一个队列来存放某数据对象,但是这个对象的数量是巨大的,如果将这些对象都存入队列的话,很显然内存会爆表,但是这些对象有一个特征是,相同的数据对象类型的数据是可更新的。换句话说,对于同一类数据对象,后面来的对象的值一定比前面的新,是可以完全覆盖前面的。原创 2016-12-06 20:09:39 · 4550 阅读 · 0 评论 -
LinkedBlockingQueue和ArrayBlockingQueue之间的比较
前言最近在工作中用到了LinkedBlockingQueue,不过随后发现了另一个与此用途十分类似的类ArrayBlockingQueue。于是花了点时间,查阅了相关的文章介绍,本篇就来简单的做个小结,也是为了方便下次查阅。LinkedBlockingQueue和ArrayBlockingQueue的共性在讲述LinkedBlockingQueue和ArrayBlockingQ...原创 2018-05-06 22:37:46 · 4505 阅读 · 3 评论 -
Trie Tree和Radix Tree
前言在实际应用场景中,很多时候我们会用到字典集的查找。通过一个键值key,去拿到它对应的值对象。这种方法确实很高效,很快,但是这里有个问题,当字典集储存的键值很多的情况时,毫无疑问,这里会消耗掉大量的内存空间。这个在我们做基数计数的统计应用时,这个空间会膨胀地特别厉害。本节笔者将要谈论的是对于基数统计来说,使用上更为适用的1种数据结构Trie Tree以及它的衍生优化版Radix Tree。...原创 2019-06-13 22:38:28 · 5657 阅读 · 1 评论