从Oracle迁移到VoltDB

时间:2014-10-10 02:00:33

标签: voltdb

我们是否正在从Oracle迁移到VoltDB,我们是否应该将所有业务逻辑(迁移的存储过程)放在数据库中?这是最佳性能的最佳实践吗?

1 个答案:

答案 0 :(得分:1)

我在VoltDB工作。你的问题没有一个正确的答案,这将取决于具体的架构和程序,但我可以解释一下VoltDB中的存储过程以及与Oracle的差异。

首先,VoltDB不是像Oracle这样的通用数据库,而是专门为OLTP和“快速数据”工作负载提供高性能和可扩展性。通常,这些工作负载涉及小型记录集上的离散事务,但其速率为每秒数千到数百万。用例包括提供快速移动数据集的实时分析,转换和丰富流数据,提供低延迟响应,通常涉及数据驱动的决策,适用于大规模交互式应用。

VoltDB中的过程通常侧重于将原子更改应用于小型记录集,并且它们通常用于实时进行事件驱动的更改,而不是批量运行批处理过程,这在Oracle中经常看到。 VoltDB自动为架构中的每个表生成CRUD样式的过程,现在包括UPSERT。您可以在DDL中声明单SQL语句过程。包含多个SQL语句和控制流逻辑的过程被编写为在数据库上运行的简单java类。 VoltDB还支持使用本机语言客户端库或JDBC或ODBC驱动程序或通过嵌入式HTTP-JSON接口直接从客户端发送的Ad-Hoc SQL语句(ANSI SQL-92兼容)。

如果Oracle中的存储过程用于OLTP操作,那么它们可能会直接转换为VoltDB过程。如果他们正在批量执行批量操作,那么通常可以将这些过程重新设计为事件驱动的实时过程,这些过程将逐步产生相同的结果。如果它们仍然必须作为长期运行的批处理完成,通常它们将被分解为由客户端进程驱动的单独的更离散的过程。