JUnit Testing Cassandra со встроенным сервером

Как лучше всего писать модульные тесты для кода, сохраняющего данные в хранилище данных nosql, в нашем случае cassandra?

=> Мы используем подход встроенного сервера с помощью утилиты из git hub ( https://github.com/hector-client/hector/blob/master/test/src/main/java/me/prettyprint/ hector / testutils / EmbeddedServerHelper.java ). Однако я наблюдал некоторые проблемы с этим: 1) Он сохраняет данные в нескольких тестовых примерах, что затрудняет нам возможность убедиться, что данные различны в тестовых примерах тестового класса. Я пробовал вызывать cleanUp @ после каждого тестового примера, но, похоже, это не очищает данные. 2) У нас заканчивается память, поскольку мы добавляем дополнительные тесты, и это может быть из-за 1, но я еще не уверен в этом. В настоящее время у меня есть размер кучи 1 ГБ для запуска моей сборки.

=> Другой подход, о котором я думал, - это имитировать хранилище кассандры. Но это может привести к утечке некоторых проблем в схеме cassandra, поскольку мы часто обнаруживаем, что вышеупомянутый подход выявляет проблемы с тем, как данные хранятся в cassandra.

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


Просто обновление. Мне удалось решить 2) проблему нехватки пространства кучи java при запуске сборок, изменив параметр in_memory_compaction_limit_in_mb на 32 в cassandra.yaml, используемом тестовым встроенным сервером. Ссылка ниже помогла мне http://www.datastax.com/docs/0.7/configuration/storage_configuration#in-memory-compaction-limit-in-mb . Было 64, и он начал постоянно выходить из строя во время уплотнения.

18
задан Marc Carré 19 December 2012 в 03:57
поделиться