2011-05-21 25 views
31

Actualmente, estoy investigando modelos de aplicaciones p2p. Creo que a pesar de que los pares comparten datos entre sí, todavía hay un servidor de base de datos en alguna parte que contiene información de la cuenta del usuario. Tome Skype como ejemplo. Creo que están/estaban usando PostgreSQL aunque los usuarios establecen una comunicación p2p. Lo que me pregunto es si existe una implementación de la base de datos p2p, de modo que los datos se distribuyan (y encripten) a través de las computadoras cliente en lugar de alojarse en una granja de servidores.¿Existe una implementación de la base de datos p2p?

Si no es así, ¿sería extremadamente difícil/realista para implementar una base de datos P2P?

+0

no sé a ciencia cierta, pero creo que es * muy * difícil de implementar una base de datos de punto a punto. ¿Quién autentica los datos? ¿Cómo sabes que la información es realmente confiable? Mire OpenPGP: es una forma de base de datos de igual a igual, excepto que toda la información que almacena es "Soy lo que digo que soy". –

+0

¿Qué tal un almacén de valores-clave [namecoin] (http://namecoin.info/)? Es una base de datos de solo escritura. – Jus12

+0

Esta pregunta se mantiene actualizada en absoluto –

Respuesta

2

No estoy seguro de si esto responde a su pregunta directamente o no, pero me parece que cualquier tipo de aplicación que almacena los datos localmente y ofrece a sincronizar o compartirla con otras instancias de sí mismo (o aplicaciones compatibles) es , de facto, algún tipo de base de datos peer to peer.

Tomar una aplicación de motor de búsqueda distribuido por ejemplo. Hay algunos experimentos en esa área (por ejemplo, http://yacy.net). Utilizándolos, tienes un índice local que puedes compartir con tus compañeros, etc.

O, mejor dicho, un cliente Bit Torrent ...

Ninguno de estos se comunican a través de SQL adecuada, ni tampoco hay necesariamente un servidor de base de datos que almacena la información de la cuenta de usuario. Cada una a su manera es, de hecho, en el ámbito de los almacenes de datos distribuidos.

En cada caso, el propósito de tener un "servidor" (o lo que se denomina), es mantener las instancias de la aplicación de la conformación de redes discontinuas que no saben el uno del otro. Lo mejor que sé es que no hay medios confiables para lograr esto de manera confiable sin algún tipo de puntos de referencia "siempre encendidos".

El giro, en el caso de Skype, es que además de querer formar una red única, desea a) autenticar a los usuarios que se unen a la red, y b) almacenar una cierta cantidad de (pero no todos) historia (por ejemplo, recibe una notificación de llamadas perdidas y solicitudes de contacto, pero los mensajes de chat perdidos solo aparecerán cuando ambos clientes de Skype estén conectados).

2

marcos P2P suelen aplicarse de forma independiente de cualquier base de datos. Se enfocan en transportar información entre nodos. Algunos confían en bases de datos en memoria para almacenar información temporal. Con respecto a JXTA, el usuario puede configurar nodos para operar con bases de datos en memoria o basadas en archivos.

He estado en P2P desde hace bastante y no he oído hablar de un marco plenamente P2P-base de datos orientada usuario. Creo que tendrá que implementar su marco P2P favorito encima de su base de datos.

4

Menciona Skype, y este es un buen ejemplo. AFAIK, Skype distribuye su base de datos entre pares.

Sin embargo, nota que tienen una patente sobre algún tipo de base de datos distribuidos en pares. Si escribe algo, ¡asegúrese de no pisar su patente!

Creo que es parte de la razón por la que se vendieron por más de $ 8B a Microsoft.

propongo que lea un poco sobre JoltID (company) que posee los derechos de propiedad intelectual de la patente estadounidense 7.480.658 "que cubren los sistemas de bases de datos distribuidas y coordinado descentralizada de computación peer-to-peer"

+5

No temas a la patente. Dispara a la luna. –

7

Si eres interesado en bases de datos no relacionales, hay muchos almacenes clave-valor P2P transaccionales y no transaccionales, como memcached (dentro de un grupo de trabajo), o las diferentes implementaciones de DHS (Distributed Hash Table) en Internet en general (p. , Acorde, pastelería, tapiz y quimera).

Aquí es un buen punto de partida: http://en.wikipedia.org/wiki/Distributed_hash_table

3

Una respuesta tardía, pero puede ser útil para otros que tienen la misma pregunta. Estoy de acuerdo con @JVerstry en que las implementaciones de las bases de datos P2P generalmente son solo capas de comunicación y sincronización que se colocan sobre una base de datos estándar.

Conozco un proyecto que esencialmente hace la replicación bidireccional y la resolución de conflictos en una base de datos entre varias copias en red, con cada nodo que tiene una copia completa. Esta es de hecho una base de datos P2P, pero tenga en cuenta que hay otros tipos (@Canuck menciona correctamente los DHT, que se utilizan para implementar búsquedas en redes donde cada nodo contiene una copia parcial de la base de datos).

Para un enfoque NoSQL, puede mirar Refuge, que se basa en CouchDB. Creo que es temprano en el momento de escribir, pero parece interesante.

1

En realidad, hay una, pero necesita un nuevo responsable: Profeta

http://syncwith.us/

profeta es un nuevo tipo de base de datos diseñada para la Web 2.0-mundo posterior. Está hecho para permitirle colaborar con sus amigos y compañeros de trabajo sin necesidad de ningún tipo de servidor especial o proveedor de Internet.

terreno de juego palabra de moda cargado del profeta dice algo como esto:

Una tierra, semirelational, Intercambio de archivos replicado, desconectado, versionado, base de datos de propiedad con la resolución de conflictos de auto-sanación.

Incluso se ha utilizado para crear un gestor de fallos P2P llamados defectos simples

+0

Las solicitudes de recomendación de recursos o herramientas fuera del sitio están fuera del tema en Desbordamiento de pila. Si respondes, específicamente refuerzas la creencia de que Stack Overflow es un buen lugar para responder esas preguntas. No lo es. No responda estas preguntas, incluso si conoce una buena respuesta, ya que la mayoría de las respuestas serán muy dogmáticas ("Personalmente me gusta ..."). Puede abrir el diálogo del indicador sobre la pregunta y ver el motivo completo en su totalidad en la categoría ** fuera del tema **, o en [ayuda/tema]. Tampoco deberías responder en un comentario, ya que el efecto es similar a una respuesta real. –

Cuestiones relacionadas