您现在的位置:首页
--> 量子数科院
最近这本书给了我启示《12 Essential Skill for Software Architects》。那就慢慢写下读书笔记吧。 那么怎样才能做到泥? 保持关系,而不是一味的纠正别人 工程师由于每天都在和大量的程序、机器打交道,工作的重心之一就是订正各种各样的错误,但是人不是软件更不是机器,一味的去订正别人的错误是非常有害的(而且我们当时认为的“错误”其实更多情况下是我们没有全面审视而得出的结论,随着社会压力、生活节奏加快,这点尤其突出)。在纠正别人之前,先学会问自己两个问题? 1. 这个“错误”是不是非常重要? 2. 暂时忽略这个错误会不会给公司或者组织带来重大影响? 如果答案是“NO!”,那么我们应该停止:打断别人去纠正”错误“的行为。
• 量子数据系统实践
从2010年开始介入量子统计系统的设计到开发,恍然间已经两年时间过去了。很多情况下都是业务在驱动着工程化和站在原来量子统计的架构设计、工程实现上前行(感谢@史绪良爱自由)。 1. 先说一下工程结构吧: 说数据处理的结构又必须啰唆说一下CAP理论(中文、英文) Consistency (所有的节点在同一时间看到的是一样的数据) Availability (无论成功还是失败要快速返回数据处理的业务处理结果) Partition tolerance (系统能够容忍任意的消息丢失) 这三个特性在分布式系统里面是不能兼得的。尽管在做量子数据系统工程化开发的时候,心中并没有这样的概念,但是理论真的很重要,越到后来越重要。
把select标签放在一个带有滚动条的区域中时,在IE6下,拖动滚动条时,select选择框不能随着滚动条正常滚动,就像被卡住了一样,用鼠标点击select下拉框才能恢复正常。
最近在项目中使用了开源OLAP引擎——Mondrian实现一个多维分析系统,在项目后期系统优化阶段使用了Mondrian中的聚合表机制。这里结合 Mondrian官方资料和个人使用经验,对Mondrian中聚合表的概念、应用场景、如何使用、注意事项等内容做一个总结。 1. OLAP相关概念 Mondrian是一个基于Java语言的开源OLAP引擎,它通过MDX语句执行查询,从关系型数据库RDBMS中读取数据,以多维度的形式展示查询结果。 Mondrian通过Schema来定义一个多维数据库,它是一个逻辑概念上的模型,其中包含Cube(立方体)、Dimension(维度)、Hierarchy(层次)、Level(级别)、Measure(度量),这些被映射到数据库物理模型。Mondrian中Schema是以XML文件的形式定义的。
实时计算引擎在处理实时数据时,要保证新到来的数据被及时得到处理。例如,对于网站的访问日志数据,假设每一分钟有一个日志文件,那么实时计算引擎必须满足能够在一分钟之内处理完这一分钟的日志数据文件,否则会导致日志文件堆积而不能被及时处理。前几天,量子后端团队排查了一次实时计算引擎出现的处理延迟故障,其中使用到了ltrace和strace工具,在这里和大家分享一下。 1. 故障描述 当天由于大量突发异常数据的到来,导致实时计算引擎在处理每分钟日志文件时的速度大幅下降,出现明显的延迟现象,表现为平均每处理1分钟文件需要2分钟甚至更长的时间,最长可以到5分钟,进而导致了日志文件堆积而不能被处理。 2. 故障分析 实时计算引擎在处理日志文件时,采用顺次读取各分钟文件中的日志记录到内存中进行计算的方式(compute过程),因此引擎在每处理完1分钟文件时,需要进行日志的轮转切换(rotate过程)。
本文从实际使用经验出发,介绍一款开源的MySQL数据库InnoDB数据恢复工具:innodb-tools,它通过从原始数据文件中提取表的行记录,实现从丢失的或者被毁坏的MySQL表中恢复数据。例如,当你不小心执行DROP TABLE、TRUNCATE TABLE或者DROP DATABASE之后,可以通过以下方式恢复数据。 以下内容大部分参考自:Percona Data Recovery Tool for InnoDB,文档是英文的,而且写的比较晦涩,这里是个人的实战经验总结,供大家参考学习。
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考:淘宝Ken Wu同学的博客。 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡。
前言 多线程程序中,锁的使用往往成为系统性能的关键。在做地址可视化项目的时候,由于内存管理部分需要频繁的更新内存的引用计数,所以产生了使用自旋锁的想法,这篇文章我们从自旋锁的性能开始说起,由浅入深的给出了一种改进的自旋锁的实现。 这里我们 1) 讨论自旋锁对并发程序性能的影响; 2) glic中自旋锁的缺陷; 3) 随后提出了一种改进的(用户空间)自旋锁的实现,供大家在今后的程序设计中参考、使用。欢迎给出改进的自旋锁中的不足和意见。 关于锁 总体上来看,锁分为两种:休眠式锁和自旋锁。休眠式锁的原理是当当前线程不能获取到指定的锁时,它就让出CPU,加入到一个等待队列中,直到被唤醒,它才会被重新调度执行。自旋锁的原理是若当前线程不能获取到指定的锁,它不会主动让出CPU,而是会在一个紧凑循环中重复的检测锁是否已经可用,即忙等待(busy wait)。 休眠锁与自旋锁的对比 如果对临界资源的访问时
本文是对《big data glossary》第三章MapReduce的个人翻译,无版权 在传统的关系数据库世界中,所有的处理都发生在信息被载入存储之后,使用特定的查询语言处理高度结构化和优化的数据结构。而由Google引领,然后被许多其他网络公司所接纳的替代方式是:创建一个读写任意格式文件的流水线,在每个阶段以文件的方式交换中间结果,并且跨机器分布计算。通常基于MapReduce方法进行分布式工作的方法都需要一套全新的工具,我将在下面介绍。 Hadoop 最初是由Yahoo!开发的一套Google MapReduce架构的克隆系统,但随后被开源。Hadoop帮助你的代码在跨机器的集群上运行。它负责对输入的数据分块,并发送到各自对应的机器,在每个分块上运行代码,监测运行的代码,将结果发送到下一步的处理阶段或者最终存储下来,执行发生在map和reduce阶段间的排序工作并将排序后的数据发送到
使用nginx记日志 做web服务和应用的时候,很多场景下需要记录日志。 如 访问日志,性能分析日志,打点日志,数据统计日志等。
由于项目开发的需要,使用HBase作为数据统计应用的存储系统,这里是一些经验总结以及对于使用过程中存在问题的解决思路。
如果Google一下“闭包”这个词,会发现网上关于闭包的文章已经不计其数,甚至很多人将闭包看做面试JavaScript程序员的必考题(虽然闭包和JavaScript没有什么必然联系)。既然如此,我为什么还要写一篇关于闭包的文章呢?首先,虽然网上关于闭包的文章甚多,但是很少以较为形式化的角度阐述闭包,而我认为理解闭包的关键之一就是从形式化角度理解其涵义;其次,大多数文章将闭包的概念与JavaScript语言绑定太死,这样容易局限对闭包...
本文首先举了一些数据可视化的例子,希望通过通过分析这些实现来一窥作者设计的意图,接着,提出了量子系统应用的目标,并探讨了我们在选型时考虑的过程和因素,最后举了一个量子中应用的例子,希望能给读者在选型时带来一些参考。 在这个数据爆炸的年代,从海量数据中分析出有意义的数据和为这些数据选择合适的表现形式同样重要。 在我们的身边,数据可视化的实例时时上演――交通流量图、天气预报、思维导图、历史事件和新闻等等...
某天,大家发现YF的桌上有这本薄薄的《瞬间之美》,当场便推荐我阅读之,说读完后会有不少收获。今天俺就来回顾下这本书给我的瞬间之美。 整体印象 作者Robert还原自己的亲身经历,将一个网站交互体验流程分解30多个瞬间,讲述自己在这一系列瞬间中的交互设计故事。书中没有什么大道理,而是最简单和最直接的交互设计故事,包括作者在失败后的探索与改进,这为读者更深入的理解作者的观点提供了较真实的情境,并且在还能学到如何发...
传统上,PHP中使用memcache的方法是使用php-memcache或php-memached扩展操作memcache,然而在Nginx上有构建更高效缓存机制的方法,本文将首先介绍这种机制,然后介绍具体的操作步骤方法,最后将对这种机制和传统的PHP操作memcache的性能进行一个benchmark。
最近开发中遇到几种应用,刚好使用MAPJOIN来解决实际的问题。 应用共同点如下: 1: 有一个极小的表<1000行 2: 需要做不等值join操作(a.x < b.y 或者 a.x like b.y等) 这种操作如果直接使用join的话语法不支持不等于操作,hive语法解析会直接抛出错误 如果把不等于写到where里会造成笛卡尔积,数据异常增大,速度会很慢。甚至会任务无法跑成功~ 根据mapjoin的计算原理,MAPJION会把小表全部读入内存中,在map阶段...
本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。
本文以HBase 0.90.2为例,介绍如何在Windows系统,Eclipse IDE集成环境下,使用Java语言,进行HBase客户端编程,包含建立表、删除表、插入记录、删除记录、各种方式下的查询操作等。 1. 准备工作 1、下载后安装jdk包(这里使用的是jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008); 2、下载eclipse,解压到本地(这里使用的是eclipse-java-helios-SR2-win32); 3、下载HBase包,解压安装包到本地(这里使用的是hbase-0.90.2)...
Rebar在运行单元测试的时候,在每个单元测试的页面,提供到源代码的连接,这个连接会连接到一个根据源代码生成的html文件,在这个html文件中提供了列出行数的源文件,方便在测试用例出错时候,快速的定位错误。 但是此功能不支持中文,这里有一种解决方案可以解决这个问题.....
从存储引擎的角度出发,简单介绍B-Tree索引结构下,建立主键及复合索引或普通索引时的一些约定及优化方法。
近3天十大热文
- [53] IOS安全–浅谈关于IOS加固的几种方法
- [52] 如何拿下简短的域名
- [51] 图书馆的世界纪录
- [50] android 开发入门
- [50] Oracle MTS模式下 进程地址与会话信
- [49] Go Reflect 性能
- [46] 【社会化设计】自我(self)部分――欢迎区
- [46] 读书笔记-壹百度:百度十年千倍的29条法则
- [36] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑
赞助商广告