Database 关于H2数据库中CreateCluster工具的问题

Database 关于H2数据库中CreateCluster工具的问题,database,cluster-computing,behavior,h2,Database,Cluster Computing,Behavior,H2,我对H2的createcluster工具的行为有几个问题 如果a创建一个指定源a和目标B的集群,H是否将B与a保持同步?换句话说,两者之间是否存在主从关系 让我们假设数据库A、B和C属于同一个集群。如果同时在A和B上执行两个不同的事务会发生什么。H2是否在集群中选择一个领导者,以确保集群中的所有数据库都有唯一的执行顺序 如果H2选举了一位领导人,如果这位领导人消失了怎么办?是否存在自动故障切换机制?新领导人是自动当选的吗?我还能吗 如果我用source a->target B,然后source

我对H2的createcluster工具的行为有几个问题

  • 如果a创建一个指定源a和目标B的集群,H是否将B与a保持同步?换句话说,两者之间是否存在主从关系

  • 让我们假设数据库A、B和C属于同一个集群。如果同时在A和B上执行两个不同的事务会发生什么。H2是否在集群中选择一个领导者,以确保集群中的所有数据库都有唯一的执行顺序

  • 如果H2选举了一位领导人,如果这位领导人消失了怎么办?是否存在自动故障切换机制?新领导人是自动当选的吗?我还能吗

  • 如果我用source a->target B,然后source B->target C,然后source C->target D创建一个集群,那么D会从C获取要执行的语句,C会从B获取要执行的语句,B会为a获取要执行的语句吗?或者B、C和D会从A(或当选领导人)那里得到执行声明吗?换句话说,我们是否有连锁或明星组织

  • 请参见H2网站上的

  • 集群节点之间没有主/从、引线和连接。相反,每个客户机都连接到两个集群节点,并在这两个节点上执行语句

  • 每个客户机以相同的顺序执行所有集群节点上的所有语句。每个客户机都有一个集群节点列表,每个集群节点也保留该列表。客户端验证列表是否相同

  • 没有领袖。故障转移机制是:如果客户端失去与某个群集节点的连接,它将从其列表中删除该群集节点,并通知每个群集节点从列表中删除该群集节点

  • 这将只是扩展列表,以便获得A、B、C、D。然后,每个客户机将在每个集群节点上执行所有更新语句


  • 好的,所以没有机制来控制两个客户端同时向所有集群节点发送各自的查询的情况(在这种情况下可能会产生不一致)。这必须在应用程序级别处理,对吗?JDBC驱动程序将始终以正确的顺序将语句发送到所有集群节点。因此,应用程序不必做任何事情,JDBC驱动程序就可以做到。