.NET 的 BLOB 分布式存储?
我正在寻找一个经过相当好的测试的库+服务器来存储持久的分布式哈希表。
我对使用基于 SQL 的解决方案犹豫不决,因为数据是高度面向文档的,由数百万个约 64KB 的 blob 组成,只有一个索引(由所述 BLOB 的哈希计算) - 并且需要能够进行分布式以实现长期扩展前景。
出于费用和带宽方面的考虑,S3 等外部解决方案不是一种选择。
像 CouchDB 或 Project Voldemort 这样的东西是理想的 - 然而两者都明显缺乏 .NET 绑定(PV 可以从 Java 进行 IKVMC - 但有“问题”。)。 键和值都是字节数组(键为 16 字节,值最大为 2048KB,平均为 64KB)
到目前为止,我已经搜索了 Dynamo、Chord 等的某种 .NET 端口 - 然而大多数结果似乎纯粹是内存缓存并且缺乏任何形式的持久性或复制。
有人有任何想法或建议吗?
I am looking for a reasonably well tested library+server to store a persistent distributed hash table.
I am hesistant to use SQL-based solutions as the data is highly document oriented, consisting of millions of ~64KB blobs with only a single index (computed by hash of said BLOB) - and needs to be able to be distributed for long term scaling prospects.
Due to expense and bandwidth considerations, external solutions such as S3 are not an option.
Something like CouchDB or Project Voldemort would be ideal - however there is a noticable lack of .NET bindings for both (PV can be IKVMC'd from Java - however has "issues".). Both key and value are byte arrays (key is 16 byte, the value is up to 2048KB averaging 64KB)
I have searched so far for some kind of .NET port of Dynamo, Chord and similar - however the majority of results appear to be purely in-memory caches and lack any form of persistence or replication.
Anyone got any ideas or suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
看看 Ayende 的 Rhino DHT。 可能更符合您正在寻找的内容。 可以在此处获取源代码。
Take a look at Ayende's Rhino DHT. Might be more inline with what you are looking for. The source can be acquired here.
DryadLINQ 或 Hadoop.Net 可能会有所帮助。
Hadoop.Net 是 Hadoop 的 dotnet 版本。 有关 Hadoop 的更多信息,请访问此处
DryadLINQ or Hadoop.Net may help.
Hadoop.Net is dotnet version of Hadoop. More about Hadoop can be found here
我实际上认为您应该考虑 SQL Server 2008。将数据存储在具有 varbinary(max) 列的表中,以及包含该列的哈希值的列。 按照您的建议,对哈希进行索引。
然后,您将能够使用该产品的各种分发功能。
I actually think you should consider SQL Server 2008. Store the data in a table with a varbinary(max) column, along with a column that contains the hash of that column. Index the hash, as you suggested.
You'll then be able to use the various distribution features of the product.
请考虑 MS Velocity。
简介:“Velocity”是一个分布式内存应用程序缓存平台,用于开发可扩展、可用和高性能的应用程序。 “Velocity”融合了多台计算机的内存,为应用程序提供了一个统一的缓存视图。 应用程序可以存储任何可序列化的 CLR 对象,而不必担心对象的存储位置。 只需根据需要添加更多计算机即可实现可扩展性。 “速度”还允许跨集群存储数据副本,从而保护数据免受故障影响。 “Velocity”可以配置为作为通过网络访问的服务运行,也可以嵌入分布式应用程序中运行。
Consider MS Velocity.
Summary: “Velocity” is a distributed in-memory application cache platform for developing scalable, available, and high-performance applications. “Velocity” fuses memory across multiple computers to give a single unified cache view to applications. Applications can store any serializable CLR object without worrying about where the object gets stored. Scalability can be achieved by simply adding more computers on demand. “Velocity” also allows for copies of data to be stored across the cluster, thus protecting data against failures. “Velocity” can be configured to run as a service accessed over the network or can be run embedded with the distributed application.
您可以尝试StorageEdge,它的后端具有NCache技术,因此通过使用它,您将获得分布式缓存的支持,这将提高SharePoint的性能、可靠性、可扩展性,同时优化其存储。
这是StorageEdge主页的链接 http://www.alachisoft.com/storageedge/ 我希望它有所帮助:)
对于 .NET,您可以随时尝试 NCache,它是分布式缓存中的一个大牌,您可以在 http:// /www.alachisoft.com/ncache/
You can try StorageEdge it has NCache technology at it's back-end so by using it you'll have the support of distributed cache which will boost SharePoint performance, reliability, scalability and optimize its storage at the same time.
Here is link to StorageEdge's homepage http://www.alachisoft.com/storageedge/ I hope it help :)
Rest for .NET you can always try NCache a big name in Distributed Caching you can find its details on http://www.alachisoft.com/ncache/