复杂的控制依赖于内存还是数据库?

我在研究一个产品时形成了两种方案:
方案一:xml配置脚本文件拆分成数据库库表,控制依赖于存在于库表的节点的状态信息并以及存放在库表中逻辑关系。
方案二:xml文件映射到java数据结构中,控制依赖于数据结构的状态以及数据结构中的逻辑关系,数据库作为当前运行数据的备份(用来恢复中断的运行)以及存放运行历史。
数据量分析:
要求支持上万个节点的控制,逻辑比较简单,并发量比较大,对性能、稳定性要求很高。
分析:
方案一:控制的逻辑依赖于数据库。问题在于数据库和程序是两个部件,需要将xml脚本拆分成不同的库表,用以表示其复杂的控制逻辑;控制的过程中程序需要不断轮询数据库中存放的状态信息。
方案二:控制的逻辑依赖于内存中的数据结构,以内存为主。需要将xml脚本映射成内存数据结构,逻辑控制根据该数据结构保存每个节点的状态进行控制。外部的对其控制根据这个数据结构的状态,为了做断点恢复,需要将内存的数据保存一份冗余到数据库中。库表结构会比较简单,记录的是运行的状态信息(xml不需要拆分成难以表达的库表结构),所有的状态变化需要经过该数据结构,节点状态的变化触发的事件可以主动通知,而不需要轮询,效率(放在内存中)以及控制的方便应该更好一些?
问题:
请问大家是如何看这个问题?选择一还是二或者其他?

从性能并发量考虑,当然使用主要依赖内存方案,这是最快的;可以辅助以数据库方案,比如定时持久保存,都可以通过定时分另外一个线程机制实现,或者可以通过另外一套系统来执行性能较差的数据库持久,两者之间使用JMS通讯。