ArangoDB:如果数据或索引不再适合RAM,那会不好?

eur*_*guy 4 node.js arangodb

亲爱的ArangoDB社区,

我想知道当我们使用ArangoDB时它是否坏,如果不幸的是数据+索引变得太大而且不再适合RAM.那发生了什么?它是否会严重破坏系统性能?

对于TokuMX来说,这是一个非常迷人的MongoDB分支(TokuMX提供了我需要的ACID交易),他们说完全没问题!甚至TokuMX在他们的网站上也明确表示,如果数据+索引不适合RAM,对TokuMX来说没什么大不了的.

另外,对于TokoMX的MongoDB,我们可以通过某些命令限制RAM的使用.

对于我的web项目,我想决定我要使用哪个数据库,我不想稍后更改.我的数据库服务器的RAM现在不超过500MB,它由NodeJS服务器同时使用.所以两者都坐在一台服务器上.

在该服务器上,我有1个Nodejs Server和2个Database实例在运行.在此我将TokuMX和ArangoDb与linux中的TOP命令进行比较以检查RAM的使用情况.两个数据集只有一个很小的集合用于测试.并且通过Linux中的TOP命令对我说:ArangoDB:RES:128 MByte在使用,而对于TokuMX它只说9 MB(!!)Res意味着:实际的,真正使用的物理RAM我发现了.所以,差异已经很大了......谢谢和许多问候.虚拟RAM的使用也是非常不同的.arangodb的5 Gb.tokumx只有300 MB.

fce*_*ler 5

ArangoDB是一个数据库加上一个API服务器.它使用V8来扩展数据库的功能并定义新的API.在我的Mac上的默认配置中,它使用3个调度程序线程和5个V8线程.这使居民人数达到81M.将调度程序设置为1(通常足够)可将此值减少到80M.将V8实例设置为两个

./bin/arangod -c etc/relative/arangod.conf testbase3 --scheduler.threads 1 --server.threads 2
Run Code Online (Sandbox Code Playgroud)

将此值降低至34M,将其设置为1可将其降低至24M.因此,据推测数据库本身使用的不到14M.

如果数据和索引变得太大,任何大多数内存数据库(无论是mongodb还是arangodb或redis)都会降低性能.如果您的索引仍然适合内存并且您的工作数据集足够小,那么可能没问题.但是,如果您的工作集太大,您的服务器将开始交换,性能将下降.这个问题将存在于任何类型的主要内存数据库中,如ArangoDB和MongoDB.

另外一个问题:是否可以在一个ArangoDB实例上使用两个不同的数据库?只需启动一台带有两个数据库的服务器,内存效率就会更高.