ACID即是指在数据库管理系统(DBMS)中,事务(transaction)所具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。
目前主要有两种方式实现ACID:第一种是Write ahead logging,也就是日志式的方式。第二种是Shadow paging(在事务中,被事务影响的页从数据库文件复制到工作空间中,如易失存储器,并在该工作空间中进行修改。当事务提交,所有被事务修改的页从工作空间写入数据库文件的未使用页中。)。
建表时的主键索引不一定是voltdb里的表分区字段(Partitioning column),表分区字段是根据业务,频率来确定的,确定的表分区字段需要在项目定义文件中指明。
分表字段的建立规则:
1、任意的int或string型字段都可以作为分表字段,类似索引,从上下文看是全局的。2、对于每一个表来说分表字段有且只能有一个,如果有两个或以上的字段需要作为分表字段,就用这些字段组合起来形成一个新字段来做。3、分表字段不能为null,可以为empty或0,分表字段的值不需要唯一。VoltDB里如果不在项目定义文件中特别指定一个表的表分区字段,则这个表默认被复制。
可以复制的表要满足的条件:Small, mostly read-only tables can be replicated