Цель работы состоит в реализации системы оптимального хранения данных за счет использования подхода дедупликации данных и проведении тестирования для измерения производительности созданного прототипа.
Данный проект выполнялся в рамках курсовой работы по дисциплине "Системы анализа больших данных". Основные работы над данной частью проекта производились с сентября по ноябрь 2024 года. Целью всего проекта является сбор и анализ метаданных статей с платформы
Основная страница с документацией
- C++ 20
- PostgreSQL 15 сайт
- libpqxx 7.9 GitHub
- libglog GitHub
- gtest/gmock 1.15.2 GitHub
- FFF(Fake Function Framework) GitHub
- libssl сайт
- Асинхронный пул потоков из библиотеки Leopard GitHub
- Qt6 Widgets сайт
- Docker 27.1 сайт
- Doxygen сайт
- Реализован механизм runtime преобразования PostgreSQL типов по значению OID(см. models.h);
- Применён Model/View подход для визуализации данных;
- Реализован набор workflow для сборки проекта, тестирования, временных измерений и равёртывания документации;
- Были изучены особенности написания документации на базе Doxygen.
- Применены подходы блочной вставки и потоковых запросов для ускорения вставки файла в БД.
- Создан docker образ и workflow для сборки данного образа и отправки его в HUB.
- Разработан потокобезпоасный шаблонный класс массива таймеров для сбора временных метрик.
- Произведено smoke тестирование
- полученной реализации таймера и сервисов работы с файлами;
- решить проблему с подключением к бд
- создать простую схему для дедупликации
- Доработать данную схему базы данных
- Добавить методы для сбора метрик(процент сжатия, распределение по числу блоков)
- Убрать ненужные/избыточные колонки, нормализовать/уточнить взаимосвязи между таблицами
- добавить методы блочной передачи, чтобы передавать не сразу весь файл, а по фрагментам
- Реализовать процедуры удаления файлов из бд
- реализовать создание схемы выше в разных вариантах(размер сегмента, функция хэширования) при помощи динамических
sql запросов
- Реализовать процедуру создания базы данных
- Реализовать процедуру заполнения схем новой бд
- добавить возможность выбирать функцию хэширования
- добавить источник данных
- Источник данных директория(любая)
- Подобрать данные для проверки работы сервиса
- реализовать сервис для сбора данных из директорий/архивов и их восстановления, внутри будет использован dbService
- Доработать набор запросов для взаимодействия с файлами/директориями
- Доделать реализации для стратегий работы с бд
- Использовать более безопасный вариант подлючения к бд
- Подключения и все связанные с ним ресурсы должны быть освобождены после заврешеняи рабоыт программы
- Незавершённые транзакции должны быть отменены/завершены
- определить стек технологий
- Доработать стек ниже
- Ужать логи для запросов, стандартизировать их содержимое
- Ввести единое соответствие между кодами возврата и типом ошибки
- Убрать лишние(\n,\r\n ...) символы из записей логгера
- Создать конфигурацию для логов
- Убрать тексты запросов из записей
- Произвести миграцию со старой версии libpqxx на новую
- Тестирование
- Собрать и установить gtest/gmock
- создать конфигурации для тестирования
- CI/CD
- Сохранять логи в качестве артефактов
- Исправить основные issue в репозитории
- ввести набор критериев и метрик, зависимости между которыми будут подлежать исследованию
- Создать релиз для приложения