我正在处理一些输入文件并将所获得的记录插入 Couchdb文件。 我注意到插入速度的步伐正在减少 数据库尺寸增加。

我所做的是:

  1. 从输入文件中读取数据
  2. 处理数据以获取结构化文件
  3. 将文档放在本地缓冲区中
  4. 缓冲区有1000个文档,请执行CouchDB批量插入 重复,直到输入数据已完全处理

    在这里,您有当前运行的日志:

    2012-03-15 10:15:58,716 - docs= 10000 rate=2282.38 entries/s
    2012-03-15 10:16:46,748 - docs=100000 rate=1822.76 entries/s
    2012-03-15 10:17:47,433 - docs=200000 rate=1592.01 entries/s
    2012-03-15 10:18:48,566 - docs=300000 rate=1358.32 entries/s
    2012-03-15 10:19:54,637 - docs=400000 rate=1572.55 entries/s
    2012-03-15 10:21:01,690 - docs=500000 rate=1560.41 entries/s
    2012-03-15 10:22:09,400 - docs=600000 rate=1556.22 entries/s
    2012-03-15 10:23:16,153 - docs=700000 rate=1550.21 entries/s
    2012-03-15 10:24:30,850 - docs=800000 rate=1393.61 entries/s
    2012-03-15 10:25:46,099 - docs=900000 rate=1336.83 entries/s
    2012-03-15 10:27:09,290 - docs=1000000 rate= 871.37 entries/s
    2012-03-15 10:28:31,745 - docs=1100000 rate=1256.36 entries/s
    2012-03-15 10:29:53,313 - docs=1200000 rate=1140.49 entries/s
    2012-03-15 10:31:29,207 - docs=1300000 rate=1080.79 entries/s
    2012-03-15 10:33:23,917 - docs=1400000 rate= 741.65 entries/s
    2012-03-15 10:35:45,475 - docs=1500000 rate= 567.96 entries/s
    2012-03-15 10:39:04,293 - docs=1600000 rate= 564.01 entries/s
    2012-03-15 10:42:20,160 - docs=1700000 rate= 499.29 entries/s
    2012-03-15 10:46:06,270 - docs=1800000 rate= 505.04 entries/s
    2012-03-15 10:50:24,745 - docs=1900000 rate= 402.14 entries/s
    2012-03-15 10:55:23,800 - docs=2000000 rate= 346.19 entries/s
    2012-03-15 11:02:03,217 - docs=2100000 rate= 274.59 entries/s
    2012-03-15 11:08:21,690 - docs=2200000 rate= 269.57 entries/s
    
    .

    “速率”显示剩下千文档的插入速率, 你可以看到的那样劣化很快。

    • 是正常的吗?
    • 我可以做点什么来保持高插入率吗?
    • 您是否拥有Big CouchDB数据库的经验。
    • 您希望分享的任何建议书?
有帮助吗?

解决方案

高插入率是异常的,由一切都拟合到磁盘缓存中的一切引起。随着数据库大小的增加,您最终需要从磁盘读取数据以更新Btree。更好地运行插入测试更长,图表它,然后你应该看到前面的巨大尖峰是奇怪的,而不是较低但是更少的恒定率。

从其他线程中提出了这个问题,另一个重要因素是你使用完全随机的uuid。由于CouchDB基于B +树,因此插入完全随机ID是更新的最糟糕的情况。Couchdb船用许多UUID算法,默认值,称为“顺序”返回具有非常低的碰撞机会的值,这些碰撞机会仍然足够顺序,以提供更好的插入性能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top