Apache Ignite: мои данные читаются из памяти или с диска? - PullRequest
0 голосов
/ 19 июня 2019

Мне нужно понять, будет ли следующая конфигурация 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 или его перезапуска.

  • Верно ли мое понимание, что в этом случае мои данные поступают из памяти?
  • Что если я использую драйвер JDBC? Это все то же самое? В чем разница между кешем и драйвером jdbc?

1 Ответ

1 голос
/ 19 июня 2019

Он будет обслуживаться из памяти, если он находится в памяти, в противном случае он будет извлечен с диска (Это различие важно, если у вас больше данных, чем у вас памяти, или когда кластер запускается.)

Различные API-интерфейсы имеют доступ к одним и тем же данным. Используете ли вы JCache (получить, положить), SqlFieldsQuery или JDBC / ODBC, все равно.

...