java - 类似文件系统的数据结构的快速且持久的表示

标签 java data-structures

我想要一个持久的数据结构和支持服务(也许是某种内存数据网格,但能够将数据保存到驱动器上)。将要存储的数据在结构上几乎与普通文件系统相同 - 每个节点都有可变数量的子节点的树(但没有像符号链接(symbolic link)这样的复杂性)。每个节点都有一些相关的元信息(有效负载)。我基本上需要的是有效地获取两个方向上的所有分支(即,如果我请求深度为 1000 的节点的所有父节点,我希望有相同的响应时间,就好像我请求其最近的父节点或直系 child )。我希望能够更改节点在树内的位置(当然也更改其所有子节点的位置)。

我知道 Patricia 树对我的目的来说有点好,但数据实际上不是文件系统,因此不会有任何路径与我将节点中的节点关联起来树。

最小存储数据量约为1亿个节点,实际数据量预计至少是其5-15倍。

最佳答案

你看过neo4j吗? ?它可以充当嵌入式、持久的图形数据库。

顺便说一句,您可能需要大量内存。我怀疑如果你想将其全部保留在内存中,每个节点至少需要 100 - 1000 字节。即 10 亿个节点最多 1 TB。

如果您没有那么多内存,您将需要那么多磁盘空间,并且您必须考虑到它会慢很多倍的事实。

关于java - 类似文件系统的数据结构的快速且持久的表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20639285/

相关文章:

java - 在这种情况下,我应该尝试修复特殊情况还是只捕获 stackoverflow 错误?

c - 通过指针访问结构[c]

python - 给定两个字符串列表,如何将它们转换为字典?

data-structures - 3d中可移动点的数据结构

algorithm - 在哪里可以找到图形测试套件?

java - Message 类型的方法 Creator(PhoneNumber, PhoneNumber, String) 未定义

java - 在 doget() 方法中调用 servlet 的 destroy 方法

JavaFX - 删除 TableView 中列之间的蓝线

java - java中的hashmap在哪些情况下会丢失一些条目?