Java对象的写后缓存解决方案,使用oracle存储过程进行持久化
Im目前正在开发一个高吞吐量、低延迟的事务引擎。出于审计原因,我需要在本地维护对象状态,并将其持久化到DB(Oracle) 我们的DBA坚持不允许使用原始SQL,因此我们使用存储过程向数据库读/写数据 我环顾四周,但找不到任何明显的解决办法Java对象的写后缓存解决方案,使用oracle存储过程进行持久化,java,stored-procedures,persistence,Java,Stored Procedures,Persistence,Im目前正在开发一个高吞吐量、低延迟的事务引擎。出于审计原因,我需要在本地维护对象状态,并将其持久化到DB(Oracle) 我们的DBA坚持不允许使用原始SQL,因此我们使用存储过程向数据库读/写数据 我环顾四周,但找不到任何明显的解决办法 是否有任何东西可以作为写后缓存(用于性能),允许我指定(基于每个类)用于持久化/检索对象的代码(以便我可以插入存储过程处理代码)?在这种情况下,我过去所做的是将数据写入另一个线程或进程中的数据库,并将其转发到数据库。Java编年史支持低延迟持久化IPC。您可
是否有任何东西可以作为写后缓存(用于性能),允许我指定(基于每个类)用于持久化/检索对象的代码(以便我可以插入存储过程处理代码)?在这种情况下,我过去所做的是将数据写入另一个线程或进程中的数据库,并将其转发到数据库。Java编年史支持低延迟持久化IPC。您可以以每秒超过一百万次的速度保留对象,延迟时间为亚微秒。读取过程可以在100纳秒内拾取这些对象/事件。由于您必须自己完成JDBC部分,因此您可以选择任何方式来完成这项工作。很有趣。编年史是否具有任何类型的通知机制,以允许后台线程收到需要存储在DB中的新本地持久化/更新对象的通知?@PaulJWilliams您可以使用LockSupport park()和unpark()添加一个,但通常您会轮询读卡器上的更改,批量处理事务中的更改,并在没有其他更改时提交,休眠10毫秒到1秒钟,然后重试。这允许批量大小随着工作负载的增加而增加。