Кассандра читает через несколько запросов на чтение - PullRequest
1 голос
/ 03 апреля 2012

Использует ли Cassandra параллельные потоки для чтения sstables семейства столбцов, чтобы обслуживать запрос на чтение для ключа строки или отдельного рабочего потока, выполняет поиск нескольких sstables?

Каковы будут издержкиодного над другим [используя параллельные потоки и один поток]?

1 Ответ

1 голос
/ 01 июня 2013

Cassandra реализует поэтапную архитектуру, управляемую событиями (SEDA), см. SEDA

В типичном приложении одна единица работы часто выполняется в пределах одного потока.Например, операция записи начнется и закончится в том же потоке.Кассандра, однако, отличается: ее модель параллелизма основана на SEDA, поэтому одна операция может начинаться с одного потока, который затем передает работу другому потоку, который может передавать ее другим потокам.Но это не до текущего потока, чтобы передать работу другому потоку.Вместо этого работа подразделяется на так называемые stage , и пул потоков (на самом деле, java.util.concurrent.ExecutorService), связанный со стадией, определяет выполнение.Этап является основной единицей работы, и одна операция может внутренне переходить из одного этапа в другой.Поскольку каждый этап может быть обработан различным пулом потоков, Cassandra испытывает значительное улучшение производительности.Чтение в cassandra представляется как этап, так что на этапе чтения определенно задействованы несколько потоков, вам придется глубже изучить исходный код, чтобы понять, используются ли для чтения несколько потоков на этапе чтения или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...