Используйте политику повторов Cassandra, чтобы уменьшить размер выборки - PullRequest
0 голосов
/ 15 мая 2019

Из-за аномалии и ошибки в логике приложения данные записывались и удалялись несколько раз в таблицу, что приводило к очень высокому соотношению захоронения / живого звука.Это вызывало тайм-ауты чтения на стороне сервера с использованием размера выборки по умолчанию.Мой вопрос заключается в том, допускает ли изменение утверждения утверждение в обратных вызовах политики повтора, и будет ли оно иметь какой-либо эффект?Что-то вроде

public class MyRetryPolicy implements RetryPolicy {
    private static final int MIN_FETCH_SIZE = 1000;

    @Override
    public RetryDecision onReadTimeout(Statement statement, ConsistencyLevel cl, int requiredResponses, int receivedResponses, boolean dataRetrieved, int nbRetry) {
        if (receivedResponses < requiredResponses && statement.getFetchSize() > MIN_FETCH_SIZE) {
            statement.setFetchSize(Math.max(MIN_FETCH_SIZE, statement.getFetchSize() / 2));
            return RetryDecision.retry(cl);
        } else {
            return RetryDecision.rethrow();
        }
    }

    ...

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

...