2013-06-28 42 views
0

我在想我是否可以在我的软件中输入大量数据,或者我是否有义务使用外部解决方案。Opensplice DDS持久数据有多大?

使用OpenSplice DDS或RTI的DDS的持久性可以提供多少数据?

回答

4

这取决于您对'放入持久性数据'的定义。 在OpenSplice-DDS中,有多种方法通过在非易失性介质上“保存”非易失性数据来“保存”非易失性数据。第一种方法是将数据公布为PERSISTENT(耐用性-QoS)并结合具有一个或多个耐用性服务(OpenSplice核心[LGPL-v3]中的'标准',即非可选/商业功能)。启动系统时,耐久性服务(通常是第一个启动的节点)会将持久数据注入到“全局数据空间”中,并将其用于每个应用程序(这可以阻止注入此信息通过wait_for_historical_data API)。持久数据大小的一个典型限制是发布后可用内存的大小(或放入DDS_terminology中:为'durability-service'指定的资源限制,用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信息。

希望这有助于一些,

-Hans

+0

那是......一个很好的答案。即使我有一些困难要充分理解其后果。谢谢 – Xaltar