DAX не получает попадания в кеш при использовании с DynamoDBMapper - PullRequest
0 голосов
/ 23 апреля 2020

Я использую клиент DAX вместе с DyanamoDBMapper. Я использую следующие зависимости.

        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-dynamodb</artifactId>
            <version>1.11.751</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>amazon-dax-client</artifactId>
            <version>1.0.205917.0</version>
        </dependency>

И следующий код показывает, как инициализируется Mapper

    AmazonDaxClientBuilder builder = AmazonDaxClientBuilder.standard();
    builder.withRegion("<region>");
    builder.withEndpointConfiguration("<DAX ednpoint>");
    client = builder.build();
    DynamoDBMapper dynamoDBMapper = new DynamoDBMapper(client);

При использовании этой настройки в метриках DAX я вижу 0 обращений к кэшу и 0 пропаданий кеша для запросов. Но когда я удаляю маппер и использую таблицу для запроса, я вижу попадания в кеш.

Я не использую согласованные чтения, как описано здесь. AWS Кластер DAX имеет нулевое число попаданий в кэш и отсутствие кэша

Я что-то не так делаю здесь или здесь отсутствует какой-либо шаг настройки?

Также хотелось бы знать, есть ли какой-нибудь способ получить данные о попадании в кэш DAX или детали пропуска для каждого запроса, чтобы отладка могла быть немного проще.

1 Ответ

0 голосов
/ 26 апреля 2020

Причиной пропуска кеша было выражение DynamoDBQueryExpression, которое по умолчанию устанавливает для флага constantRead значение true.

Хотя DynamoDBMapperConfig по умолчанию выполняет СОБЫТИЯ с согласованным чтением, для DynamoDBQueryExpression установлено согласованное чтение. В связи с этим, если вы используете DynamoDBQueryExpression, вы должны явно установить для переменнойConstant значение false.

Когда запрашиваются согласованные чтения, запросы DAX перенаправляются непосредственно в DynamoDB, и поэтому мы не видели попаданий в кэш в метриках DAX.

...