diff options
author | Rémi Nicole <nicole@kolabsystems.com> | 2018-07-27 13:40:03 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-07-27 13:48:03 +0200 |
commit | c741d7fbb21ff959ca4b6d4f7681aead277044b4 (patch) | |
tree | 5ba510e9d794aea0d689bde08f44fece7fc129e4 /common/resultset.cpp | |
parent | 0a9b39a1f58c1f5b1a424acbe369db520a12df42 (diff) | |
download | sink-c741d7fbb21ff959ca4b6d4f7681aead277044b4.tar.gz sink-c741d7fbb21ff959ca4b6d4f7681aead277044b4.zip |
Use Key API in ResultSet
Summary:
Depends on D14099
Notes:
- Tests pass without many modifications outside of resultset.cpp/.h
- `mGenerator` doesn't seem to be used?
Benchmarks
=========
Run benchmarks:
| Develop | D14099 | This patch |
| ---------------------------------- | ---------------------------------- | ---------------------------------- |
| Current Rss usage [kb]: 40700 | Current Rss usage [kb]: 38564 | Current Rss usage [kb]: 39112 |
| Peak Rss usage [kb]: 40700 | Peak Rss usage [kb]: 38564 | Peak Rss usage [kb]: 39112 |
| Rss growth [kb]: 15920 | Rss growth [kb]: 13352 | Rss growth [kb]: 13432 |
| Rss growth per entity [byte]: 3260 | Rss growth per entity [byte]: 2734 | Rss growth per entity [byte]: 2750 |
| Rss without db [kb]: 29736 | Rss without db [kb]: 29248 | Rss without db [kb]: 30100 |
| Percentage peak rss error: 0 | Percentage peak rss error: 0 | Percentage peak rss error: 0 |
| On disk [kb]: 10788 | On disk [kb]: 9140 | On disk [kb]: 8836 |
| Buffer size total [kb]: 898 | Buffer size total [kb]: 898 | Buffer size total [kb]: 898 |
| Write amplification: 12.0075 | Write amplification: 10.1732 | Write amplification: 9.83485 |
Test Disk Usage:
| Develop | D14099 | This patch |
| ----------------------------------- | ----------------------------------- | ----------------------------------- |
| Free pages: 412 | Free pages: 309 | Free pages: 312 |
| Total pages: 760 | Total pages: 599 | Total pages: 603 |
| Used size: 1425408 | Used size: 1187840 | Used size: 1191936 |
| Calculated key + value size: 856932 | Calculated key + value size: 702866 | Calculated key + value size: 702866 |
| Calculated total db sizes: 970752 | Calculated total db sizes: 954368 | Calculated total db sizes: 933888 |
| Main store on disk: 3112960 | Main store on disk: 2453504 | Main store on disk: 2469888 |
| Total on disk: 3293184 | Total on disk: 2633728 | Total on disk: 2650112 |
| Used size amplification: 1.66339 | Used size amplification: 1.68999 | Used size amplification: 1.69582 |
| Write amplification: 3.63268 | Write amplification: 3.49071 | Write amplification: 3.51402 |
Reviewers: cmollekopf
Reviewed By: cmollekopf
Tags: #sink
Differential Revision: https://phabricator.kde.org/D14289
Diffstat (limited to 'common/resultset.cpp')
-rw-r--r-- | common/resultset.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/common/resultset.cpp b/common/resultset.cpp index 08954c9..88110e1 100644 --- a/common/resultset.cpp +++ b/common/resultset.cpp | |||
@@ -20,6 +20,8 @@ | |||
20 | 20 | ||
21 | #include "log.h" | 21 | #include "log.h" |
22 | 22 | ||
23 | using Sink::Storage::Identifier; | ||
24 | |||
23 | ResultSet::ResultSet() : mIt(nullptr) | 25 | ResultSet::ResultSet() : mIt(nullptr) |
24 | { | 26 | { |
25 | } | 27 | } |
@@ -32,7 +34,7 @@ ResultSet::ResultSet(const IdGenerator &generator) : mIt(nullptr), mGenerator(ge | |||
32 | { | 34 | { |
33 | } | 35 | } |
34 | 36 | ||
35 | ResultSet::ResultSet(const QVector<QByteArray> &resultSet) | 37 | ResultSet::ResultSet(const QVector<Identifier> &resultSet) |
36 | : mResultSet(resultSet), | 38 | : mResultSet(resultSet), |
37 | mIt(mResultSet.constBegin()), | 39 | mIt(mResultSet.constBegin()), |
38 | mSkip([this]() { | 40 | mSkip([this]() { |
@@ -114,11 +116,11 @@ ResultSet::ReplayResult ResultSet::replaySet(int offset, int batchSize, const Ca | |||
114 | return {counter, false}; | 116 | return {counter, false}; |
115 | } | 117 | } |
116 | 118 | ||
117 | QByteArray ResultSet::id() | 119 | Identifier ResultSet::id() |
118 | { | 120 | { |
119 | if (mIt) { | 121 | if (mIt) { |
120 | if (mIt == mResultSet.constEnd()) { | 122 | if (mIt == mResultSet.constEnd()) { |
121 | return QByteArray(); | 123 | return {}; |
122 | } | 124 | } |
123 | Q_ASSERT(mIt != mResultSet.constEnd()); | 125 | Q_ASSERT(mIt != mResultSet.constEnd()); |
124 | return *mIt; | 126 | return *mIt; |