`
san_yun
  • 浏览: 2673568 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论
文章列表
其实大多数互联网应用对事务性要求都不高,更多的挑战在于更好的性能和更高的可扩展性,只有少数涉及到账户和交易的系统才对事务和一致性有着强烈的需求。 事务机制: ACID原则 当我们需要对2个及以上的数据实体进行写操作,这些数据存在依赖关系,需要保证同时成功或者失败的时候,我们就需要 原子性 操作。例如总账户和交易明细,他们是存在依赖关系的,如果更新了总账户,没有产生交易明细,就会出现不一致的状态。仅仅原子性还不能保证数据的一致性,原子性只能保证一起写成功/失败。例如在一个原子性更新交易明细成功之后,更新总账户之前,另一个写操作更新了总账户,就会导致总账户和交易明细的不一致,因此事务机制提供了 ...
原文:http://blog.csdn.net/cpzhong/article/details/7191811      最近几天线上jboss服务器经常莫名地突然停止运行,导致半夜都被报警短信吵醒,元旦几天也基本就在收报警,然后重启系统。查看jboss控制台错误日志,发现只有下面一行: /opt/.../jboss/bin/run.sh: line 181: 26430 段错误                  "$JAVA" $JAVA_OPTS -Djava.endorsed.dirs="$JBOSS_ENDORSED_DIRS" -clas ...

HBase的get过程(一)

原文:http://punishzhou.iteye.com/blog/1258848   0.90.X的get和scan操作原理上是比较一致的,get操作都变为scan操作。不过在分析之前我们还是从get说起 话不多说首先看看get这个接口,hbase客户端对于get有以下几种: Java代码   public Get(byte [] row)   Java代码  

HBase的数据的update

hbase是以rowkey,column,timestamp这三个维度来区分的。 即如果两条记录其rowkey,column,timestamp一样的话,那么hbase就会认为其是相同的数据。   Java代码            row     column   value   time   put      r1    ...
参考:http://www.rigongyizu.com/hbase-row-lock-and-multiversion-concurrency-control/   MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是,把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能。 HBase正是通过行锁+MVCC保证了高效的并发读写。 为什么需要并发控制 HBase系统本身只能保证单行的ACID特性 ...

facebook的HBase经验

见附件
f = open("/home/admin/tlog-proxy/logs/gather/172.20.186.157/home/admin/logs/eagleeye/eagleeye.log.bak") ls = f.readlines() list = [] repeat = [] for l in ls: l = l.replace("\n","") if l =="": continue if l in list: if n ...

API设计总结

最近在设计一个服务的API,下面是对API如何易用的一些思考。   比如我们的模块中需要依赖StageStatSupport;   @Inject private StageStatSupport stageStatSupport;     首先要避免参数过多的情况,比如这样使用肯定是不行的。 stageStatSupport.log(bizGroup, collectingPoint,"gather",getActionName(),"error",new String[]{"tag1","t ...
分布式搜索方案选型之五(终篇):Elasticsearch     http://exploringelasticsearch.com/github_interview.html   ElasticSearch: Faceted Search for Hierarchical data http://jaibeermalik.wordpress.com/2013/03/19/elasticsearch-faceted-search-for-hierarchical-data/   http://chrissimpson.co.uk/elasticsearch-aggregati ...
Google I/O大会上,Google宣布使用其google Cloud Dataflow替代原来的MapReduce,很多人误解为MR没有用了,以为MR被新的技术替代,其实并不是这回事。目前大数据处理领域主要有MR代表的批处理和Storm代表的流式实时处理。批处理的缺点是实时性比较差,在Storm作者提出的大数据Lambda架构中,曾经提出近期数据归为Storm来处理,如果超过一定期限由MR处理,这需要在两个不同代码风格之间转换。Google引入了Pipeline来统一了批处理和实时处理,由统一的代码实现两种处理,使用Cloud Dataflow 云平台支持。 Dataflow是 ...
Nmon是一款面向系统管理员的调优和基准测量工具,可以用来显示关于下列方面的性能数据: 处理器 内存 网络 磁盘 文件系统 网络文件系统(NFS) 消耗资源最多的进程 资源 Power微分区 我非常喜欢这款工具的一个地方是,它完全具有交互性,可以帮助Linux用户或系统管理员最大限度地利用这个必要的命令。

mysql slow log控制

参考官方文档:http://dev.mysql.com/doc/refman/5.6/en/slow-query-log.html       MySQL能够记录执行时间超过参数 long_query_time 设置值的SQL语句,默认是不记录的。 获得初始锁定的时间不算作执行时间。mysqld在SQL执行完和所有的锁都被释放后才写入日志。且记录顺序可能不同于执行顺序。 5.1.6以前mysql使用--log-slow-queries[=file_name]来开启记录慢的SQL。
参考:http://my.oschina.net/le284/blog/262251?p=1   在典型的生产者消费者模型中一般通过队列来保存待执行的任务,可以在异步任务中设置一个超时时间,如果在队列中的时间大于这个值,将抛弃此任务,保护整体服务的正常运行,这个也就是服务器负载保护策略,防止服务端压力过大宕机,丢弃部分任务,以保护大多数任务的有效执行。
安装 pip install sentry     启动 sentry --config=/home/admin/jyp/sentry.conf.py createsuperuser nohup sentry --config=/home/admin/jyp/sentry.conf.py start &   配置 ALLOWED_HOSTS=['*'] DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'sentry', ...
尽量将一些我认为比较精华的东西整理在这里,有些资料还没有来得及读,或者还需要再细读的。有了这个归档索引一下,备忘。 网络通讯 Netty5.0架构剖析和源码解读.pdf 林昊的微信公众账号,有很多性能优化的文章值的学习: 如何编写高效的Java通信客户端 这篇文章后半部分讲到一个典型的网络延迟问题(关闭Nagle算法就可以了): Nagle和DelayedAcknowledgment的延迟问题 
Global site tag (gtag.js) - Google Analytics