Подходит ли Cassandra для хранения журналов с точки зрения использования дискового пространства? - PullRequest
1 голос
/ 28 июня 2010

У меня проблема с хранением 50 Гб журналов каждый день в распределенной среде. Я посмотрел на Hadoop HDFS, но из-за проблем с инфраструктурой Windows, из-за отсутствия мультиязычного API файловой системы он мне не очень подходит. Cassandra, с другой стороны, очень легко развернуть на любой платформе. Единственная большая проблема, с которой я сталкиваюсь - это использование дискового пространства. Вот цифры:

  • Оригинальный размер журнала - 224 МБ
  • Файл данных Cassandra - 557Mb
  • Файл индекса Кассандры - 109 МБ

Таким образом, я получил почти вдвое больше издержек при хранении строк журнала из файла журнала.

Можно ли каким-то образом настроить Cassandra, чтобы он не занимал так много места на диске для очень простых сценариев?

1 Ответ

3 голосов
/ 29 июня 2010

Полагаю, вы имеете в виду одну строку (с четырьмя столбцами) внутри семейства столбцов?Служебные данные, связанные с каждым столбцом, - это long (временная метка, 64 бита) и byte [] (имя столбца, максимум 64 КБ).Так что использование диска 4х кажется немного странным.Вы делаете какие-либо удаления?Обязательно поймите , как выполняется удаление в распределенной, в конечном итоге согласованной системе .

Обязательно прочитайте также о " compactions ".(«После завершения сжатия старые файлы SSTable могут быть удалены»)

Также хотелось бы напомнить вам об ограничении Thrift относительно того, как осуществляется потоковая передача.

Публичный API Cassandra основан на Thrift, который не предлагает потоковых возможностей - любое записанное или извлеченное значение должно уместиться в памяти.Это присуще дизайну Thrift и поэтому вряд ли изменится.Поэтому для добавления поддержки больших объектов в Cassandra потребуется специальный API, который вручную разделяет большие объекты на части.Потенциальный подход описан в http://issues.apache.org/jira/browse/CASSANDRA-265. В качестве обходного пути вы можете вручную разбить файлы на куски любого размера, который вам удобен - по крайней мере, один человек использует 64 МБ - и сделать файл соответствующимстрока с кусками в качестве значений столбцов.(Со страницы Ограничения Кассандры 'в вики)

...