我们正在开展一个项目,我们将构建一个完整的后端CMS系统,该系统将通过一个软件包为整个外联网和内部网提供支持.我一直在试图寻找一个答案是哪一个更好的问题:存储数据库(SQL Server 2005中),所以我们可以有诚信,单个复制计划等或存放在文件系统上的图像?
我们遇到的一个问题是我们有多个服务器负载均衡,需要始终拥有相同的数据.截至目前,我们有SQL复制处理,但文件复制似乎有点困难.我们关注的另一个问题是我们希望拥有相同图像的多个分辨率,我们不确定在文件系统上创建和存储每个版本是最好的还是可以动态地拉动并创建我们想要的分辨率图像.
我们关注的是以下内容:
有没有人有类似的情况或对推荐的内容有任何意见?在此先感谢您的帮助!
以下是实现版本控制的可行策略(使用"example"作为示例文档类型):
有一个原始文档,其中类型字段名为example_original.
对文档的后续更改都具有类型example_change和example_original文档的id作为键.此更改还将带有时间戳.
保留一个类型为example_current的doc,它是example_original的结果,所有example_change都是"applied".新的example_change文档将自动应用于此文档.
查找特定版本将包括检索example_original文档并应用所需的更改(主要是某个时间戳,但也可能是一些更改).
我应该提一下,我的用例将涉及对原始的有限数量的更改.大多数更新将包含新的原始文档.虽然这是我目前的用例,但我也会对涉及许多变更会导致的问题感兴趣.
你在这种方法中看到了什么利弊?
是否有类似于SQLite的东西,但是面向文档的数据库而不是RDBMS?
东方似乎与我想要的东西类似,但它是用Java编写的,我正在寻找可以从C++中使用的东西.
理想情况下,这将是一个无服务器系统,如SQLite.
有类似于PouchDB的东西会很棒.
当前的键值存储(AsyncStorage)绝对不足以存储和查询数据.
在过去的几天里,我一直在阅读文档和观看Mongo DB特有的截屏视频,当这样的解决方案比典型的pg或mysql环境更好时,我感到很茫然.
具体来说,我的问题是在什么情况下(用例会很好)你想要去nosql路线吗?
谢谢!
我正在开发一个应用程序,我们正在编写大量的关键值对.在生产时,数据库大小将达到数百TB甚至数PB.密钥是20个字节,值最大为128 KB,很少小于4 KB.现在我们正在使用MongoDB.性能不是很好,因为很明显这里有很多开销.MongoDB写入文件系统,写入LVM,进一步写入RAID 6阵列.
由于我们的要求非常基础,我认为使用通用数据库系统会达到性能.我正在考虑实现一个简单的数据库系统,我们可以将文档(或"值")直接放到原始驱动器(实际上是RAID阵列),并存储密钥(以及指向值原始位置的指针)驱动器)在由SSD支持的快速内存数据库中.这也将加速读取,因为所有不会有碎片(与使用文件系统相反).
虽然很少删除文档,但我们仍然需要维护设备上可用的可用空间池(文件系统可能提供的空间).
我的问题是,这真的会提供任何重大改进吗?此外,有没有任何文件存储系统做这样的事情?或类似的东西,我们可以用作起始点?
database ×3
mongodb ×2
nosql ×2
asp.net ×1
c++ ×1
couchdb ×1
hard-drive ×1
key-value ×1
pouchdb ×1
react-native ×1
sql ×1
use-case ×1
versioning ×1