`
chenwei6111
  • 浏览: 7052 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表
从以下几个维度,对redis、memcache、mongoDB 做了对比,欢迎拍砖 1、性能 都比较高,性能对我们来说应该都不是瓶颈 总体来讲,TPS方面redis和memcache差不多,要大于mongodb 2、操作的便利性       memcache数据结构单一       red ...

cache的改造过程

一个cache的改造过程 在分布式的程序中,cache的合理使用可以带来性能上的极大提升,尤其是在资源创建需要昂贵的开销时。cache的设计最重要的是要保证线程安全和高效性。下面以代码为例,介绍了三种cache的写法。 1. 粗放的加锁 public class Cache1 { private HashMap<String, ServerGroup> route2SG = null;  public Cache1() { route2SG = new HashMap<String, ServerGroup>(); }  public synchronized Ser ...
  好多人对吞吐量的概念不是很清楚, 有人认为TPS就是吞吐量,也有人把单位时间内系统处理数据量(kilobytes per second)作为吞吐量,那么那个是正确的答案呢? TPS(transaction per second), 顾名思义,是单位时间内处理事物的数量。 ...
Google的BigTable架构在分布式结构化存储方面大名鼎鼎,其中的MergeDump模型在读写之间找到了一个较好的平衡点,很好的解决了web scale数据的读写问题。 MergeDump的理论基础是LSM-Tree (Log-Structured Merge-Tree), 原文见:LSM Tree 下面先说一下LSM-Tree的基本思想,再记录下读文章的几点感受。 LSM思想非常朴素,就是将对数据的更改hold在内存中,达到指定的threadhold后将该批更改批量写入到磁盘,在批量写入的过程中跟已经存在的数据做rolling merge。 拿update举个例子: 比如有10 ...

NIO

NIO非堵塞应用通常适用用在I/O读写等方面,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会 ...
软件腐化的机种表现: l 僵化性(Rigidity):一个改动引起一连串的改动,必须改动的模块越多,设计就越僵化。 l 脆弱性(Fragility):改一个地方,N个地方都会出问题。 l 牢固性(Immobility):设计中包含了一些可供其他系统有用的部分,但又无法剥离出去。 l 粘滞性(Viscosity):要修改某些功能,无法沿用之前的设计,而不得不破坏之前的设计。 l 不必要的复杂性(Needless Complexity):过度设计。 l 不必要的重复(Needless Repetition):Copy代码。 l 晦涩性(Opacity):难理解。
为什么要使用NIO 企业级应用效率是关键。而CPU已不再是的束缚,效率主要消耗在IO上。java.io类则喜欢一铲子一铲子地加工数据。而操作系统喜欢整卡车地运来数据,有了NIO,就可以轻松地把一卡车数据备份到您能直接使用的地方(ByteBuffer对象)。 IO的常用概念 IO操作:向操作系统发出请求,把数据移出和移入缓冲区。 用户空间:是常规进程所在区域。JVM就是常规进程,驻守于用户空间。用户空间是非特权区域:比如,在该区域执行的代码就不能直接访问硬件设备。硬件通常不能直接访问用户空间。 内核空间:它能与设备控制器通讯,控制着用户区域进程的运行状态等等。最重要的是,所有I/O都直接或间接通 ...
Global site tag (gtag.js) - Google Analytics