From 349a8d2db767baa95bf532b62d58af59fbcb9edd Mon Sep 17 00:00:00 2001 From: augurier <14434658+augurier@user.noreply.gitee.com> Date: Sun, 5 Jan 2025 13:11:52 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=B5=8B=E8=AF=95=E7=BB=93?= =?UTF-8?q?=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +++++- pics/f_bsize.png | Bin 0 -> 34643 bytes pics/f_thread.png | Bin 0 -> 28926 bytes 3 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 pics/f_bsize.png create mode 100644 pics/f_thread.png diff --git a/README.md b/README.md index ca33b16..74268a0 100644 --- a/README.md +++ b/README.md @@ -790,13 +790,17 @@ batchsize=1000下,线程数对性能的影响: 这一实验体现了leveldb写队列策略在不同情况下的优劣。而我们fielddb的请求队列策略和这个基本一致,性能使用场景具有相似性。 -2. 对于FieldDB的分析 +2. 对于FieldDB的分析 单线程 ![alt text](pics/field单.png) 双线程 ![alt text](pics/field双.png) 1) 所有涉及读取性能的:和原版leveldb相比,损耗非常少(一个必要的字段解析步骤),还是非常好的 2) 常规的写入性能:有所下降,但是由于需要支持索引功能,一些额外的开销无法避免(例如先读一遍,并发控制,一致性维护)。fillbatch的测试,基于我们合并请求和一段请求只处理一次同名key的算法,多线程性能甚至比单线程能够提高许多 +![alt text](pics/f_bsize.png) +![alt text](pics/f_thread.png) +其中单线程fillbatch差异比较明显。这里面的主要原因,一是因为leveldb本身这方面性能就非常优秀,二是因为在有索引功能的情况下,为了避免之前提到的问题,我们处理batch实际上还是需要把里面的每一条数据拆分出来,分别创建请求处理(而不是直接批量写入)。 +这也反映在batchsize图中,我们的性能上升速率不如leveldb。但同样可观的上升速率意味着,我们的请求处理算法是有一定效果的。 3) 对于创删索引:没有比较对象,但是总体可以接受 4) 对于创删索引和写并发:如果是无关的,那么还是保持了高吞吐;如果是相关的,那么不得不受限于创删索引。考虑到数据库的创删索引请求还是比较少的(不太可能出现我们测试中,不停并发创删索引和写入的情况),一定的性能牺牲可以接受 diff --git a/pics/f_bsize.png b/pics/f_bsize.png new file mode 100644 index 0000000000000000000000000000000000000000..b1e1a4ca7b1cf0cd8bbe02816d0a6341dd2c50d4 GIT binary patch literal 34643 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 T*GhPZTBsh=I{M_W>8<|-nvT@R literal 0 HcmV?d00001 diff --git a/pics/f_thread.png b/pics/f_thread.png new file mode 100644 index 0000000000000000000000000000000000000000..195f509d7761e8ce67052173e23d4eefb52205a1 GIT binary patch literal 28926 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