摘要: PostgreSQL 是世界上可以获得的最先进的开放源码的数据库系统, 它提供了多版本并行控制,支持几乎所有 SQL 构件(包括子查询,事务和用户定 义类型和函数), 并且可以获得非常广阔范围的(开发)语言绑定 (包括 C,C++,Java,perl,tcl,和 python)。具体的优点特性如下: 阅读全文
posted @ 2011-12-01 19:35 柯枫 阅读(12775) 评论(0) 推荐(0) 编辑
摘要: 在数据库操作中,为了有效保证并发读取数据的正确性,提出的事务隔离级别。 阅读全文
posted @ 2011-11-26 17:51 柯枫 阅读(2340) 评论(0) 推荐(0) 编辑
摘要: 一个数据库可能拥有多个访问客户端,这些客户端都可以并发方式访问数据库。数据库中的相同数据可能同时被多个事务访问,如果没有采取必要的隔离措施,就会导致各种并发问题,破坏数据的完整性。这些问题可以归结为5类,包括3类数据读问题(脏读、幻象读和不可重复读)以及2类数据更新问题(第一类丢失更新和第二类丢失更新)。下面,我们分别通过实例讲解引发问题的场景。 阅读全文
posted @ 2011-11-24 16:46 柯枫 阅读(9566) 评论(4) 推荐(7) 编辑
摘要: 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。 阅读全文
posted @ 2011-11-24 14:31 柯枫 阅读(2717) 评论(2) 推荐(1) 编辑
摘要: 两个人修改了不同文件?不会有冲突,他们不相关。两个人同时修改了同一个文件的不同位置?不会有冲突,SVN很聪明。两个人同时修改了同一个文件的相同位置?Bing!冲突来了。 阅读全文
posted @ 2011-11-24 12:18 柯枫 阅读(24057) 评论(1) 推荐(0) 编辑
摘要: 做c方面的开发,免不了要是用gdb来调试程序,最近也是在公司做的时候时常需要使用gdb来分析程序,使用最多的当属使用core来查看程序运行的crash原因。在linux中应用程序运行奔溃之后一般会产生core文件,core文件是core dump来产生,core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中。 阅读全文
posted @ 2011-11-24 10:39 柯枫 阅读(4310) 评论(0) 推荐(0) 编辑
摘要: svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。本文内容为linux下svn的使用,因为linux下大部分的操作都是通过命令行来进行,所以必须得掌握linux下svn的常用命令。 阅读全文
posted @ 2011-11-24 10:10 柯枫 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 有时会遇到一种很特殊的调试需求,对当前正在运行的其它进程进行调试。这种情况有可能发生在那些无法直接在调试器中运行的进程身上,例如有的进程只能在系统启动时运行。另外如果需要对进程产生的子进程进行调试的话,也只能采用这种方式。GDB可以对正在执行的程序进行调度,它允许开发人员中断程序 并查看其状态,之后还能让这个程序正常地继续执行。 阅读全文
posted @ 2011-11-23 16:27 柯枫 阅读(2467) 评论(0) 推荐(0) 编辑
摘要: 初次接触gdb下多线程的调试,往往会忽视gdb中活动线程的概念。一般来讲,在使用gdb调试的时候,只有一个线程为活动线程,如果希望得到其他的线程的输出结果,必须使用thread命令切换至指定的线程,才能对该线程进行调试或观察输出结果。 阅读全文
posted @ 2011-11-23 14:35 柯枫 阅读(338) 评论(0) 推荐(0) 编辑