04 2012 档案
摘要:在vim中配置了Project,但是在文件切换的时候总是会报错E303,导致每次文件切换都会提示一次,明显影响开发效率。参考了vim中文网上的一篇文章,按照文章的做法操作了一下。首先:help E303Unable to open swap file for "{filename}", recovery impossibleVim was not able to create a swap file. You can still edit the file, but ifVim unexpected exits the changes will be lost. And V
阅读全文
摘要:在编译一个项目的时候,发现有这样的warning信息:dereferencing type-punned pointer will break strict-aliasing rulesgoogle了一下,发现这是因为GCC3中引入了strict-aliasing机制导致的gcc 3 manual 对于-fstrict-aliasing参数的说明是:Allows the compiler to assume the strictest aliasing rules applicable to the language being compiled. For C (and C++), this
阅读全文
摘要:使用STL的几个容器,经常会遇到遍历所有元素,然后删除满足某些条件的元素。直接删除是会有问题的,比如:for (vector<T>::iterator it = lst.begin(); it != lst.end(); ++it){ if(condition) { lst.erase(it); }}因为对list而言,一旦一个元素被删除了,指向该节点的iterator可能会失效,再执行++it可能就会有问题。查了一下stl的源码,list的源码在:stl_list.hiterator erase(iterator __position);具体的实现在:list...
阅读全文
摘要:ACID,数据库领域的特性,但是某些特性需要牺牲系统的响应时间。Atomic:原子性,在一个事务里的操作全部成功或者全部回滚;Consistent:一致性,一个操作不会导致db存在不一致的状态;Isolated:隔离性,事务之间不会互相影响;Duration:持续性,即使服务重启,已经完成的事务也会保持不变;BASEBasicAvailability:基本可用性Soft-state:弱状态,这个网址有:http://www.tekelec.com/tekelec-blog/index.php/2009/07/faq-what-does-soft-state-meanEventual consi
阅读全文
摘要:从客户端有数据产生到数据被保存到持久存储系统上需要经历的步骤:1. 数据在客户端的内存里2. 客户端把数据发送到服务端内存里;3. 服务端调用write写文件,写成功;4. 文件系统把内容flush到磁盘控制器;5. 磁盘控制器把内容保存到物理磁盘上;上述的5个步骤中,1、2的时候无论客户端还是服务端死掉数据都是不会损坏的。如果在步骤3之后应用死掉而机器还在的话,不会有太大的问题;如果这个时候机器死掉的话会丢失这个数据。其中,磁盘控制器把数据刷到物理介质上的时间点是不确定的,如果不是磁盘有备用电源就不要开写缓存(可以用hdparm等命令看到并管理,但是没有试成功),仅开读缓存即可。文件系统把数
阅读全文
摘要:亚马逊 dynamo的解决的问题:可用性、一致性、成本效益和性能。主要完成对业务状态的管理。途径是去中心化,即去掉一个中心节点导致的单点故障或者影响服务质量的情况。主要确保数据永远可写、高可用性两点。dynamo的特性:数据划分一致性哈希对象版本去中心化技术分布式故障监测(gossip)对于ACID,dynamo只提供高A,弱C,不提供I的特性。SLA(服务水平协议):在并发达到500次/秒的时候,99.9以上的请求在300ms之内。设计原则:永远可写:为了确保系统的可用性,在数据不一致的时候牺牲一定的一致性,保证数据永远可写。采用对象版本的方式来达到最终一致性;协调冲突:最后一次写入获胜;增
阅读全文
浙公网安备 33010602011771号