我正在寻找一个经过合理测试的库+服务器来存储一个持久的分布式哈希表.
我非常喜欢使用基于SQL的解决方案,因为数据是高度面向文档的,由数百万~64KB的blob组成,只有一个索引(通过所述BLOB的哈希计算) - 并且需要能够分发以进行长期扩展前景.
由于费用和带宽的考虑,S3等外部解决方案不是一种选择.
像CouchDB或Project Voldemort这样的东西是理想的 - 但是两者都有明显缺乏.NET绑定(PV可以是来自Java的IKVMC-但是有"问题".).键和值都是字节数组(键为16字节,值最大为2048KB,平均为64KB)
到目前为止,我已经搜索了Dynamo,Chord和类似的某种.NET端口 - 但是大多数结果似乎都是纯粹的内存缓存,缺乏任何形式的持久性或复制.
有人有任何想法或建议吗?
这两种技术之间有哪些主要区别?一个人比另一个人有明显的优势吗?
几年前,关于分布式错误跟踪系统,在SO上有一些活动:
存在一些似乎或多或少活跃的系统:
我想知道:分布式错误跟踪的当前状态是什么?它是否仍处于某种黑客阶段(这使得它几乎不能用于普通的GUI开发者)或者我错过了什么?
此外,虽然我发现这个主题非常有趣,因为它与分布式版本控制系统完美集成,但似乎很久以前开始的大多数项目都已经死了.我的印象是真的吗?为什么这个领域没有活动?
我正在寻找一种合理快速的Java事件处理机制来生成和处理在不同主机上运行的不同JVM上的事件.
对于单个JVM中多个线程的事件处理,我发现了一些像Jetlang这样的好候选者.但是在我搜索分布式的等价物时,我找不到任何轻量级以提供良好性能的东西.
有谁知道任何适合该法案的实施?
编辑:使用 数字来表示性能有点困难.但是,例如,如果使用事件实现心跳机制并且心跳间隔为5秒,则心跳接收器应该在一两秒钟内接收发送的心跳.
通常,轻量级实现提供了良好的性能.涉及Web服务器或任何类型的集中式集线器的事件处理机制需要强大的硬件(绝对不是轻量级)以提供良好的性能,这不是我正在寻找的.
我正在寻找一个Python的远程过程调用引擎,我发现PyRo(Python远程对象)和RPyC(远程Python调用)都是我正在寻找的东西.
但是,我很想知道他们如何相互比较,他们的利弊是什么?
是否有用于Java的分布式编译器,类似于C/C++的distcc?
我正在寻找一种简单的时钟同步协议,该协议易于实现,占用空间小,并且在没有互联网连接的情况下也可以工作,因此可以在封闭的实验室网络中使用.为了清楚起见,我不是在寻找可以仅用于命令事件(例如矢量时钟)的东西,而是能够使不同节点上的进程基于本地时钟同步其动作的东西.据我了解,这需要一个可以考虑时钟漂移的解决方案.可以假设存在TCP/IP或类似的相对低延迟的流连接.
在DDBMS的上下文中,垂直碎片和水平碎片有什么区别?
对于垂直碎片而言,关系的扩展是否是碎片化的,而强度碎片是否是水平碎片?
使用分布式和可扩展的体系结构时,通常需要最终的一致性.
从图形上看,如何处理这种最终的一致性?
用户习惯于单击保存,并立即查看结果...最终的一致性是不可能的.
如何处理这种场景的GUI?
请注意,该问题适用于桌面应用程序和Web应用程序.
PS:我正在使用微软平台,但我想这个问题适用于任何技术......
阶段2.(a)如果提议者从大多数接受者收到对其准备请求(编号为n)的响应,则它向每个接受者发送一个接受请求,用于编号为n且值为v的提议,其中v为响应中编号最高的提案的值,如果响应未报告任何提议,则为任何值.
如论文中所述,
提议者通过向一组接受者发送提议被接受的请求来发布提议.(这不一定是响应初始请求的同一组接受器.)"
但正如我的理解,如果我们将第2阶段改为:(a):
如果提议者从大多数接受者收到对其准备请求(编号为n)的响应,则它向任意一组多数接受者发送一个接受请求,该请求用于编号为n且值为v的提议,其中v是该值的值.答复中编号最高的提案,如果答复未报告提案,则为任何值.
算法将失败,以下是一个例子.考虑到共有3个接受者ABC.我们将使用X(n:v,m)来表示接受者X的状态:提议n:v是X接受的最大编号提议,其中n是提议编号,v是提议的值,m是X曾经回复的编号最大的准备请求的编号.
我在这里错过了吗?谢谢.