noSQL数据库中的双索引

时间:2013-03-29 03:05:03

标签: database concurrency nosql

我正在创建一个存储三件事的数据库。让我们说实验,测量,元数据。元数据由一组可变数量和类型的属性组成,因此使NoSQL的选择具有吸引力。

我需要对数据库进行两个简单的查询:

1)使用给定的Measure值给我所有实验的元数据。 2)给我一个实验的所有测量的元数据。

我的主要要求是:

1)数据量大。每个实验都可以提供数百万种可能的测量(当然还有元数据),我期待成千上万的实验。 2)并发。我希望快速并发读/写,因为在任何给定的时间点我可能正在进行10-20次实验,并且他们希望同时编写数百万个测量值。

我已经尝试过MongoDB,但是由于写入锁定它很慢。我想要更快的东西。另外,它不能很好地处理我的一个查询,因为我在这里基本上需要两个索引。我正在考虑作为替代泰坦,只是因为将实验视为节点并将它们与边缘连接起来似乎很自然。如果我能找到一种快速进行两种查询的方法,那么Hypertable似乎是另一种可能性。

有很多noSQL数据库,我可能会错过正确的数据库以满足我的需求。建议?

1 个答案:

答案 0 :(得分:1)

您是否研究过适合您需求的NewSQL数据库?我建议你仔细看看Starcounter是真正的ACID,写入没有锁定,支持对基本属性和组合索引进行索引。

我认为面向对象和以内存为中心的事务数据库可以满足您的需求。然后,您可以使用不同的实验和度量来派生相同的类,您可以选择查询每个类型以及分别查询未经过类型的类型。

如果您没有超过TB的数据,则不需要到目前为止已经查看过的大数据数据库。他们真的很擅长他们的工作,但我认为你应该研究其他的NoSQL数据库。当使用内存(当然是在持久性存储介质上保护的所有写入)面向对象的数据库时,与关系数据库相比,您获得的压缩次数约为4次,因此数据的结核数据通常会很高。

今天在数据库的丛林中找到自己的方式真的很难,所以我理解找到符合你要求的东西的难度。在你的情况下 - 我在事务性NoSQL数据库上的5美分是真正的ACID和SQL查询支持!