Решение для хранения данных для сервера сборки

Я разрабатываю тестовый сервер сборки, и я задумался о том, как хранить все данные, которые он производит. Например, я хотел бы хранить

  • Результаты модульных тестов: какие тесты были запущены, сколько времени занял каждый тест, результаты, трассировка стека, количество утверждений.
  • Информация о покрытии кода с детализацией на уровне строк
  • Различные показатели LoC — для каждого файла, для каждого типа файла
  • Код дублирует информацию

Кроме того, это типы запросов, которые я хотел бы запустить:

  • Как изменилось время выполнения тестов с течением времени?
  • Как общий процент покрытия кода изменился с течением времени? А как насчет этого конкретного метода? Как изменилось количество непокрытых линий с течением времени?
  • Какова была динамика LoC для файлов *.cs? Как менялось общее количество LoC?

Запихнуть все это в СУБД не кажется особенно хорошей идеей. Какая технология хранения подходит мне лучше всего?


person Anton Gogolev    schedule 24.05.2013    source источник


Ответы (1)


Если вы не хотите использовать СУБД, вы определенно можете использовать MongoDB для своих требований.

Это позволяет группировать похожие документы в коллекции, и каждый документ в коллекции не обязательно должен иметь одну и ту же схему. В одном документе может быть 5 полей, в другом — 10.

Его можно довольно легко масштабировать для обеспечения избыточности.

MongoDB также предоставляет то, что они называют «платформой агрегации», которая позволяет вам генерировать статистику/агрегацию ваших данных. Это быстрее, чем их решение map/reduce, которое, конечно, может быть немного медленным.

Из всех существующих сейчас баз данных документов я бы сказал, что она явно самая зрелая и определенно имеет самый богатый язык запросов.

person ryan1234    schedule 03.06.2013