Pregunta

Estoy buscando una biblioteca + servidor razonablemente probada para almacenar una tabla hash distribuida persistente.

Dudo en usar soluciones basadas en SQL ya que los datos están altamente orientados a documentos, que consisten en millones de ~ 64 KB de blobs con un solo índice (calculado por el hash de dicho BLOB), y necesita poder distribuirse para perspectivas de escala a largo plazo.

Debido a consideraciones de gastos y ancho de banda, las soluciones externas como S3 no son una opción.

Algo como CouchDB o Project Voldemort sería ideal, sin embargo, hay una notable falta de enlaces .NET para ambos (PV puede ser IKVMC de Java, sin embargo tiene '' problemas ''). Tanto la clave como el valor son conjuntos de bytes (la clave es de 16 bytes, el valor es de hasta 2048 KB con un promedio de 64 KB)

He buscado hasta ahora algún tipo de puerto .NET de Dynamo, Chord y similares, sin embargo, la mayoría de los resultados parecen ser cachés puramente en memoria y carecen de cualquier forma de persistencia o replicación.

¿Alguien tiene alguna idea o sugerencia?

¿Fue útil?

Solución

Eche un vistazo a Rhino DHT de Ayende. Podría estar más en línea con lo que estás buscando. La fuente se puede adquirir aquí .

Otros consejos

DryadLINQ o Hadoop.Net puede ayudar.

Hadoop.Net es la versión dotnet de Hadoop. Puede encontrar más información sobre Hadoop aquí

Creo que debería considerar SQL Server 2008. Almacene los datos en una tabla con una columna varbinary (max), junto con una columna que contenga el hash de esa columna. Indexe el hash, como sugirió.

Podrá utilizar las diversas funciones de distribución del producto.

Considere MS Velocity .

Resumen: "Velocity" es una plataforma de caché de aplicaciones distribuidas en memoria para desarrollar aplicaciones escalables, disponibles y de alto rendimiento. "Velocity" fusiona la memoria en varias computadoras para dar una sola vista de caché unificada a las aplicaciones. Las aplicaciones pueden almacenar cualquier objeto CLR serializable sin preocuparse de dónde se almacena el objeto. La escalabilidad se puede lograr simplemente agregando más computadoras a pedido. La "velocidad" también permite que se almacenen copias de datos en el clúster, protegiendo así los datos contra fallas. "Velocity" se puede configurar para ejecutarse como un servicio al que se accede a través de la red o se puede ejecutar integrado con la aplicación distribuida.

Puede probar StorageEdge, tiene tecnología NCache en su back-end, por lo que al usarlo tendrá el soporte de caché distribuida que aumentará el rendimiento, la confiabilidad, la escalabilidad de SharePoint y optimizará su almacenamiento al mismo tiempo.

Aquí hay un enlace a la página de inicio de StorageEdge http://www.alachisoft.com/storageedge/ I espero que ayude :)

Descanse para .NET. Siempre puede probar NCache, un nombre importante en el almacenamiento en caché distribuido. Puede encontrar sus detalles en http: //www.alachisoft.com/ncache/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top