首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结构来处理大量的半持久化数据?

结构来处理大量的半持久化数据?
EN

Stack Overflow用户
提问于 2011-07-01 13:13:54
回答 1查看 155关注 0票数 1

我需要跟踪一组文件的大量inotify消息,这些文件在生存期内将在几个特定目录之间移动,inode保持不变;我需要跟踪这些inotify消息的移动,以及对文件内容的创建/删除和更改。每秒会有数百次变化。

由于资源有限,我不能将其全部存储在RAM (或磁盘或数据库)中。

幸运的是,这些文件中的大多数将在短时间内被删除;只需存储文件内容和移动历史以供以后分析。未立即删除的文件最终将在特定目录中保留一段已知时间。

因此,在我看来,我需要一个部分存储在RAM中,部分保存到磁盘的数据结构;保存到磁盘的部分需要重新调用(未删除的文件),但大多数都不会。我不需要查询数据,只需要通过一个标识符(文件名,它是A-Z0-9{8})访问它。能够配置何时将文件数据刷新到磁盘将很有帮助。

这种野兽真的存在吗?

编辑:I've asked a related question

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-01 13:23:05

为什么不是数据库呢?说SQLite。

虽然就空间而言,SQLite不是最有效的存储机制,但它有许多优点--首先也是最重要的是,它是一种SQL RDBMS。可以通过cache_size pragma配置SQLite使用的内存量(用于临时缓存数据)。

如果SQLite不是一个选项,那么"key value stores"中的一个呢?它们的范围从分布式客户机/服务器内存中(例如memcached)到基于本地嵌入式磁盘的(例如BDB),再到具有持久溢出支持的内存以及介于两者之间的任何地方等等。它们没有SQL DDL/DQL (尽管有些可能允许关系),但它们的工作效率很高--存储键和值。

当然,人们总是可以实现一个LRU结构(比如一个基本的有限制的排序列表),同时溢出到一个简单的可扩展的基于磁盘的散列实现……但是..。首先考虑上面:)也可能有一些微型KV库/源代码。

祝你编码愉快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6543833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档