Подтвердить что ты не робот

Существует ли реализация базы данных p2p

В настоящее время я изучаю модели приложений p2p. Я считаю, что даже если одноранговые узлы обмениваются данными друг с другом, все еще есть сервер базы данных где-то, где хранятся данные учетной записи пользователя. Возьмите Skype в качестве примера. Я считаю, что они используют PostgreSQL, хотя пользователи устанавливают связь p2p. Мне интересно, есть ли там реализация p2p-базы данных, поэтому данные распределяются (и шифруются) на клиентских компьютерах, а не размещаются в ферме серверов?

Если нет, было бы чрезвычайно сложно/нереалистично реализовать базу данных p2p?

4b9b3361

Ответ 1

Если вас интересуют нереляционные базы данных, существует множество транзакционных и не транзакционных хранилищ ключей P2P, таких как memcached (внутри рабочей группы) или разных реализаций распределенной хеш-таблицы (DHT) Интернет в целом (например, CAN, Chord, Pastry, Tapestry и Chimera).

Здесь хорошая отправная точка: http://en.wikipedia.org/wiki/Distributed_hash_table

Ответ 2

Вы упомянули Skype, и это хороший пример. AFAIK, Skype распространяет свою базу данных между сверстниками.

Однако обратите внимание, что у них есть патент на какую-то базу данных, распределенную по сверстникам. Если вы пишете что-нибудь, убедитесь, что вы не наступаете на их патент!

Я считаю, что это часть причины, по которой они были проданы Microsoft за $8B.

Я предлагаю вам немного рассказать о JoltID (компания), который содержит права интеллектуальной собственности на патент США 7,480,658 ", охватывающий распределенные системы баз данных и координированные децентрализованные одноранговые вычисления"

Ответ 3

Поздний ответ, но может быть полезен для других, имеющих тот же вопрос. Я согласен с @JVerstry в том, что реализации баз данных P2P обычно представляют собой только уровни связи и синхронизации, которые размещаются поверх стандартной базы данных.

Я знаю проект, который по существу делает двунаправленную репликацию и разрешение конфликтов в базе данных между различными сетевыми копиями, причем каждая node имеет полную копию. Это действительно база данных P2P, но обратите внимание, что есть другие типы (@Canuck правильно упоминает DHT, которые используются для реализации поиска в сетях, где каждая node хранит частичную копию базы данных).

Для подхода NoSQL вы можете посмотреть Refuge, который основан на CouchDB. Я считаю, что это ранние дни на момент написания, но это выглядит интересно.

Ответ 4

Я не уверен, отвечает ли это на ваш вопрос напрямую или нет, но мне кажется, что любое приложение, которое хранит данные локально и предлагает синхронизировать или распространять его с другими экземплярами себя (или совместимыми приложениями) де-факто, какую-то одноранговую базу данных.

Возьмите приложение с распределенной поисковой системой, например. В этой области есть несколько экспериментов (например, http://yacy.net). Используя их, у вас есть локальный индекс, который вы можете разделить со своими сверстниками и т.д.

Или, кстати, немного торрент-клиент...

Ни один из них не осуществляет связь через SQL, и не обязательно, что сервер БД хранит данные учетной записи пользователя. Каждый по-своему де-факто в области распределенных хранилищ данных.

В каждом случае цель иметь "сервер" (или все, на что он ссылается) заключается в том, чтобы блокировать экземпляры приложения от формирования непересекающихся сетей, которые не знают друг о друге. Лучшее, что я знаю, нет надежных средств для достижения этого надежно без каких-либо "ориентиров" всегда.

Твист, в случае Skype, заключается в том, что в дополнение к желанию создать уникальную сеть вы хотите: a) аутентифицировать пользователей по мере их присоединения к сети и b) хранить некоторое количество (но не всех) (например, вы получаете уведомление о пропущенных телефонных звонках и запросах на контакт, но пропущенные сообщения чата появятся только при подключении обоих клиентов Skype).

Ответ 5

Рамки P2P обычно реализуются независимо от любой базы данных. Они сосредоточены на транспортировке информации между узлами. Некоторые полагаются на базы данных в памяти для хранения временной информации. Что касается JXTA, пользователь может настроить узлы для работы с базами данных в оперативной памяти или файлами.

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

Ответ 6

На самом деле есть один, но ему нужен новый сопровождающий: Пророк

http://syncwith.us/

Пророк - это новый вид базы данных, созданный для почтового мира Web-2.0. Это позволило вам сотрудничать с вашими друзьями и коллегами, не требуя каких-либо специальных серверов или интернет-провайдеров.

Пророк, наполненный модным словом, читает что-то вроде этого:

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

Он даже использовался для создания трекера ошибок P2P под названием Simple Defects