小编use*_*016的帖子

什么是Cassandra中Paxos和W + R> = N之间的区别?

类似Dynamo的数据库(例如Cassandra)可以通过仲裁来强制执行一致性,即一些同步写入的副本(W)和一些要读取的副本(R)应该以W + R> N的方式选择N是复制因子.另一方面,像Zookeeper这样的基于PAXOS的系统也被用作一致的容错存储.

这两种方法有什么区别?PAXOS是否提供W + R> N架构未提供的保证?

algorithm synchronization cassandra paxos apache-zookeeper

27
推荐指数
4
解决办法
7684
查看次数

如何通过密钥获取锁定

在不锁定整个集合的情况下,防止在键值集中并发更新一个记录的最佳方法是什么?从语义上讲,我正在寻找某种键的锁定(理想情况下,Java实现,但不一定):

interface LockByKey {
   void lock(String key); // acquire an exclusive lock for a key   
   void unlock(String key); // release lock for a key
}
Run Code Online (Sandbox Code Playgroud)

此锁用于同步对远程存储的访问,因此某些同步Java集合不是一个选项.

java algorithm synchronization locking

25
推荐指数
3
解决办法
1万
查看次数

SSD的低延迟键值存储

我们正在开发具有以下属性的SSD支持的键值解决方案:

  • 吞吐量:10000 TPS; 50/50看/得;
  • 延迟:平均1ms,99.9百分位10ms
  • 数据量:约10亿个值,每个约150个字节; 64位密钥; 随机访问,20%的数据适合RAM

我们在商用SSD上尝试了KyotoCabinet,LevelDB和RethinkDB,使用不同的Linux IO调度程序,ext3/xfs文件系统; 使用Rebench进行了多次测试; 并发现在所有情况下:

  • 只读吞吐量/延迟非常好
  • 整个写入/更新是适度的,但有许多高延迟异常值
  • 即使在直接访问块设备(绕过文件系统)的情况下,混合读/写工作负载也会导致吞吐量/延迟出现灾难性的振荡

下图说明了KyotoCabinet的这种行为(横轴是时间,三个周期清晰可见 - 只读,混合,仅更新).

问题是:是否可以使用SSD实现所描述的SLA的低延迟以及建议使用哪些键值存储?

在此输入图像描述

database performance solid-state-drive key-value nosql

10
推荐指数
1
解决办法
2573
查看次数

轻量级和低延迟的Java网络库?

我正在研究一个客户端 - 服务器对,其中多线程客户端每秒执行数千次服务器调用,第一优先级是实现最小延迟.吞吐量也应该很高.客户端和服务器都是用Java编写的,通信语义非常简单(put/get操作).

什么是满足这些要求的最佳Java网络库/框架?像Tomacat/Jetty这样的服务器似乎是重量级的.我正在考虑MINA或Netty,但我不确定这些异步库是否会在繁重的工作负载下提供稳定的低延迟.

java networking nio netty

7
推荐指数
1
解决办法
1万
查看次数