data backup service. Презентация участников

18
Data backup service Студент: Ильдус Кучкаров Руководитель: Евгений Баталов

Upload: cs-center

Post on 16-Apr-2017

107 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Data backup service. Презентация участников

Data backup service

Студент: Ильдус КучкаровРуководитель: Евгений Баталов

Page 2: Data backup service. Презентация участников

Идея проекта

Приложения-клиенты, работающие на пользовательских устройствах, отправляют данные на сервер для резервного копирования

Приложение-сервер принимает резервные копии от клиентов и сохраняет их

При восстановлении пользовательского устройства, приложение-клиент запрашивает у приложения-сервера данные пользователя, получает их и разворачивает на устройстве

2/18

Page 3: Data backup service. Презентация участников

О проекте

● Учебный проект

● На начало семестра реализованы:○ Библиотека для работы с деревом ФС

○ Библиотека для архивации и деархивации дерева ФС

○ Основы клиента и сервера

■ Отправка архива на сервер

■ Скачивание архива с сервера

■ Получение списка архивов

● Язык программирования: С++ (QT)

3/18

Page 4: Data backup service. Презентация участников

Задачи практики

● Печать дерева ФС из архива

● Консольное приложение для работы с архивами

● Memory mapped files

● Многопоточный сервер

● Авторизация на сервере

4/18

Page 5: Data backup service. Презентация участников

Проблема #0

Работа с бинарными данными Сложно найти ошибку⇒

5/18

Page 6: Data backup service. Презентация участников

Логирование

6/18

Page 7: Data backup service. Презентация участников

(Ручное) тестирование и отладка отдельных модулей

Тут и нужны:

● Печать дерева ФС из архива

● Консольное приложение для работы с архивами

7/18

Page 8: Data backup service. Презентация участников

Проблема #1

Архиватор собирает архив в памяти: не хватает ОЗУ ⇒

8/18

Page 9: Data backup service. Презентация участников

Проблема #1

Архиватор собирает архив в памяти: не хватает ОЗУ ⇒

9/18

Page 10: Data backup service. Презентация участников

Memory mapped files

Отображение файла в память — это способ работы с файлами в некоторых операционных системах, при котором всему файлу или некоторой непрерывной его части ставится в соответствие определённый участок адресов памяти процесса. При этом чтение данных из этих адресов фактически приводит к чтению данных из отображенного файла, а запись данных по этим адресам приводит к записи этих данных в файл.

10/18

Page 11: Data backup service. Презентация участников

Преимущества Memory mapped files

● Нет лишних копий данных в памяти процесса

● ОС управляет выделением физической памяти для содержимого файла

● Максимальный размер файла ограничен величиной адресного пространства процесса

11/18

Page 12: Data backup service. Презентация участников

Проблема #2

● До:

○ QEventLoop

○ Один поток

○ Один пользователь – одна сессия

12/18

Page 13: Data backup service. Презентация участников

Многопоточный сервер

● До:

○ QEventLoop

○ Один поток

○ Один пользователь – одна сессия

● Сейчас:

○ QEventLoop + QThread

○ UserDataHolder

○ QReadWriteMutex

13/18

Page 14: Data backup service. Презентация участников

Пользователи и их авторизация

База данных пользователей хранится на диске в файле и загружается в память при запуске.

Поддержка авторизованного соединения (сессии): QTcpSocket

Один пользователь – несколько сессий

14/18

Page 15: Data backup service. Презентация участников

Архитектура приложений

Серверная логика

Данные пользователей

Сессии пользователя

#2

Клиент #1

Клиент #2

Клиент #3

Сессии пользователя

#1

15/18

Page 16: Data backup service. Презентация участников

Архиватор и деархиватор: дальнейшая работа

● Поддержка инкрементального резервного копирования

● Сжатие

16/18

Page 17: Data backup service. Презентация участников

Сервер: дальнейшая работа

● Безопасность

● Использование БД для хранения метаинформации вместо использования файла (для масштабируемости)

● Дедупликация данных внутри архивов

17/18

Page 18: Data backup service. Презентация участников

Выводы

● Изучены основы работы с mmap files, threads & mutex, основы разработки архитектуры приложения

● https://github.com/eabatalov/spbau-data-backup

18/18