我需要了解以下Ignite配置是否将从内存或磁盘提供数据。
点燃配置:
<property name="dataStorageConfiguration">
<bean class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="defaultDataRegionConfiguration">
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="persistenceEnabled" value="true"/>
</bean>
</property>
</bean>
</property>
Java代码:
ClientConfiguration cfg = new ClientConfiguration().setAddresses("127.0.0.1:10800");
try (IgniteClient client = Ignition.startClient(cfg)) {
ClientCache<Long, SensorsWaiting> cache = client.cache("SQL_PUBLIC_FOO");
FieldsQueryCursor<List<?>> query = cache.query(new SqlFieldsQuery("select * from foo"));
}
问题的背景: 我期望大量查询,并且需要从内存中提供结果。同时,我需要将数据存储到磁盘,以防Ignite Server崩溃或需要重新启动。
答案 0 :(得分:1)
如果它在内存中,它将从内存中提供,否则它将从磁盘中拉出。 (如果您的数据量超过内存或群集启动时,此区别很重要。)
不同的API都访问相同的数据。无论您使用的是JCache(获取,放置),SqlFieldsQuery还是JDBC / ODBC,都是一样的。