小编Ron*_*ein的帖子

分布式键值存储,总数据大小为80TB

TL; DR:

我想建议分布式键值存储,平均值.入口大小最多50KB,安装在Linux环境(专用服务器)上.
文件系统解决方案可以.
我找到了一些解决方案:Ceph,Cassandra,Riak等等.

细节

我正在为我们的一个组件寻找存储解决方案,它应该是一个键值存储,平面命名空间.

脚本

读/写模式非常简单:

写入键值后,在接下来的几个小时内会有一些读数.

在那之后,没有任何东西触及给定的键值.我们希望将数据保留用于将来的目的,"存储模式".

其他用法方面

  • 操作系统:Linux
  • Python客户端/连接器
  • 总大小:高达80TB(此值也代表未来需求).
  • 平均条目大小(对于kv对中的单个值):10到50 KB,未压缩,主要是文本数据
  • 压缩:内置或外置.
  • 加密:不需要
  • 网络带宽:1Gb,单个LAN
  • 服务器:专用(不在云端)

最重要的要求

"基础"要求是:

  • 操作系统:Linux
  • Python客户端/连接器或通过HTTP的RESTful API
  • 可轻松存储高达80TB(此值也代表未来需求).
  • 最大读取延迟:首次读取时为几秒,"存储模式"为30秒(参见上文中的说明)
  • 内置复制(以便将数据存储在多个节点上)

很高兴有

  • RESTful网关
  • 后台数据备份到另一个存储(用于灾难时的数据恢复).
  • 易于配置

到目前为止我发现了什么

  • 头孢
  • HDFS
  • HBase在HDFS之上
  • 光泽
  • GlusterFS
  • Mongo的GridFS - 但我能相信Mongo的基础设施吗?
  • Cassandra - 不是一个选项,因为合并过程会消耗双倍的磁盘大小
  • Riak - 看起来像Cassandra一样有问题,需要更多的研究
  • Swift + OpenStack(实际存储可以在Amazon S3上)
  • 伏地魔
  • 有许多其他工具,但我不会在这里写,因为其中一些有专有许可,其他工具似乎不成熟.

我对以上提到的任何工具(总容量超过50TB)或者您认为足够的工具的任何建议表示感谢.

key-value-store distributed-filesystem

6
推荐指数
1
解决办法
957
查看次数

Python:将数据分组为时隙(分钟)

我有一个以mS精确间隔发生的事件列表,这些事件跨越了几天.我想聚集在'每n分钟'时隙中发生的所有事件(可以是20个事件,可以是没有事件).我datetime.datetime为每个活动都有一个项目,所以我可以datetime.datetime.minute毫无困难地获得.

我的事件列表按时间顺序排序,最早的第一个,最后的最后一个.该列表在我正在处理的时间段内完成.

这个想法是我可以改变名单: -

[[a],[b],[c],[d],[e],[f],[g],[h],[i]...]
Run Code Online (Sandbox Code Playgroud)

其中a,b,c出现在分钟0和29之间,d,e,f,g出现在分钟30和59之间,0到29之间没有任何东西(下一个小时),h,i介于30到59之间......

进入新名单: -

[[[a],[b],[c]],[[d],[e],[f],[g]],[],[[h],[i]]...]
Run Code Online (Sandbox Code Playgroud)

我不确定如何构建一个遍历两个时隙的迭代器,直到时间序列列表结束.任何我能想到的东西xrange一旦完成就会停止,所以我想知道是否有一种方法可以使用'while'进行切片?

我也将使用一个较小的时间段,大约5分钟,我使用30分钟作为演示的较短的例子.

(就上下文而言,我正在根据新西兰最近的地震制作基于时间的地理视图.并希望在一小段时间内显示所有发生的地震,以加快重播速度)

python grouping

6
推荐指数
1
解决办法
5120
查看次数

System.Array的SetValue/GetValue方法是否是线程安全的?

我们在办公室进行了一些讨论,没有记录答案:

System.Array.SetValue线程安全的?

using System;
using System.Text;
using System.Threading;

namespace MyApp
{
    class Program
    {
        private static readonly object[] arr = new object[3];

        static void Main(string[] args)
        {
            string value1 = "hello";
            int value2 = 123;
            StringBuilder value3 = new StringBuilder();
            value3.Append("this"); 
            value3.Append(" is "); 
            value3.Append("from the StringBuilder");

            var states = new object[]
                             {
                                 new object[] {0, value1},
                                 new object[] {1, value2},
                                 new object[] {2, value3}
                             };

            ThreadPool.QueueUserWorkItem(MySetValue, states[0]);
            ThreadPool.QueueUserWorkItem(MySetValue, states[1]);
            ThreadPool.QueueUserWorkItem(MySetValue, states[2]);
            Thread.Sleep(0);

            Console.WriteLine("press enter to continue");
            Console.ReadLine(); …
Run Code Online (Sandbox Code Playgroud)

c# arrays thread-safety setvalue

5
推荐指数
1
解决办法
1397
查看次数

在C#中表示游戏卡类的最佳方式

我使用类卡,其中包含2个枚举属性(套件 - 心形钻石黑桃和俱乐部)和卡值从2到A.并覆盖ToString()方法返回类似Ah Ad等的东西.一切都好,但枚举值无法启动有了数字,因此枚举的卡片值看起来像x2,x3,x4 ......它不漂亮.

还需要简单的方法来解析单个字符串中的几张卡片.

谁知道设计这门课程的最佳方法?

c# architecture enums

5
推荐指数
1
解决办法
8653
查看次数

简单来说,GPLv1与GPLv2有什么区别?

简单的英文,GPL(版本1)与GPL(版本2)有什么区别?

licensing gpl

4
推荐指数
1
解决办法
6443
查看次数

云功能已完成,状态为:“超时””

在 Firebase 控制台中,函数/日志部分中的最后一条事件消息是“函数执行花费了 60006 毫秒,完成状态为:‘超时’”。“超时”是函数应该结束的状态吗?或者我是否遗漏了代码中的某些内容,表示“这就是结束”?

firebase google-cloud-functions

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

如何卸载PHP APC 3.1.9并进行全新安装?

细节:

操作系统:Mac OS X 10.7.3

PHP 5.3.8:随Mac OS一起提供

如何安装APC:sudo pecl install apc-3.1.9

如果我尝试相同的命令,它会显示以下内容:pecl/apc已经安装并且与发布的版本3.1.9安装失败相同

我需要重新安装APC,因为调试是启用的,PHP它在任何地方抛出"通知:未知:apc_cache_find".

调试设置不包含在配置中:http: //php.net/manual/en/apc.configuration.php

我无法禁用APC,因为我正在使用它的网站上工作.

我一直在找几个小时,但我找不到答案,提前谢谢你的帮助.

php apc osx-lion

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

Python:如何为每个x使用x编写?

#python

list="""a 1 2 3 4 5
b 1 2 3 4 5
c 1 2 3 4 5 """


a=list.split('\n')
if a[0][0]==a:
    do something
if a[1][0]==b:
    do something
if a[2][0]==c:
    do something
Run Code Online (Sandbox Code Playgroud)

是否有一种自动方式让python读取每行的第一部分?而不是做上述?我试图在每一行上使用第一个str char作为python识别下一个动作的方式.

python

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