问题标签 [storage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
data-structures - 在磁盘上存储大量不同大小的对象
我需要开发一个系统来存储大量(10 到 100 的数千个)对象。每个对象都类似于电子邮件 - 有一个主要文本正文和几个有限大小的辅助文本字段。正文的大小从几个字节到几个 KB。
每个项目都有一个唯一的 ID(可能是 GUID)来标识它。
仅当向其中添加对象时才会写入存储。会经常阅读。删除将是罕见的。数据几乎都是人类可读的文本,因此很容易压缩。
一个让我发出 I/O 并管理内存和缓存的系统将是理想的。
我将把索引保存在内存中,使用它将索引映射到对象的单个(和主)键。获得密钥后,我将从磁盘或缓存中加载它。
数据管理系统需要成为我的应用程序的一部分——我不想依赖操作系统服务。或单独安装的软件包。本机 (C++) 最好,但管理 (C#) 就可以了。
我相信数据库是一个显而易见的选择,但这需要超快的查找和加载到对象的内存中。我对数据库技术没有经验,我担心一般的关系系统无法有效地处理所有这些可变大小的数据。
(注意,这与我的工作无关——这是一个个人项目。)
根据您的经验,传统关系数据库的可行替代方案是什么?或者数据库会为此工作吗?
search - 存储和搜索对象事务的最佳方式是什么?
我们有一个体面的面向对象的应用程序。每当应用程序中的对象发生更改时,对象更改都会保存回数据库。然而,这已经变得不太理想了。
目前,交易被存储为一个交易和一组交易LI。
事务表具有 who、what、when、why、foreignKey 和 foreignTable 字段。前四个是不言自明的。ForeignKey 和 foreignTable 用于确定哪个对象发生了变化。
TransactionLI 具有时间戳、密钥、val、oldVal 和 transactionID。这基本上是一个键/值/旧值存储系统。
问题是这两个表用于应用程序中的每个对象,所以它们现在是相当大的表。将它们用于任何事情都很慢。索引只有这么多帮助。
所以我们正在考虑其他方法来做这样的事情。到目前为止我们已经考虑过的事情: - 按时间戳之类的方式对这些表进行分片。- 对两张表进行非规范化并将它们合并为一张。- 以上两者的结合。- 在更改后序列化每个对象并将其存储在颠覆中。- 可能是别的什么,但我现在想不起来。
整个问题是我们希望有一些机制来正确存储和搜索事务数据。是的,您可以强制将其输入关系数据库,但实际上,它是事务数据,应该相应地存储。
其他人都在做什么?
api - Microsoft SkyDrive 是否有 API?
因此,最近有消息称微软 Skydrive 将被撞到每个帐户 25GB 的存储空间,有人知道 SkyDrive 是否有 API 吗?
(如果是这样,文档在哪里?)
storage - 游戏地形数据库模型
我正在为网络开发游戏。该游戏的地图将至少为 2000 公里乘以 2000 公里。我希望能够以某种粒度级别对海拔和地形类型进行编码 - 例如 100m X 100m。
对于 2000 公里乘 2000 公里的地图,将此信息存储在 100m 2桶中意味着数据库中有 20000 乘 20000 个元素或总共 400,000,000 条记录。
还有其他存储此类信息的方法吗?
更多信息
地图本身永远不会完整显示。单位将以回合制方式在地图上移动,玩家将获得有关他们所在位置和当地情况的反馈。地形将决定速度和禁止移动。
我想我想说的是地图将用于游戏,不一定用于图形或显示目的。
.net - 将数据存储在平面文件中的软件,常见的编码/文件格式技术是什么
我被使用 sql server 存储数据或使用 xml 文件宠坏了。
将数据存储在 xml 和 CSV 以外的平面文件中的常用技术是什么。
我知道很多次当我打开文件时数据都是混乱的,这意味着它是编码的吗?
有什么我可以在某处读到的常用技术吗?
storage - 轻量级存储机制
我即将编写一个小实用程序来组织和标记我的 mp3。
存储少量数据的最佳方法是什么。更重要的是,是否存在不需要安装客户端/服务器环境的数据库,我只包含库就可以了吗?
我可以使用 XML,但我担心文件会变得很大且难以处理,更不用说保持较小的内存占用了。
谢谢
编辑:我还没有决定语言,我想让我的决定独立于平台。如果我必须选择,最有可能的是 .NET,第二个 Java,第三个 C++。
抱歉,这是针对 Windows 应用程序的。
linux - 当大量磁盘活动发生时如何使 Linux GUI “可用”
如果我开始将一个巨大的文件树从一个位置复制到另一个位置,或者如果某个其他进程开始执行大量磁盘活动,则前台应用程序 (GUI) 会减慢速度。例如,采用一个 2gb 的文件树,其中包含 100k 个文件。打开控制台并执行 cp -r bigtree bigtree2。然后转到Firefox并开始浏览。Firefox 几乎无法使用。即使我将 firefox 的 nice 级别设置为非常高的优先级(-20),它仍然非常慢且延迟很大。
我记得几年前我在 Solaris 机器上工作时,系统在类似情况下的表现要好得多。
我的 HD 使用的是 DMA,而不是 PIO。是SATA。未安装 atime 标志。
.net - OID 密钥 Blob 存储的程序员中有市场吗?
一个朋友开发了一个非常棒的 blob 商店,我认为它需要被使用,但我想知道人们是否认为这样的东西有市场,以及程序员是否会做出这样的决定。它支持使用增量进行在线备份,并且比我所知道的任何东西都快得多,它经过了严格的测试并被用于一些非常小众的应用程序中。我认为任何具有二进制文件格式的人都希望将其用作替代方案。它有一个 C++ 接口,并已适应 .NET 序列化。
它绝对将 SQL blob 表从水中吹走。
想法?
编辑:更好,因为:
- 它非常快。
- 它是事务性的,具有完整的恢复扫描,比平面文件要好得多。
storage - 您的应用程序使用什么文件格式,为什么?
我最感兴趣的是针对大量变异的面向对象数据的进程内(单用户)解决方案,其中数据的任何部分都可能发生变化。此类系统通常存在以下问题:
- 从头开始写大文件效率低下
- xml 太冗长
- SQL blob 不是很好的匹配项
你是怎么做到的?
sql - 最高性能的数据库存储机制
我需要想法来实现(真正的)高性能内存数据库/存储机制。在存储 20,000 多个对象的范围内,每个对象每 5 秒左右更新一次。 我想要一个 FOSS 解决方案。
我最好的选择是什么?你有什么经验?
我主要使用 Java 工作,但我需要数据存储具有良好的性能,因此数据存储解决方案不需要以 Java 为中心。
我还需要能够查询这些对象,并且我需要能够在程序启动时恢复所有对象。