所以我正在测试一些极端的写作,10个单独的插入...简单的循环(让我们让这个主题简单一点)......我已经得到了#39;等待同步'打开收集(在这种情况下,我们需要在调用返回时100%提交)... 2台机器...我在我的主机上运行循环,我正在运行实际的单元测试并且它需要写入10k的3分钟...如果我写入我的远程机器(相同的arangoDB设置),则需要9秒...是因为它还运行本机而在本地机器上花费的时间更长测试?或者是由于arangoDB FAQ警告的驱动器的SYNC / MSYNC问题?
"从持久性的角度来看,立即同步当然更好,但这意味着为每个操作执行额外的系统调用。在具有慢同步/ msync的系统上,"
是否有设置或其他内容检查驱动器或系统以确定我的设备同步/ msync的值是什么?
感谢您的帮助!!
答案 0 :(得分:0)
首先,实际速度在很大程度上取决于您的硬盘。
例如,对于MacOSX下具有SSD的笔记本,我得到:
arangod> t = time(); for (i = 0; i < 1000; i++) db.unsync.save({ name: "Hallo " + i }); time() - t;
0.03408193588256836
arangod> t = time(); for (i = 0; i < 1000; i++) db.sync.save({ name: "Hallo " + i }); time() - t;
6.904788970947266
所以写1000份文件要快200倍。
对于在Linux下使用硬盘的桌面,我得到:
arangod> t = time(); for (i = 0; i < 1000; i++) db.unsync.save({ name: "Hallo " + i }); time() - t;
0.08486199378967285
arangod> t = time(); for (i = 0; i < 1000; i++) db.unsync.save({ name: "Hallo " + i }); time() - t;
54.90065908432007
这更糟糕。超过600。
关于本地和远程之间的区别:这听起来很奇怪。你如何访问远程机器?你使用arangosh吗?