- 博客(32)
- 收藏
- 关注
原创 Lucene底层原理和优化经验分享(2)-Lucene优化经验总结
系统优化遵从木桶原理:一只木桶能盛多少水,并不取决于最高的木板,而取决于最短的那块木板。Lucene优化也一样,找到性能瓶颈,找对解决方法,才能事半功倍,本文将从三方面阐述我们的Lucene优化经验: 1. 找准方向 -> Lucene性能瓶颈分析。 2. 找对方法 -> Lucene代码架构分析。 3. 方法落地 -> 优化经验总结。1. Lucene性能瓶颈分析 上篇Luce
2017-01-06 09:21:45
11732
4
原创 Lucene底层原理和优化经验分享(1)-Lucene简介和索引原理
基于Lucene检索引擎我们开发了自己的全文检索系统,承担起后台PB级、万亿条数据记录的检索工作,这里向大家分享下Lucene底层原理研究和一些优化经验。 从两个方面介绍: 1. Lucene简介和索引原理 2. Lucene优化经验总结1. Lucene简介和索引原理 该部分从三方面展开:Lucene简介、索引原理、Lucene索引实现。1.1 Lucene简介 Lucen
2017-01-04 08:52:12
49045
6
原创 位图索引bitmap(二):现代位图索引技术
传统位图索引技术最大的局限性主要表现在,高基数列的索引尺寸过大从而影响查询性能。所以,从控制索引大小和减少查询响应时间这两个出发点,业内的优化策略一般从以下三个角度切入:分桶(binning)、编码(encoding)和压缩(compression)。
2016-10-28 13:32:27
3920
原创 位图索引bitmap(一):基本概念
位图索引(bitmap index)技术是一类特殊的数据库索引技术,其索引使用bit数组(或称bitmap、bit set、bit string、bit vector)进行存储与计算操作。
2016-10-28 13:18:19
13783
原创 OLAP基础
基本概念 联机实时分析(OnlineAnalytical Processing, OLAP (/ˈoʊlæp/))技术是快速响应多维分(Multidimensionalanalysis, MDA)的一种解决方案。 首先,解释下什么是多维分析:多维分析是一种数据分析过程,在此过程中,将数据分成两类:维度dimensions)和度量(metrics/measurements)。维
2016-10-28 10:30:44
27151
原创 应用架构B/S与C/S优劣比较(二)
三、发展态势分析1. C/S最新发展桌面应用主要以Windows系统和移动设备为主。我们主要讨论windows下的桌面应用发展技术。l C/S架构1) 二层结构早期的C/S使用两层结构:前端是客户机,完成界面展示、接受用户输入、校验数据有效性,处理业务逻辑,访问数据库并接收结果;后端服务器主要运行数据库系统,提供数据持久化和数据管理。2) 三层结构
2016-08-29 19:44:19
9162
原创 应用架构B/S与C/S优劣比较(一)
一、背景介绍C/S(Client/Server):客户端/服务器结构。界面表示、事务处理逻辑放在客户端,服务端主要负责数据的存储管理,这就是胖客户端模式。而在三层架构模式下,表示层和少量的事务处理放在客户端,主要的事务处理逻辑放在业务应用服务端,同时数据存储管理仍然为独立的一层。B/S(Browser/Server):浏览器/服务器结构,界面显示逻辑放在浏览器,事务处理逻辑则在Web
2016-08-29 19:39:35
29322
翻译 读书笔记
作者: 戈峰 欧永广 郑德立 张雁 1. 《实现模式》I.实现模式价值观Ø 沟通:代码是与人沟通的桥梁Ø 简单:通常简单和沟通都是不可分割的Ø 灵活性:灵活性的提高可能以复杂性的提高为代价II.实现模式原则Ø 局部化影响:组织代码结构时,保证变化只会产生局部性影响Ø 最小化重复Ø 逻辑与数据捆绑:逻辑与逻辑所处理的数据放在一起,修改它们只会影响局部化
2016-08-05 16:38:09
1062
原创 编程工具介绍及常见故障诊断
作者:欧永广 张雁 朴星海一、 编程环境及编程工具1. eclipse插件介绍I.CheckStyle:CheckStyle 可以协助寻找那些可影响到可维护性、与编码标准相冲突的地方,比方说,过大的类、太长的方法和未使用的变量等等。II.EclEmma:EclEmma 就是这样一个能帮助开发人员考察测试覆盖率的优秀的 Eclipse 开源插件。EclE
2016-08-05 16:32:37
736
原创 大数据分析技术研究报告(四)
作者:朱赛凡四 大数据背景下数据分析挖掘技术介绍1 Mahout与MLlib项目数据分析挖掘主要涉及两个方面:一是数据预处理;二是数据挖掘。在数据预处理方面,根据掌握资料来看,大型互联网公司主要以MapReduce、Storm等计算框架为主,这些平台可以较好解决大数据预处理面临并行计算和处理灵活性的问题。但是个人认为spark、tez等属于MapReduce升级版本,因
2016-08-05 16:19:50
4164
原创 大数据分析技术研究报告(三-3)
作者:朱赛凡3) 存储层数据存储层主要包括以下几类:一类是基于MPP数据库集群,这类系统特点是存储层与上层并型计算引擎是紧耦合,属于封闭性的系统。二是采用分布式文件系统,例如SharK、Stinger、HIVE、Impala、Scope等。Shark、Stinger、Hive、Imapla都采用HDFS文件系统作为存储层,Scope采用微软自己开发的分布式文件系统。此类
2016-08-05 15:38:19
2180
原创 大数据分析技术研究报告(三-2)
作者:朱赛凡2) 并行计算引擎层(1) 并行计算形式并行化可以分为水平并行(无依赖并行)与垂直并行(流水线并行)两类。如下图: 如果两个操作OP1、OP2 无相互依赖关系,则称这两个操作相互独立。水平并行化指的是互相独立的多个操作或者一个操作内互相独立的多个子操作分别由不同的处理机并行执行的形式。例如,排序操作、扫描操作由不同处理机并行执行就是水平并行化的实例。
2016-08-05 15:23:31
2372
原创 大数据分析技术研究报告(三-1)
作者:朱赛凡 三大数据背景下数据统计分析技术介绍随数据量变大,和事务处理不同的是,单个统计分析涉及数据量会非常大,单个统计分析任务涉及数据会分散在多台服务器上,且由于计算量大,采用单台服务器进行计算,会导致计算时间非常长,单个统计分析任务必须采用并行计算方式来加快单个统计分析任务执行速度。1并行查询与并行计算技术介绍在大数据背景下的数据统计分析技术门类很多,常见的有:
2016-08-05 15:13:24
1497
原创 大数据分析技术研究报告(二)
二 大数据背景下事务型处理系统相关技术在google、facebook、taobao等大互联网公司出现之后,这些公司注册和在线用户数量都非长大,因此该公司交易系统需要解决“海量数据+高并发+数据一致性+高可用性”的问题。为了解决该问题,从目前资料来看,其实没有一个通用的解决方案,各大公司都会根据自己业务特点定制开发相应的系统,但是常用的思路主要包括以下几点:(1)数据库分片,结合业
2016-08-05 15:09:49
2635
原创 大数据分析技术研究报告(一)
作者:朱赛凡一 数据分析处理需求分类1 事务型处理在我们实际生活中,事务型数据处理需求非常常见,例如:淘宝网站交易系统、12306网站火车票交易系统、超市POS系统等都属于事务型数据处理系统。这类系统数据处理特点包括以下几点:一是事务处理型操作都是细粒度操作,每次事务处理涉及数据量都很小。二是计算相对简单,一般只有少数几步操作组成,比如修改某行的某列;三
2016-08-05 15:06:21
7488
原创 并行文件系统近期的一些研究
作者:朱赛凡近期对并行文件系统做一些一些研究,主要阅读了GPFS、ceph论文,同时查找了一些行业使用并行文件系统的应用场景。总结如下:1 并行文件在性能方面主要优势是通过“条带”来提高传输带宽,而相反随机小IO效率低下。2 并行文件系统更多用在高性能计算中,这样场景一般包括:(1) 多个分析进程并行读写一个非常大文件; (2) 单个进程能够以非常大的带宽读写一个文件;
2016-08-05 14:38:34
3275
原创 系统突然掉电与数据安全问题研究
在系统掉电或者因为服务器故障直接按电源按钮时,经常会出现即使物理磁盘没有任何故障,而数据库系统或者文件系统损坏情形。数据是最宝贵的资源,为此对此方面问题进行研究。系统突然掉电导致数据丢失主要原因是由于各个层面的数据缓存导致:突然掉电导致缓存中的数据丢失,从而使得数据库文件和文件系统数据不一致,导致数据丢失。此种错误可认为属于逻辑错,区别因为物理磁盘坏道等情况导致的物理错误。
2016-08-05 14:28:47
5637
1
原创 代码常见错误与自查清单(二)
五 ICE调用检查1 请检查ICE调用设置了如下参数: props.setProperty("Ice.CacheMessageBuffers", "0"); //内存参数 //消息最大大小
2016-07-22 14:50:11
878
原创 代码常见错误与自查清单(一)
作者: 苏鹏 、朴星海、戈峰、张雁一 内存越界检查1 字符串操作越界:strcpy( )和sprintf (fullName, "%s%s", dir, fileName),检查是否长度会超过缓冲区,建议采用strncpy。2 字符串操作越界: 检查String对象substring(int beginIndex, int endIndex)函数beg
2016-07-22 14:47:38
1193
原创 模块设计与实现经验总结(四)
功能说明内容及规范 编写功能说明时,由开发人员站在使用者角度来描述和重新审查模块1、模块部署环境和与周围模块交互情况描述u 以图方式描述本模块与周围模块的交互情况,以及部署方式。u 本模块调用的外部接口描述。u 本模块对基础环境要求:内存、网络、磁盘等。2、模块配置说明u 配置文件设计理由,那些固定不变的,哪些是应对业务变化。u 仔细描述各个配置文件的含义u 说明如何通过配置来对应业务变化3、模块功能说明详细描述本模块的功能点。对每个功能点,一般描述以下几个方面:
2016-07-22 13:58:08
3411
原创 模块设计与实现经验总结(三)
3 模块详细设计指南与规范模块详细设计要完成两个方面工作:一是明确模块的功能需求和非功能需求、二是设计如何完成和实现模块的功能需求,包括类结构、线程结构设计等。本节根据后台模块特点,描述了两部分工作需要考虑和设计的关键点。3.1确定模块的功能规格1) 本模块概述概述主要描述了本模块所属子系统,以及在子系统中所承当职责的简单描述。2) 本模块在系统中与周围模块关系和交互情况
2016-07-22 13:55:35
20802
原创 模块设计与实现经验总结(二 )
很多BUG难以发现和定位原因是在不同类和对象之间的发生交互和联系后,组合排列后的情况非常多,从而想不到某些组合。这种BUG只有从整体考虑、考虑不同类和对象之间交互关联后才可能想到。
2016-07-22 13:52:25
3794
原创 模块设计与实现经验总结(一)
导致模块质量不高的主要原因是整个开发过程,没有明确地区分“确认和细化功能规格”和“实现功能规格”两个阶段,很多开发者的开发过程是两个过程混在一起,整个过程属于没有明确方向和不断变化的状态,恶果是导致很多例外情况没有考虑到并进行妥当处理,最终导致大量BUG的出现。具体表现如下
2016-07-22 13:37:59
9478
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人