生活的可能性

生活的可能性

我时常想起这么个问题:如果当初作了另一个选择,那么恐怕不会是现在的生活吧。 想想就觉得很奇妙,不同的选择,就把人引向不同的道路,有时候一不小心,又殊途同归。记得以前有个笔友在信里说,如果没有遇见彼此,也许生活是完全不同的另一番模样。 和大多数人一样,我也是个不喜欢太多变化的人。本质上人都害怕未知,害怕触碰甚至窥视自己不知道的领域。 但自己的内心又分明躁动不安,我经常反复问自己的一个问题是: 我究竟…

Read More Read More

本机搭建Hadoop伪分布式模式

本机搭建Hadoop伪分布式模式

Hadoop运行时有三种模式: 单机模式 伪分布式模式 完全分布式模式 前两种可以在单机运行,最后一种用于真实的集群环境,通常用在生产环境上。我们可以搭建本地的伪分布式模式来模拟分布式环境的执行。

Redis容灾策略

Redis容灾策略

Redis利用内存发挥的高性能读写在很多场景下大有所为,但是Redis本身毕竟还是一个单机数据库,如果系统对其属于强依赖,那么还是必须做好必要的容灾,针对这个问题,有以下几种策略: 一、M/S切换 由于Redis是单机数据库,所以针对MySQL的一些容灾方案也能顺利适用,例如当Redis意外宕机,可以将请求马上切到备库,同时快速恢复数据。 二、AOF Redis有两种持久化的方式,分别是SnapS…

Read More Read More

用AtomicStampedReference解决ABA问题

用AtomicStampedReference解决ABA问题

在运用CAS做Lock-Free操作中有一个经典的ABA问题: 线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如下面的例子:

理解重排序

理解重排序

重排序通常是编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段。重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境。 在并发程序中,程序员会特别关注不同进程或线程之间的数据同步,特别是多个线程同时修改同一变量时,必须采取可靠的同步或其它措施保障数据被正确地修改,这里的一条重要原则是:不要假设指令执行的顺序,你无法预知不同线程之间的指令会以何种顺序执行。 …

Read More Read More

Yahoo! S4:分布式流计算平台

Yahoo! S4:分布式流计算平台

一、概述 S4(Simple Scalable Streaming System)最初是Yahoo!为提高搜索广告有效点击率的问题而开发的一个平台,通过统计分析用户对广告的点击率,排除相关度低的广告,提升点击率。目前该项目刚启动不久,所以也可以理解为是他们提出的一个分布式流计算(Distributed Stream Computing)的模型。

QCon2011大会4月8日PPT学习总结

QCon2011大会4月8日PPT学习总结

最近正在召开QCon北京2011大会,趁此机会学习了一部分QCon大会的PPT,大会的PPT可以在QCon大会官网下载:http://www.qconbeijing.com/schedule.html 主题:淘宝商品库优化实践 讲师:淘宝核心系统数据库组 余锋(褚霸) 在技术方案的着眼点上,讲师主要强调了:通过高性能硬件支持平台,充分利用Cache(这一点在之后的演讲中多次强调),充分考虑容灾性。…

Read More Read More

NoSQL简介

NoSQL简介

传统关系型数据库面临很多问题。 1、需要很高的实时插入性能:在高并发读写环境下,每秒上万次读请求勉强可以支撑,但是在每秒上万次写请求之下,硬盘I/O将无法承受。 2、需要海量数据存储能力的同时还需要非常快的查询检索速度:在一个表中存储数以亿计的记录后,使用SQL查询的效率是极为低下的。 3、需要将数据存储无缝扩展到整个集群:数据库的横向扩展比较困难,往往需要停机维护和数据迁移,不能像Web服务器那…

Read More Read More

高性能可伸缩系统构建的简要思想

高性能可伸缩系统构建的简要思想

为了支持高并发访问和海量数据的场景,在搭建应用时需要努力构建可伸缩的系统,这样在后期系统遇到瓶颈时可以简单地通过垂直伸缩或水平伸缩扩展系统。本文整理借鉴了林昊老师对构建可伸缩系统的文章。 一、垂直伸缩 垂直伸缩指通过增加或升级单台机器的硬件来获得对高并发访问和大数据量的更好支持。 1、支持高并发访问 可以增加CPU和内存,同时需要对系统进行一定调整,尽可能使得软件性能随硬件性能线性增长。 增加CP…

Read More Read More