Opensplice DDS 持久数据可以有多大?
Posted
技术标签:
【中文标题】Opensplice DDS 持久数据可以有多大?【英文标题】:How big can the Opensplice DDS persistent datas be? 【发布时间】:2013-06-28 14:33:15 【问题描述】:我想知道我是否可以将大量数据放入我的软件中,或者我是否必须使用外部解决方案。
使用 OpenSplice DDS 或 RTI 的 DDS 的持久性可以放置多少数据?
【问题讨论】:
【参考方案1】:这取决于您对“放置持久数据”的定义。 在 OpenSplice-DDS 中,有多种方法可以通过将非易失性数据“持久化”在某些非易失性介质上来“保存”非易失性数据。第一种方法是将数据发布为 PERSISTENT (durability-QoS) 并结合一个或多个持久性服务(OpenSplice 核心 [LGPL-v3] 中可用的“标准”,即不是可选/商业功能)。启动系统时,持久性服务(通常是启动的第一个节点)会将持久化数据注入“全局数据空间”,并且每个应用程序都可以使用它(可以阻止此信息被注入通过 wait_for_historical_data API)。持久数据大小的典型限制是发布后“保存”它的可用内存大小(或放入 DDS_terminology:为“持久性服务”指定的资源限制,以 max_samples、max_samples_per_instance 和 max_instances 表示每个持久主题)。请注意,您可以将 PERSISTENT 数据作为 TRANSIENT 数据的子集,如果您配置了多个持久性服务,它们将在启动时相互“对齐”(和/或添加一个也配置了持久性服务的新节点)从而在应用程序启动和/或加入已经运行的系统时立即使用此 PERSISTENT 数据。
第二种方法是利用一个插件,在 DDS 和 DBMS(兼容 ODBC 3.0)系统之间透明地“复制”(双向)数据。 OpenSplice DDS 有一个名为“DBMSConnect”的可插拔服务,可以配置为双向转发数据,基于事件或基于状态(下采样)以及潜在的内容过滤。
第三种方式(对于 OpenSplice)是使用名为“OpenSplice Gateway”的通用网关产品,该产品利用 Apache Camel,因此所有可用于该基础架构的“连接器”。在这里,您可以定义“路由”和端点,允许您的 DDS 数据与 80 多种非 DDS 技术进行路由,包括关系数据库系统,然后允许“持久”您的 DDS 信息。
希望这会有所帮助,
-汉斯
【讨论】:
那是……一个很好的答案。即使我有一些困难要完全理解它的后果。谢谢以上是关于Opensplice DDS 持久数据可以有多大?的主要内容,如果未能解决你的问题,请参考以下文章
DDS - 推荐哪一个 - OpenSplice 或 CoreDX? [关闭]
OpenSplice DDS 开源实现支持——数据库事务处理?
构建 dds-tutorial-cpp-ex 时未找到 OpenSpliceConfig.cmake 或 opensplice-config.cmake