自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

icycode的专栏

谁的心里没有悲伤~~只是我们选择转过身让泪水滑落在没人看见的地方

  • 博客(79)
  • 资源 (10)
  • 收藏
  • 关注

原创 5分钟理解数据库全景图(SQL,NoSQL,NewSQL,OLAP,OLTP)

关系型数据库(RDBMS,即SQL数据库)NoSQLNewSQL为什么需要NewSQLNewSQL定义NewSQL设计架构代表产品OLTP和OLAPOLTPOLAP关系型数据库(RDBMS,即SQL数据库)商业软件: Oracle,DB2开源软件:MySQL,PostgreSQL 单机版本已经很难满足海量数据的需求 NoSQL...

2018-07-11 23:29:51 12467 1

原创 关于Linux系统缓存的一些测试

LRU缓存回收策略的验证环境信息:准备工作:操作步骤:第一组测试测试数据:第二组测试结论/proc/sys/vm/drop_caches取值1和2的区别测试验证准备条件操作步骤总结上一篇 Linux系统缓存知识整理 中提到几个测试用例,这里补充一下详细的测试数据和结论。 LRU缓存回收策略的验证环境信息:[...

2018-05-06 15:19:33 927

原创 Linux缓存相关知识整理(史上最全!!)

1. 相关概念页页缓存和块缓存概念页缓存(page cache)块缓存(buffer cache)缓存机制的利弊写缓存2. 数据同步(刷缓存)flush内核线程可调参数flush/sync/fsync系列API及命令介绍sync 系统命令sync()fsync()fdatasync()open()之O_SYNC/O_DSYNC选项msync()ff...

2018-05-06 00:52:25 5205 3

原创 使用linux-fincore查看Linux系统缓存哪些文件

概述linux-fincore 包含linux-fincore,linux-fincore,linux-fincore 三个工具。其中linux-fincore可以用来查看cache中有哪些文件。 编译安装该工具最初发布于googlecode,但googlecode现在已经关闭了。可以从github上找到其代码。 本人选用的是 https://github.com/wal...

2018-05-04 21:14:59 5736 1

原创 GreenPlum外表自定义协议及自定义数据格式调用框架分析——从外部表读数据

概述Greenplum外部表支持自定义协议,其数据格式通常为CSV或TEXT,也支持自定义数据格式。本文简单分析一下其外部表针对自定义数据格式、自定义协议的调用流程。 核心流程分析先来看一个GP从自定义协议的外部表读数据的调用堆栈: ……#5 0x00007fe50cfb8fca in my_import() from gpextprotocol.so...

2018-04-23 23:58:57 1000 1

原创 使用librdkafka高级消费者接口退出时rd_kafka_destroy卡住问题

近期在使用librdkafka消费者接口时遇到一个问题:当消息消费完成或用户主动退出时经常卡住,gdb attach上去看了一下是调用rd_kafka_destroy时一直阻塞: 剩余3个线程,其中两个在pthread_join,另一个当前堆栈顶层函数是poll 查阅代码,并打印了poll的参数,该调用是有超时时间的。也就是说不会一直阻塞,问题应该出在其他地方。 (gdb) se...

2018-04-23 22:48:43 2950

原创 CSV格式特殊字符转义处理

CSV是逗号分隔值(comama separated value)的缩写,也有一说是字符分隔值。因为分隔符也可以是其他字符。 当csv某个字段中包含换行(CRLF)、双引号、逗号(分隔符)时,整个字段必须用双引号括起来。例如: "aaa","b CRLFbb","ccc" CRLFzzz,yyy,xxx当csv某个字段用双引号括起来且字段中内容中还包含双引号时,必须在该...

2018-04-22 22:14:54 30571

原创 使用tcpdump+Wireshark抓包分析kafka通信协议

tcpdump 是Linux平台上网络抓包、分析神器,wireshark可用在Windows上以可视化方式直接分析查看tcpdump抓取的数据文件。且wireshark内置支持很多常见应用协议解析,其中就包括kafka通信协议(Wireshark 2.4.0到2.6.0)。因此我们可以通过tcpdump抓取kafka数据包保存到文件,通过wireshark分析学习kafka通信协议...

2018-04-21 23:08:51 10187 3

原创 而立之年再谈大龄程序员要不要转管理路线

引子        很多程序员都有一点技术情节,喜欢“专心搞技术”,不喜欢管理,尤其管人。甚至为自己是“专注于技术”而自感清高,有点看不起那些“外行管理内行”或者急于转型管理的Leader。 而且IT这个行业,有些时候确实是拥有技术就拥有很大的话语权,这个行业中确实不乏一些技术牛逼、敢和Leader叫板,甚至和老板拍桌子的人。 那么我们是应该在技术路线上一根筋钻到底,还是“为五斗米折腰”去转型呢?...

2018-04-07 21:43:15 3444 2

原创 librdkafka 配置相关源码阅读笔记

概述librdkafka 是kafka官方推荐的C客户端库,提供生产者API、低级和高级消费者API。根据librdkafka提供的文档介绍,其性能也是蛮不错的。近期因项目需要,简单阅读了librdkafka-0.11.1.x版本topic配置和全局配置相关的一些代码,并整理了一些笔记。librdkafka 下载地址: https://github.com/edenhill/librdka...

2018-04-06 22:32:50 1542

原创 Postgresql源码ERROR日志函数简析

背景最近在阅读Postgresql 10.3源码时发现,很多函数中打印了elog(ERROR)之后并没有明显的return,但从上下文逻辑看,此时必须返回错误、无法继续执行了。难道elog(ERROR)自带函数返回功能?带着这个疑问,简单梳理了一下elog的调用流程.elog 源码浅析elog 宏定义/* * 如果有可变参数宏,我们将给编译器一个暗示:当eleve...

2018-03-16 23:09:03 1753

原创 Greenplum自定义外部表协议开发

概述 我们知道Greenplum支持gpfdist、http等多种形式的外部表协议。但如果gpfdist、http、file等协议都无法满足需求,Greenplum还支持自定义协议的外部表,用户可以自己定义一种协议访问自己的外部数据,且数据格式可以是标准的TEXT或CSV,也可以是自定义的数据格式。      自定义协议在一些特殊场景下比较有用,例如需要在自己的系统和Greenplum...

2018-03-11 23:59:37 1424 4

翻译 gpfdist可写外部表协议介绍

介绍HTTP HeaderX-GP-SEQX-GP-DONEHTTP请求类型初始化请求数据请求Teardown 请求可写外部表工作原理可写外部表GUCWritable_external_table_bufsize概述原文链接gpfdist 支持可读外部表和可写外部表。本文将介绍可写外部表如何工作。介绍可写外部表的目的是将GPDB...

2018-03-03 16:35:07 1716

翻译 gpfdist可读外部表协议介绍

HTTP Header 介绍X-GP-SNX-GP-PROTOX-GP-CSVOPT可读外部表如何工作可读外部表GUCgp_external_max_segsreadable_external_table_timeout可读外部表工作流Protocol 0Protocol 1概述参考原文链接作为Greenplum所有ETL操作基本原理,我们...

2018-03-03 16:23:38 2040

原创 GreenPlum死锁问题定位手记

问题描述GreenPlum 5.0版本,在使用 gpcrondump 做备份时,如果同时还在执行一个自己写的存储过程,就有很高概率导致数据库死锁 该存储过程中涉及到表的创建、删除、数据导入等动作 分析过程因对GPDB以及Postgresql都不太熟,先在网上搜索了下“GreenPlum 死锁”,果真找到一篇定位过程分享 ,作者写的非常详细,几乎是手把手、图文并茂的讲述了他排查GPDB死

2017-12-17 21:15:07 4476

原创 【排序】 快速排序代码-C语言版

大家都理解快排的思路就是选一个pivot,然后遍历,把小于pivot的放到前面,大于pivot的放到后面。但是这个思路转换成代码怎么实现?本文也是参照教科书,给出一个相对比较高效的实现方式。即(以升序为例):1、左右交替检索,先从左边检索,如比pivot小则继续,否则跳到最右边继续反向检索;2、从右边检索时,如果某个值大于pivot,则继续,否则说明这个需要被交换到左侧。则将它与左边检索停止处的值交换3、检索时,把pivot的值保存到一个临时变量,这样数组中就空出来一个“坑”,当需要交换时,直接把值填

2017-06-05 23:04:53 906

转载 Linux网络IO并行化技术概览

转自:http://codinginet.com/articles/view/201605-linux_net_parallel过去的十年中互联网经历了爆发式的增长,这背后有什么技术平台起了最为关键的作用,我认为是Linux,即使在云计算流行的今天,它依然是最重要的一块基石。我们或许经常听到关于什么是最好的服务器编程语言、怎样是最好的架构设计的讨论,却从未听到有人讨论什么是

2016-11-03 10:59:43 1042

转载 【好文收藏】基于OpenStack和Kubernetes构建组合云平台——网络集成方案综述

转自: http://geek.csdn.net/news/detail/104150一谈到云计算,大家都会自然想到三种云服务的模型:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。OpenStack已经成为私有云IaaS的标准,而PaaS层虽然有很多可选技术,但已经确定统一的是一定会基于容器技术,并且一定会架构在某种容器编排管理系统之上。在主流的容

2016-09-27 23:24:21 610

转载 五分钟理解一致性哈希算法(consistent hashing)

原文链接:http://blog.csdn.net/cywosp/article/details/23397179    一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P

2016-08-26 22:51:27 717

转载 Redis 源码分析:dict.c 和 dict.h

本文作者为@huangz,也就是Redis文档中文翻译版的创建和维护者,也是OOREDIS的作者。文章对Redis的核心数据结构,dict结构的内部实现进行了分析。是介绍Redis内部结构的好文章。原文链接:http://huangz.iteye.com/blog/1455808简介哈希表是 redis 的核心结构之一,在 redis 的源码中, dict.c 和 di

2016-08-25 21:53:00 1077

转载 Linux内存管理

本文转自: http://www.kerneltravel.net/journal/v/mem.htm 摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用

2016-07-09 00:01:28 484

转载 [转]2016年你应该学习的语言和框架

2015年,软件开发界发生了很多变化。有很多流行的新语言发布了,也有很多重要的框架和工具发布了新版本。下面有一个我们觉得最重要的简短清单,同时也有我们觉得值得你在2016年花时间精力去学习的新事物的一些建议。想了解更多的互联网专业知识,欢迎加入技术交流Q群:547147889大趋势在过去的几年里,有一个越来越明显的趋势是web应用的商业逻辑逐步从后端转移到了前端,然后后端变

2016-05-31 00:09:52 652

转载 HDFS EC:将纠删码技术融入HDFS

本文转自CSDN首页。原文链接:http://geek.csdn.net/news/detail/77338#rd?sukey=3903d1d3b699c208333d632e530c4b9744c5834feb52eec1adcedb583708afb26c596ca9b398a05871e4b84beac2f9e4在HDFS中,可靠性通过多副本的方式来实现,从而较低

2016-05-30 23:54:46 1463

转载 30岁到35岁:为你的生命多积累一些厚度

转自:http://www.zhishi365.com/zhishi/201311/30sui_all.html在这个世界上,“唯一不可阻挡的是时间,它像一把利刃,无声地切开了坚硬和柔软的一切,恒定地向前推进着,没有任何东西能够使它的行进产生丝毫颠簸,它却改变着一切。”我始终相信一句话:出来混,迟早要还的。虽然你我皆是凡人,只是这芸芸众生中的普通一员,但我依然希望每个人的生命都

2016-05-27 23:08:22 642

转载 文件系统缓存dirty_ratio与dirty_background_ratio两个参数区别

本文转自  http://blog.sina.com.cn/s/blog_448574810101k1va.html请尊重原作者知识产权!这两天在调优数据库性能的过程中需要降低操作系统文件Cache对数据库性能的影响,故调研了一些降低文件系统缓存大小的方法,其中一种是通过修改/proc/sys/vm/dirty_background_ration以及/proc/

2015-11-19 23:36:14 4929

转载 linux IO 内核参数调优 之 参数调节和场景分析

本文转自  http://backend.blog.163.com/blog/static/2022941262013112081215609/请尊重原作者知识产权!1. pdflush刷新脏数据条件(linux IO 内核参数调优 之 原理和参数介绍 )上一章节讲述了IO内核调优介个重要参数参数。总结可知cached中的脏数据满足如下几个条件中一个或者多个的时候就会被pdflush刷新到磁盘:(...

2015-11-19 23:05:45 1568 3

转载 linux下proc里关于磁盘性能的参数

我们在磁盘写操作持续繁忙的服务器上曾经碰到一个特殊的性能问题。每隔 30 秒,服务器就会遇到磁盘写活动高峰,导致请求处理延迟非常大(超过3秒)。后来上网查了一下资料,通过调整内核参数,将写活动的高峰分布成频繁的多次写,每次写入的数据比较少

2015-11-19 22:35:37 679

原创 apache2 开发C++模块 —— 基于cximage实现图片、缩略图下载功能

之前的博客中有提到基于apache2的模块开发,提供了下载文件的demo。但后来发现不仅仅是文件(准确说是图片)下载,还需要根据相关参数,提供图片缩略图下载、裁剪图下载或原图下载等功能。一、编译问题:        种种原因,选用cximage库来提供图片处理功能。但坑爹的是这个库是C++的,而apache是c的,apxs怎么才能编译C++代码呢? 当然可以把cximage封装一下

2015-10-23 00:17:48 1847

转载 linux下autoscan, aclocal, autoconf, automake以及Makefile.am, Configure.in等文件和工具的使用

本文转自:http://blog.chinaunix.net/uid-26575352-id-3411843.html本文章简单介绍了linux下autoscan, aclocal, autoconf, automake以及Makefile.am, Configure.in等文件和工具的使用。autoscan # 根据路径下生成configure.sca

2015-10-22 23:05:43 2571

原创 64位Linux编译cximage手记

CxImage类是一个优秀的图像操作类库。它可以快捷地存取、显示、转换各种图像。相比于OpenIL,FreeImage,PaintLib等其他图像处理库,CxImage类库是完全免费、开源的。另外这是一个典型的MFC风格C++类库,估计最早就是在MFC上开发的吧,后续才移植到Linux上。    最近项目需要,以前在Windows客户端上用Cximage进行的图片处理,要移植到Linux服务端

2015-10-22 22:20:49 5074 7

转载 每个 Web 开发者都应该知道的关于 URL 编码的知识

说明:转载本文仅为方便自己学习查看,请尊重原文(英文)作者和译文作者的知识产权!原文出处:  http://blog.lunatech.com/2009/02/03/what-every-web-developer-must-know-about-url-encoding译文出处:  http://www.oschina.net/translate/what-every-w

2015-10-06 22:05:33 3271

原创 c apache2模块开发--根据自定义业务逻辑实现文件下载

1.需求概述     最近和公司其他项目平台对接,有这样一个需求:提供一个HTTP Server,从URL中解析出文件ID等信息,然后调用我方项目开发的接口,从我方平台中下载这个文件,根据URL中的参数再对其做一些简单处理,然后再将文件以HTTP方式发送给对方平台。由于只用到一个查询接口,get即可满足,因此不用rest库。且受限于软硬件条件,不用java,需使用c/c++开发。2

2015-10-06 21:32:44 2436 1

转载 [怎样留住员工]解密“攻城狮使用手册”

转者注: 本文转自CSDN首页,原文出处《解密“攻城狮使用手册”》 ,请尊重原作者的知识产权。本人目前所在项目组,经过两年多的开发,功能基本稳定,近期都没有大的特性合入。在市场销售方面,还处于推广初期,阻力比较大,因此业绩也比较一般,大家收入自然也平平淡淡。 项目组中的开发人员,每天主要就是改一些小bug,类似这种缝缝补补的琐事。天天忙忙碌碌经常加班,却感觉像是没做什么事情,

2015-09-30 22:40:10 864

转载 联想基于OpenStack的高可用企业云平台实践

本文转自CSDN首页,如有侵权请及时和我联系,马上删除。原文地址: http://www.csdn.net/article/2015-09-17/2825729摘要:联想IT选择了基于OpenStack承载其“互联网”战略的企业云平台。经过半年多的实践,联想已经建设成为规模超过3000 Core的OpenStack生产级环境,数据以最高10TB/天的速度快速增长

2015-09-18 23:10:04 1988

转载 员工3个月内离职和2年左右离职,差别超乎你的想象!

从15年春节后到现在,本人所在项目多名骨干员工离职。截止到今天,在本人之前入职、没有成为团队Leader或更高级别“领导”的同事,已经全部离职了,并且在大都拿到了看起来非常不错的offer。离职的员工大都一肚子牢骚抱怨,但领导对他们的离去同样也感到十分委屈和费解。本人以一个工作多年码农的角度不断思考着这种矛盾,希望能悟出一些员工职业发展、项目管理方面的经验。恰好看到这篇文章,感悟颇深。特转载以共勉

2015-09-18 22:50:40 2100 1

转载 好的技术领导与差的技术领导,千万不要对号入座,你会死的很惨!

原文转自网络,原始出处不详。团队合作一个优秀的技术领导必然是团队的一份子,他们认为当整个团队成功时自己才称得上成功。他们不仅要做好繁杂和不讨好的本职工作,还要清除项目中的障碍,从而让整个团队能够以100%的效率运转起来。一个好的技术领导会努力去拓宽团队在技术上的可行性,以确保对关键系统的认识与实施不仅仅局限于一两种想法。一个糟糕的技术领导通常以完成工作邀功为目的而将

2015-09-18 22:03:24 1767

原创 Linux开发调试经验整理(一)——Release版本死锁定位

debug 版本的应用程序发生死锁,可以将pthread_mutex_t打印出来,查看其中的owner字段即可知道锁被哪个线程持有。 release版本的程序,由于进行了优化,可能无法直接打出锁变量。 这里介绍一个简单方法,可以查看release版(当然也支持debug)的锁状态,以便快速定位死锁问题。

2015-09-09 21:55:19 1885

原创 码农成长篇——新员工怎样快速脱颖而出

我身边有过很多新员工,自己也多次当过新员工。有的新员工试用期就表现优异,被评为优秀人等等;有的略显慢热,大器晚成;也有的一直表现平平,几个月甚至半年一年后都不能独立开展工作;更有甚者甚至试用期就黯然离去。       这里我以自己的亲身经历、亲眼见闻,谈谈新员工怎样快速脱颖而出。技术篇:人无我有,人有我精        人无我有,别人做不到的事我能做到、别人解决不了的问题我能解

2015-08-11 22:15:54 1805 1

原创 一个码农对软件项目基层人员管理的思考——会议篇

会议是项目内部沟通、管理的重要手段之一。以敏捷开发为例,典型的会议可能有晨会(站立会议)、迭代开工会议、迭代总结会议、周例会,以及一些重要方案的讨论、评审会议,内部的交流和培训会议等。    会议的目的是什么?是为了更好的沟通,具体的说,无非是为了高效传达一些事情,比如站立会议主要是为了相互了解彼此的进展和问题;或者集思广益、对一些问题达成一个统一的意见,比如一些方案的讨论、评

2015-08-08 22:51:47 2181 2

转载 使用 XML-RPC 为 C++ 应用程序启用 Web 服务

将 C++ 方法作为服务公开的详细指南转自: http://www.ibm.com/developerworks/cn/webservices/ws-xml-rpc/引言Internet 现在的受欢迎程度越来越高,由于这个原因及其固有的优势,促使开

2011-09-09 01:13:58 1536

PostgreSQL Hook编程介绍

介绍PostgreSQL钩子技术,钩子技术不同于插件/API,它可以在更底层提扩展支持。

2018-07-12

libtask源码详细注释版

libtask源码注释太少,有些细节不太容易理解。本人通过详细阅读代码 gdb跟踪,并汇总网上大量资料,对代码添加了很多注释,方便大家阅读学习

2017-11-18

Push_Notification介绍

SEVEN Open Channel 文档,以及Push_Notification介绍

2013-06-05

Restful Web services cookbook 中文版

Restful Web services cookbook 中文版 第1章 使用统一接口 1.1 如何保持交互的可见性 1.2 何时使用GET方法 1.3 何时使用POST方法 1.4 如何使用POST方法创建资源 1.5 何时使用PUT方法创建新资源 第2章 识别资源 2.1 如何从领域名词中识别资源 2.2 如何选择资源粒度 2.3 如何将资源组织为集合 2.4 何时将资源合并为复合资源 第3章 设计表述 3.1 如何使用实体头来注解表述 3.2 如何解释实体头 3.3 如何避免字符编码不匹配 3.4 如何选择表述格式和媒体类型 3.5 如何设计XML表述 3.6 如何设计JSON表述 3.7 如何设计集合表述 3.8 何时以及如何提供HTML表述 3.9 如何返回错误 3.10 如何在客户端处理错误 第4章 设计URI 4.1 如何设计URI 第5章 查询 5.1 如何针对查询设计URI 5.2 如何设计查询响应 5.3 如何支持有大量输入的查询请求 5.4 如何存储查询

2011-11-03

heartbeat 故障解决

heartbeat 问题的一些讨论 主要针对dispatch …… took too long to execute 的问题

2011-04-13

Boost库文档(中文)

Boost带领你远远地超越了C++标准库,它使得C++编程更优雅、更有活力、更高产。首先,我们系统地介绍一下Boost库的主要组成和它们的主要用法。 Björn Karlsson为中级至高级的C++开发者描述了所有58个Boost库的轮廓,并完整叙述了12个可能最有用的库。Karlsson的主题范围从智能指针和类型转换,到容器和数据库结构,解释了如何正确地使用每一个库来改进你的代码。他详细论述了可以让你写出更简明、清晰、易读的代码的高级函数对象。他还带你到Boost的"幕后",看看那些对你创建自己的泛型库有益的工具和技术。 本书的内容包括: 智能指针,提供自动的对象生存期管理和简单的资源共享 提供类型转换和词汇转换的统一的、最优的解决方案 使编程更简单、更清晰的工具类 灵活的容器类,解决了C++标准库未覆盖的问题 对正则表达式的强有力的支持:Boost.Regex 可在调用点进行定义的函数对象:Boost.Bind 和 Boost.Lambda 更灵活的回调机制:Boost.Function 可管理的信号和响应动作(又称为Observer模式):Boost.Signals Boost库已被证明了是非常有用的,它们中的大多数已准备列入下一个版本的C++标准库。现在就开始,Beyond the C++ Standard Library.

2011-04-06

C++ STL参考手册

C++ STL 详解。 比较详细,值得一看,chm格式。如果下下来打不开请把后缀名改成chm的;若有乱码可调整IE浏览器编码方式后重新打开。 英文的,不过也很简单易懂。

2010-10-26

VSS使用说明(pdf)

pdf格式,非常清晰。 讲解的也比较详细,值得收藏。

2010-03-28

InstallShield内部函数全集

InstallShield内部的各种函数,比较齐全

2009-12-01

WinDbg使用帮助

关于WinDbg调试的一些文章,chm格式。 本人提倡共享,鄙视设分下载。

2009-11-28

空空如也

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

TA关注的人

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