自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Apache Arrow源码分析(三)——内存池与缓冲区

引言内存管理一直是所有系统的设计重点和难点所在,有效的内存管理可以提高系统资源利用率,提升整体系统性能。对于操作系统而言,内存管理在内核中表现为段页式管理,对上层应用仅仅提供mmap, sbrk等相对简单的系统调用,操作系统更多的是关注底层物理内存到虚拟内存之间的映射关系以及内存到cpu cache之间的映射关系。然而,对于上层应用程序而言,仅仅只有mmap和sbrk是远远不够的,毕竟每次调用mma

2016-04-14 16:16:32 3208

原创 Apache Arrow源码分析(二)——类型的封装

@原创文章,转载请注明: 转载自 镜中影的技术博客 本文链接地址: Apache Arrow源码分析(二)——类型的封装 URL:http://blog.csdn.net/linkpark1904/article/details/51000719引言对于向量容器而言,需要适配底层多种数据类型。C++在语言层面提供了诸如int,double,float,char等基础类型,但是对于程序库而言,需要

2016-03-28 20:53:48 2985

原创 Apache Arrow源码分析(一)——简介和框架

背景列存储在数据库领域中早已被提出,列存储数据结构在分析型事务上表现优异,大数据分析引擎,诸如Spark-SQL,Impala 均采用列存储作为其中间数据表示形式,那么Apache Arrow就是这样一种内存列式数据结构。在众多分布式系统中,每个系统都有自己内部的内存格式,70-80%的CPU浪费在序列化和反序列化过程,类似功能在多个项目中实现,没有一个标准。那么Arrow就是为解决这一问题而提出了

2016-03-25 15:24:23 7986

原创 线程本地存储(TLS)的学习

一、引言最近在看jemalloc的文章 A Scalable Concurrent malloc(3) Implementation for FreeBSD, 文中有提到,在分配Arena的时候用到了线程本地存储技术(thread-local storage),这里发散一下,复习一下什么是线程本地存储。二、简介Thread-local storage,也就是在多线程程序中,为每个线程提供该线程独占的

2016-03-15 22:40:21 1454

原创 我所理解的MVC

在开发网站的时候,MVC无疑是出现的最多的名词,所谓MVC是个啥呢?字面意思M代表Model,V代表View,C代表Control,我个人觉得MVC背后实际上就是软件开发过程中的解耦过程,把数据操作,业务流程,数据展示这三个层面分离开来,使得程序的开发分别着眼于三个点进行,而不是笼统的乱糟糟的糅杂在一块儿。Flat PHP vs MVC PHP刚刚接触php那会儿,记得写了个图书管理系统为了给一门课

2016-03-03 19:24:32 1326

原创 网站交互的理解

在工作室摸爬滚打了许久,对于网站开发还是有部分自己的心得与体会,虽然在工作室的主要职责是负责前台部分的开发以及运维等等,但是了解的方面多了之后,才发现,计算机整个学科有许多东西都是通的,有很多共同的部分,只是,一开始我们每个人的出发点和侧重点有所不同,但深入下去,必然会有交集的。HTTP协议http协议其实很简单,所谓协议,说白了,就是客户与服务器之间通信交流的桥梁,客户机需要服务器做些什么动作,那

2016-03-03 19:19:04 992

原创 一个C++线程池的实现

线程池这玩意儿通常用在服务器端,服务器为了减少线程创建和析构的代价,所以弄出了线程池这个玩意儿,早先的服务器采用多进程多线程架构,来了一个客户端连接就创建一个执行体(线程或者进程)来应对客户端的请求,客户端离开后就将这个执行体析构,这样当然很不科学,创建线程析构线程也是有开销的,这样客户平凡断线掉线再上线,服务器当然受不了,于是,就有了线程池模型。所谓线程池模型就是在服务器接受外部请求之前先把线程创

2016-03-03 19:15:41 2236 1

原创 traits编程技法感悟

由于工作学习需要,在研究生阶段主要编程语言还是以C++为主,多少在学习语言的过程中,道听途说c++很高大上,c++是一门四不像的语言,c++学起来很难,用c++做工程的不多等等这之类的话。于一门语言来说,c++确实算的上历史悠久,众人对其评价也是褒贬不一。无论如何,在我看来,一门语言能存活至今,肯定有其存在的价值和意义,也有许多值得我们学习的地方。近来有幸拜读《STL源码剖析》,膜拜一下设计标准C+

2016-03-03 19:10:45 726

原创 Hadoop2.2配置详解

hadoop,著名的云计算平台,在google发布了GFS,Mapreduce,Bigtable之后,社区的大牛们在这三篇论文思想的基础上,搭建了hadoop这个大的云计算平台,其中hdfs,hadoop-mapreduce,hbase分别对应谷歌的三篇论文的具体实现。在离线应用上,hadoop平台被广泛应用,作为一个开源平台是相当不错的。一次机缘巧合,有幸在实验室接触hadoop,利用实验室现有的

2016-03-03 19:07:32 793

原创 Iptables配置心得

在linux内核中,iptables是一款自带的防火墙软件,基于内核实现网络流量的过滤,针对数据包的IP地址,端口号,标志位,连接状态定义相应的防火墙规则,匹配规则后用指定的处理机制进行处理,可以是允许,可以是丢弃。如上图所示,数据包从网卡1进入linux主机后,首先进入内核维护的网络内存空间中,内核接手数据包后,会进行一系列流水线处理。在解封IP头部后,先检测数据包的

2016-03-03 18:51:54 1194

原创 RedBase SQL解析源码分析

RedBase是斯坦福的数据库系统实现这门课程(cs346)的一个项目,实现了一个简易的数据库系统,包括底层存储层(Paged File Component),记录管理层(Record Management Component),索引管理层(Indexing Component),系统管理层(System Management Component),SQL解析层(Query Langu

2016-03-03 12:00:49 4585 2

原创 OceanBase SQL解析源码分析(三)

基本上每一个SQL解析到最终物理任务执行经历的流程大同小异,从入口点开始,首先通过Flex和Bison生成的语法解析工具,对SQL进行语法解析,生成语法树。在生成的语法树的基础上,生成内部描述的逻辑计划,通过逻辑计划进行查询优化,生成具体的物理执行计划。

2016-03-02 14:28:38 1632

原创 OceanBase SQL解析源码分析(二)

理解OceanBase词法解析和语法解析,活用Flex和Bison很重要

2016-03-02 12:04:41 1789

原创 OceanBase SQL解析源码分析(一)

编译原理基础涉及到SQL解析,当然离不开编译原理相关知识,毕竟SQL也是一门计算机语言,用于操作数据库,所以在数据库系统中,SQL解析模块为最上层模块。

2016-03-02 11:46:40 3091

原创 HAWQ论文笔记

1、背景HAWQ是一个构建在HDFS之上的MPP(massively parallel processing)SQL引擎,不像其他构建在hadoop之上的SQL引擎,HAWQ支持标准SQL,并且完整的支持数据库事务。性能上,HAWQ比Stinger快40倍,比原生的HIVE快35倍-40倍。 对于分析型业务,系统需要满足这样一些特性,去满足用户的需求:交互性查询(Interactive quer

2015-11-17 10:21:50 2557

原创 传统存储系统发展史调研

*原创文章,转载请注明: 转载自 镜中影的技术博客 本文链接地址: 传统存储系统发展史调研 URL:http://blog.csdn.net/linkpark1904/article/details/49276709* 每一个技术的进步势必伴随着市场需求的不断扩张,这里存储系统的技术演进和IT系统的需求息息相关,既有对于存储设备硬件本身的改善和演进,同样也有上层针对存储设备组织构建的存储系统

2015-10-20 14:15:05 3454

原创 Linux下调试PostgreSQL数据库

1.环境准备这里采用的是源码安装的方式进行postgresSQL安装的,源码下载在这里准备源码包为:postgresql-9.4.1.tar.gz 操作系统:ubuntu 14.04 x64 server 解压源码包:#tar zxvf postgresql-9.4.1.tar.gz#cd postgresql-9.4.1/#./configure --enable-debug --wit

2015-09-01 11:44:46 1912

原创 关于C++回调函数设计的思考

之前在接触到高性能异步事件驱动编程时,里面涉及到大量的回调,对于回调函数的实现在C语言中很统一,通过函数指针的方式来进行。将自己实现的回调函数地址赋值给回调函数指针。但是在C++中回调的方式可以多种多样。实际上,回调函数类似于设计模式中的策略模式,统一的接口但是有不同的实现。1.多态方式实现回调函数通过提出一个公共接口类,具体业务由子类执行,在回调绑定的时候只需要把子类对象的指针赋值给基类指针,通过

2015-09-01 11:40:15 1020

原创 C++单例模式思考

C++单例模式思考1. 简单实现单例顾名思义,就是全局唯一,有且只有一个对象,不允许同时存在多个对象,所以通常单例在C++里面有固有的实现格式——将构造函数声明成private或者protected,目的是不让外部使用者通过构造函数来创建对象。对外暴露一个静态函数获取单例对象,对内维护全局唯一的静态对象实例。具体实现如下所示:class Singleton {protected: Sing

2015-09-01 11:36:17 692 2

原创 STL——string分析

STL——string分析之前一直在实验室写数据库相关的开发,由于是开发一款内存数据库,所以对内存资源的适用显得尤为重要。在开发的时候由于想快速搭建原型,所以大量利用的STL,特别是string,但是在使用的时候发现string的额外内存开销比较大,于是这里简单对string进行测试,测试很简单,在等量的原始数据下将vector一. 测试工具之前一直在用valgrind做内存泄漏的检测,但是并没有注

2015-09-01 11:33:50 709 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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