Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java对象的写后缓存解决方案,使用oracle存储过程进行持久化_Java_Stored Procedures_Persistence - Fatal编程技术网

Java对象的写后缓存解决方案,使用oracle存储过程进行持久化

Java对象的写后缓存解决方案,使用oracle存储过程进行持久化,java,stored-procedures,persistence,Java,Stored Procedures,Persistence,Im目前正在开发一个高吞吐量、低延迟的事务引擎。出于审计原因,我需要在本地维护对象状态,并将其持久化到DB(Oracle) 我们的DBA坚持不允许使用原始SQL,因此我们使用存储过程向数据库读/写数据 我环顾四周,但找不到任何明显的解决办法 是否有任何东西可以作为写后缓存(用于性能),允许我指定(基于每个类)用于持久化/检索对象的代码(以便我可以插入存储过程处理代码)?在这种情况下,我过去所做的是将数据写入另一个线程或进程中的数据库,并将其转发到数据库。Java编年史支持低延迟持久化IPC。您可

Im目前正在开发一个高吞吐量、低延迟的事务引擎。出于审计原因,我需要在本地维护对象状态,并将其持久化到DB(Oracle)

我们的DBA坚持不允许使用原始SQL,因此我们使用存储过程向数据库读/写数据

我环顾四周,但找不到任何明显的解决办法


是否有任何东西可以作为写后缓存(用于性能),允许我指定(基于每个类)用于持久化/检索对象的代码(以便我可以插入存储过程处理代码)?

在这种情况下,我过去所做的是将数据写入另一个线程或进程中的数据库,并将其转发到数据库。Java编年史支持低延迟持久化IPC。您可以以每秒超过一百万次的速度保留对象,延迟时间为亚微秒。读取过程可以在100纳秒内拾取这些对象/事件。由于您必须自己完成JDBC部分,因此您可以选择任何方式来完成这项工作。

很有趣。编年史是否具有任何类型的通知机制,以允许后台线程收到需要存储在DB中的新本地持久化/更新对象的通知?@PaulJWilliams您可以使用LockSupport park()和unpark()添加一个,但通常您会轮询读卡器上的更改,批量处理事务中的更改,并在没有其他更改时提交,休眠10毫秒到1秒钟,然后重试。这允许批量大小随着工作负载的增加而增加。