我一直在寻找高性能的文件存储解决方案,用于在Java EE环境中持久化SOAP消息。消息的高性能存储
我们目前在Oracle RMDBS上使用CLOB表,但它的扩展非常昂贵。尽管oracle在存储相关元数据方面效果很好,但对于消息内容来说效果不佳。使用CLOB插入表的性能比没有CLOB的表的性能差大约1000%(这是通过比较在CLOB禁用行存储时VARCHAR2(4000)插入到CLOB插入的性能来衡量的)
坚持文件系统上的消息是一种选择,但是我对平均文件系统每天如何执行存储数百万个文件有些疑问。考虑到我们必须将这些文件保留几个月,这听起来不对。
我知道有几个开源键值数据库(兔崽子,MongoDB的命名等等),可能是弥补了任务,但是我只是找不到时间来评估他们。我也想听听开源RMDBS的性能。
考虑到传输的消息量不断增加,优先考虑的是低延迟和高性能。我们不需要集群或事务性,系统故障时的(轻微)数据丢失是可以接受的。
要求:
- 必须能够维持至少100persisted消息/秒的速率时的消息大小是8kilobytes
- 必须能够存储至少1亿消息
- 必须支持的持续缺失按年龄排列的消息
- 必须支持持续同时删除正在进行中
- 必须支持通过标识检索消息
帮助表示赞赏
我会尝试couchDB,但我不知道这比其他数据库解决方案更适合您的使用。你会想要全部阅读。另外,如果您的IT/DBA不支持mongodb或couchdb,您可能需要使用它们。 – 2013-04-29 19:35:58
通过将lob存储转换为SECUREFILES,我们实际上设法使Oracle负载下降了很多。不过,我认为我仍然需要评估开源选项。当我完成后,我会发表一篇关于我的发现的文章。 – 2013-04-30 10:18:49