散装CRUD,同上



我们想处理Ditto中的大量内容。所以我的问题是:有没有一种方法可以批量创建/读取/更新/删除?我写了一个测试,更新了《同上》中的10000个功能,这花了>2分钟。我认为这主要是因为发出了10000个HTTP请求,而不是MongoDB性能的结果——批量操作会解决这个问题。

提前感谢

Thomas

Eclipse Ditto目前不支持批量更新。如果这是您的需求,我建议在Eclipse Ditto存储库中打开一个问题,在那里可以讨论这个问题。

如果你想摆脱10000次握手(每个http请求(的开销,你也可以切换协议,使用websockets或EclipseDitto的连接API。这应该已经提供了性能改进。

以下是我的结果:

REST1: 2000 things created, 0 things rejected, in 67.496 seconds -> 29.6 create/s
REST1: 2000 things' features created, 0 features rejected, in 54.492 seconds -> 36.7 features/s
REST1: 20000 things' features updated, 0 updates rejected, in 523.521 seconds -> 38.2 updates/s
REST1: 993 results of 2000 by search, in 1.788 seconds -> 555.3 results/s
REST1: 2000 things deleted, in 50.861 seconds -> 39.3 deletes/s
REST32: 2000 things created, 0 things rejected, in 22.779 seconds -> 87.8 create/s
REST32: 2000 things' features created, 0 features rejected, in 20.654 seconds -> 96.8 features/s
REST32: 20000 things' features updated, 0 updates rejected, in 187.385 seconds -> 106.7 updates/s
REST32: 968 results of 2000 by search, in 1.918 seconds -> 504.7 results/s
REST32: 2000 things deleted, in 19.617 seconds -> 102.0 deletes/s
WEBSOCKET: 2000 things created w websocket, in 33.082 seconds -> 60.5 create/s
WEBSOCKET: 2000 features created, in 33.119 seconds -> 60.4 creates/s
WEBSOCKET: 20000 features modified, in 263.630 seconds -> 75.9 mods/s
WEBSOCKET: 2000 things deleted w websocket, in 24.360 seconds -> 82.1 deletes/s

REST1结果来自1个线程的ThreadWorker池,REST32池有32个线程,并行触发32个请求。

最好的Thomas

最新更新