![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术研究
文章平均质量分 94
不动明王1984
就怕其心一也
展开
-
Dremel:在网络规模数据集上的交互式分析
Dremel是一个在只读的嵌套数据上的可伸缩的、交互式的点对点的查询系统。通过结合多层执行树和列式数据布局,其有能力在数秒之内在万亿行的表上成功执行聚合查询。系统可以扩展到数千个CPU以及PB级的数据,且在Google有成千上万的用户。在本论文中,我们描述了Dremel的架构和实现,并解释它是如何补充基于MapReduce的计算的,我们展示了一个新颖的列式存储表达,其支持嵌套格式的记录,并讨论了在数千节点的系统上做的一些实验。翻译 2023-07-08 09:27:15 · 346 阅读 · 0 评论 -
Linux内核进阶----整体框架及子系统概览
Linux变得如此成功与流行,其在设计选型上的取舍是至关重要的,概括来说包括如下重要方面:单块大内核+动态加载模块;进程/内核模式设定,以轻量级进程作为基本的执行上下文;侧重基于分页方式构建进程的虚拟地址空间;支持内核的可重入可抢占;在资源(尤其是内存)使用分配时放松管控,并在必要时努力回收;通过时钟的周期性中断为系统中的一切活动打拍子,由此提供了分时抢占式调度的基础;一切皆文件的理念,以及构建于该理念之上的对外围IO设备的支持。这些设计选型使得Linux的内核更加精简,更加快速和稳定,并易于扩展和维护。我原创 2023-06-16 14:56:42 · 2693 阅读 · 0 评论 -
BigTable:一个针对结构化数据的分布式存储系统----论文摘要
Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google的很多项目使用Bigtable存储数据,包括Web索引、Google Earth、Google Finance。这些应用对Bigtable提出的要求差异非常大,无论是在数据量上(从URL到网页到卫星图像)还是在响应速度上(从后端的批量处理到实时数据服务)。尽管应用需求差异很大,但是,针对Google的这些产品,Bigtable还是成功的提供了一个灵活的、高性能的解决方案。本论原创 2023-07-17 08:33:58 · 576 阅读 · 0 评论 -
Kudu:在快速修改数据上的快速分析存储系统----论文摘要
从一个用户的角度看来,kudu是一个对结构化数据表的存储系统。一个kudu集群可以包含任意数量的表,每个表都有一个定义良好的有明确列数的schema。每一列都有名字、类型及可选的是否可为null值。一些固定顺序的列被指定为primary key。主键强制了一个唯一约束,并作为可高效更新或删除的主索引。该模型比较类似于关系型数据库,而与很多其他分布式数据存储如Cassandre, MongoDB, BigTable等不同(有明确的列定义这点),而spanner与metastore可认为是半结构化表。原创 2023-06-27 00:01:22 · 238 阅读 · 0 评论 -
Spring Cache抽象详解
原文地址:http://jinnianshilongnian.iteye.com/blog/2001040缓存简介缓存,我的理解是:让数据更接近于使用者;工作机制是:先从缓存中读取数据,如果没有再从慢速设备上读取实际数据(数据也会存入缓存);缓存什么:那些经常读取且不经常修改的数据/那些昂贵(CPU/IO)的且对于相同的请求有相同的计算结果的数据。如CPU--L1/L2--内存--磁盘就是一个典型...转载 2017-11-07 09:18:18 · 1105 阅读 · 0 评论 -
Netty-内存管理
通过NIO传输数据时需要一个内存地址,并且在数据传输过程中这个地址不可发生变化。但是,GC为了减少内存碎片会压缩内存,也就是说对象的实际内存地址会发生变化,所以Java就引入了不受GC控制的堆外内存来进行IO操作。那么数据传输就变成了这样但是内存拷贝对性能有可能影响比较大,所以Java中可以绕开堆内存直接操作堆外内存,问题是创建堆外内存的速度比堆内存慢了10到20倍,为了解决这个问题Netty就做了内存池。内存池是一套比较成熟的技术了,Netty的内存池方案借鉴了jemalloc。了解一下其背后转载 2021-01-15 12:02:25 · 257 阅读 · 0 评论 -
即时响应场景下java序列化框架的性能测试
简介序列化就是将对象转化为字节序列的过程,反序列化则是将字节序列转化为对象的过程。序列化框架广泛的应用在分布式系统通信、存储等相关场景中。例如在网络通信中,不同的计算机进行相互通信主要的方式就是将数据流从一台机器传输给另外一台计算机,当客户端将需要请求的数据封装好了之后就需要进行转换为二进制格式再转换为流进行传输,当服务端接收到流之后再将数据解析为二进制格式的内容,再按照约定好的协议进行处理解析。最常见的场景就是rpc远程调用的时候,对发送数据和接收数据时候的处理。常见的序列化和反序列化方式原创 2021-01-05 11:41:18 · 776 阅读 · 3 评论 -
深入分析Parquet列式存储格式
原文地址:http://www.infoq.com/cn/articles/in-depth-analysis-of-parquet-column-storage-format?utm_source=infoq&utm_campaign=user_page&utm_medium=link深入分析Parquet列式存储格式Parquet是面向分析型业务的列式存储格式,由Twitt转载 2018-02-05 11:13:30 · 554 阅读 · 0 评论 -
BeanPostProcessor加载次序及其对Bean造成的影响分析
前言BeanPostProcessor是一个工厂钩子,允许在新创建Bean实例时对其进行定制化修改。例如:检查其标注的接口或者使用代理对其进行包裹。应用上下文会从Bean定义中自动检测出BeanPostProcessor并将它们应用到随后创建的任何Bean上。普通Bean对象的工厂允许在程序中注册post-processors,应用到在本工厂中创建的所有Bean上。典型的,post-p原创 2017-11-22 16:57:30 · 38545 阅读 · 12 评论 -
使用ReferenceQueue实现对ClassLoader垃圾回收过程的观察、以及由此引发的ClassLoader内存泄露的场景及排查过程
本文首先通过Java Reference/ReferenceQueue来观察Class及ClassLoader的GC回收行为,然后介绍了Guava对于Reference/ReferenceQueue的封装并引出了一个关于classloader内存泄露的案例,旨在通过这样的一个案例来说明ClassLoader泄露的问题、如何观察ClassLoader是否被卸载、如何查找ClassLoader内存泄露的路径以及如何解决这一类问题原创 2017-10-19 02:15:50 · 2239 阅读 · 1 评论 -
JavaSecurity和JAAS——Java标准安全体系概述(下)
java标准安全体系分为两大部分,一个是在JDK1.0引入并在JDK2进行了重构的代表着以代码为中心的授权体系。此体系下,关注的重点在于“这段代码能访问哪些系统资源”;另一个是在JDK1.3以扩展的形式引入,并在JDK1.4作为核心集成进来的以用户为中心的认证与授权体系JAAS。此时,关注的重点变成了“运行这段代码的用户的访问权限是什么”。其中JAAS是在java security基础上对组件进行...原创 2017-11-01 15:28:52 · 3446 阅读 · 0 评论 -
JavaSecurity和JAAS——Java标准安全体系概述(上)
前言:java标准安全体系分为两大部分,一个是在JDK1.0引入并在JDK2进行了重构的代表着以代码为中心的授权体系。此体系下,关注的重点在于“这段代码能访问哪些系统资源”;另一个是在JDK1.3以扩展的形式引入,并在JDK1.4作为核心集成进来的以用户为中心的认证与授权体系JAAS。此时,关注的重点变成了“运行这段代码的用户的访问权限是什么”。其中JAAS是在java security基础上对组...原创 2017-10-31 14:57:10 · 1704 阅读 · 0 评论