Проектирование распределенной децентрализованной БД
Мы разрабатываем p2p проект по хранению и обмену файлами в сети. Ядро написано на Python 2 (библиотека Twisted). Есть совсем базовый клиент для Win и Linux. Планируем написать клиент на Django/AngularJS (с использованием технологии web-sockets) - с функционалом p2p файлохранилища/файлообменника. С этим более или менее понятно - p2p файлообменник с типовым функционалом, маршрутизация «пользователь–хранитель» осуществляется через DHT (распределенные хэш–таблицы).
Что необходимо сделать. В клиентское приложение (клиент) мы планируем добавить форум как сервис. Учитывая, что по факту мы имеем дело с сформированной распределенной децентрализованной сетью без центрального сервера (каждый клиент может выполнять как функцию клиента, так и функцию сервера), стоит задача спроектировать под функционал форума сбалансированную распределенную децентрализованную БД (а также структуру запросов, типы взаимосвязей и т.п.), а также спроектировать топологию такой сети. Нужна эффективная модель CDN (Content Distribution Network) применительно к данному случаю. Нужно понять какой вид БД (SQL – NoSQL) необходимо использовать, реляционную или графовую… Предположительно, рассматриваем SQLite.