Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

store/proxy: Deduplicate chunks on StoreAPI level. Recommend chunk sorting for StoreAPI. #2603

Merged
merged 3 commits into from May 18, 2020

Conversation

bwplotka
Copy link
Member

@bwplotka bwplotka commented May 13, 2020

Blocked by: #2548

Partially fixes: #2303

It should make certain calls where we have overlapped data from StoreAPIs much faster and more efficient.

Changes:

  • Cases like overlapped data from store and sidecar and 1:1 duplicates are now optimized by removal of exact duplicates as soon as it's possible, on proxy level (fanout receive). This case was highly visible on GitLab repro data and exists in most of the Thanos setups. cc @SuperQ
  • Also this adds logic for merging the same series together on proxy level instead of select. This allows for better dedup efficiency.

Signed-off-by: Bartlomiej Plotka bwplotka@gmail.com

@bwplotka bwplotka changed the title Deduplicate chunk dups on proxy StoreAPI level. Recommend chunk sorting for StoreAPI. proxy: Deduplicate chunk 1:1 dups on StoreAPI level. Recommend chunk sorting for StoreAPI. May 13, 2020
@bwplotka bwplotka force-pushed the issue2303-dedup-same-chunks branch from 973ad6a to 8717698 Compare May 13, 2020 19:15
@bwplotka bwplotka changed the title proxy: Deduplicate chunk 1:1 dups on StoreAPI level. Recommend chunk sorting for StoreAPI. store/proxy: Deduplicate chunks on StoreAPI level. Recommend chunk sorting for StoreAPI. May 13, 2020
@bwplotka bwplotka force-pushed the issue2303-dedup-same-chunks branch 2 times, most recently from 715a3ed to 4f3f53d Compare May 13, 2020 20:29
@bwplotka
Copy link
Member Author

As expected there is some overhead of this. 3x CPU 1.5x Mem allocs. Overhead was expected but maybe not that significant.

NOTE: Dataset does not have ANY duplicates, so we do in this function MORE, to do later, less (:

name                                       old time/op    new time/op    delta
MergedSeriesSet/series=100,blocks=1-12        377µs ± 0%     428µs ± 0%   +13.52%
MergedSeriesSet/series=100,blocks=2-12        712µs ± 0%    3498µs ± 0%  +391.34%
MergedSeriesSet/series=100,blocks=4-12       1.46ms ± 0%    7.34ms ± 0%  +402.86%
MergedSeriesSet/series=100,blocks=8-12       3.08ms ± 0%   16.33ms ± 0%  +429.53%
MergedSeriesSet/series=100,blocks=16-12      6.31ms ± 0%   35.49ms ± 0%  +462.51%
MergedSeriesSet/series=100,blocks=32-12      13.3ms ± 0%    66.4ms ± 0%  +398.16%
MergedSeriesSet/series=1000,blocks=1-12      3.26ms ± 0%    3.40ms ± 0%    +4.33%
MergedSeriesSet/series=1000,blocks=2-12      8.12ms ± 0%   24.54ms ± 0%  +202.20%
MergedSeriesSet/series=1000,blocks=4-12      18.4ms ± 0%    68.1ms ± 0%  +270.21%
MergedSeriesSet/series=1000,blocks=8-12      37.7ms ± 0%   146.3ms ± 0%  +287.73%
MergedSeriesSet/series=1000,blocks=16-12     80.3ms ± 0%   301.1ms ± 0%  +274.88%
MergedSeriesSet/series=1000,blocks=32-12      155ms ± 0%     609ms ± 0%  +293.73%
MergedSeriesSet/series=10000,blocks=1-12     38.8ms ± 0%    34.5ms ± 0%   -11.14%
MergedSeriesSet/series=10000,blocks=2-12     87.6ms ± 0%   234.8ms ± 0%  +168.05%
MergedSeriesSet/series=10000,blocks=4-12      172ms ± 0%     607ms ± 0%  +253.76%
MergedSeriesSet/series=10000,blocks=8-12      419ms ± 0%    1377ms ± 0%  +228.45%
MergedSeriesSet/series=10000,blocks=16-12     821ms ± 0%    2849ms ± 0%  +247.14%
MergedSeriesSet/series=10000,blocks=32-12     1.83s ± 0%     5.89s ± 0%  +221.61%
MergedSeriesSet/series=20000,blocks=1-12      100ms ± 0%      69ms ± 0%   -31.37%
MergedSeriesSet/series=20000,blocks=2-12      199ms ± 0%     463ms ± 0%  +132.60%
MergedSeriesSet/series=20000,blocks=4-12      435ms ± 0%    1226ms ± 0%  +181.92%
MergedSeriesSet/series=20000,blocks=8-12      830ms ± 0%    2717ms ± 0%  +227.25%
MergedSeriesSet/series=20000,blocks=16-12     1.72s ± 0%     5.79s ± 0%  +236.17%
MergedSeriesSet/series=20000,blocks=32-12     3.41s ± 0%    11.81s ± 0%  +246.02%

name                                       old alloc/op   new alloc/op   delta
MergedSeriesSet/series=100,blocks=1-12        238kB ± 0%     238kB ± 0%    +0.00%
MergedSeriesSet/series=100,blocks=2-12        501kB ± 0%     708kB ± 0%   +41.25%
MergedSeriesSet/series=100,blocks=4-12       1.05MB ± 0%    1.65MB ± 0%   +56.43%
MergedSeriesSet/series=100,blocks=8-12       2.21MB ± 0%    3.53MB ± 0%   +59.71%
MergedSeriesSet/series=100,blocks=16-12      4.62MB ± 0%    7.29MB ± 0%   +57.69%
MergedSeriesSet/series=100,blocks=32-12      9.65MB ± 0%   14.80MB ± 0%   +53.35%
MergedSeriesSet/series=1000,blocks=1-12      2.35MB ± 0%    2.35MB ± 0%    +0.00%
MergedSeriesSet/series=1000,blocks=2-12      4.96MB ± 0%    7.02MB ± 0%   +41.72%
MergedSeriesSet/series=1000,blocks=4-12      10.4MB ± 0%    16.4MB ± 0%   +57.00%
MergedSeriesSet/series=1000,blocks=8-12      21.9MB ± 0%    35.0MB ± 0%   +60.24%
MergedSeriesSet/series=1000,blocks=16-12     45.8MB ± 0%    72.4MB ± 0%   +58.13%
MergedSeriesSet/series=1000,blocks=32-12     95.7MB ± 0%   147.1MB ± 0%   +53.78%
MergedSeriesSet/series=10000,blocks=1-12     25.0MB ± 0%    25.0MB ± 0%    +0.00%
MergedSeriesSet/series=10000,blocks=2-12     52.6MB ± 0%    73.3MB ± 0%   +39.21%
MergedSeriesSet/series=10000,blocks=4-12      110MB ± 0%     170MB ± 0%   +53.77%
MergedSeriesSet/series=10000,blocks=8-12      231MB ± 0%     363MB ± 0%   +56.99%
MergedSeriesSet/series=10000,blocks=16-12     483MB ± 0%     749MB ± 0%   +55.13%
MergedSeriesSet/series=10000,blocks=32-12    1.01GB ± 0%    1.52GB ± 0%   +51.12%
MergedSeriesSet/series=20000,blocks=1-12     50.2MB ± 0%    50.2MB ± 0%    -0.00%
MergedSeriesSet/series=20000,blocks=2-12      106MB ± 0%     147MB ± 0%   +39.11%
MergedSeriesSet/series=20000,blocks=4-12      221MB ± 0%     340MB ± 0%   +53.64%
MergedSeriesSet/series=20000,blocks=8-12      463MB ± 0%     727MB ± 0%   +56.86%
MergedSeriesSet/series=20000,blocks=16-12     967MB ± 0%    1499MB ± 0%   +55.02%
MergedSeriesSet/series=20000,blocks=32-12    2.02GB ± 0%    3.05GB ± 0%   +51.02%

name                                       old allocs/op  new allocs/op  delta
MergedSeriesSet/series=100,blocks=1-12        2.11k ± 0%     2.11k ± 0%     0.00%
MergedSeriesSet/series=100,blocks=2-12        4.31k ± 0%    11.41k ± 0%  +164.62%
MergedSeriesSet/series=100,blocks=4-12        8.72k ± 0%    30.02k ± 0%  +244.28%
MergedSeriesSet/series=100,blocks=8-12        17.5k ± 0%     67.2k ± 0%  +283.49%
MergedSeriesSet/series=100,blocks=16-12       35.2k ± 0%    141.7k ± 0%  +302.97%
MergedSeriesSet/series=100,blocks=32-12       70.4k ± 0%    290.5k ± 0%  +312.64%
MergedSeriesSet/series=1000,blocks=1-12       20.9k ± 0%     20.9k ± 0%     0.00%
MergedSeriesSet/series=1000,blocks=2-12       42.9k ± 0%    113.9k ± 0%  +165.56%
MergedSeriesSet/series=1000,blocks=4-12       86.8k ± 0%    299.8k ± 0%  +245.49%
MergedSeriesSet/series=1000,blocks=8-12        175k ± 0%      672k ± 0%  +284.76%
MergedSeriesSet/series=1000,blocks=16-12       350k ± 0%     1415k ± 0%  +304.23%
MergedSeriesSet/series=1000,blocks=32-12       701k ± 0%     2902k ± 0%  +313.93%
MergedSeriesSet/series=10000,blocks=1-12       209k ± 0%      209k ± 0%     0.00%
MergedSeriesSet/series=10000,blocks=2-12       428k ± 0%     1139k ± 0%  +165.70%
MergedSeriesSet/series=10000,blocks=4-12       867k ± 0%     2997k ± 0%  +245.69%
MergedSeriesSet/series=10000,blocks=8-12      1.74M ± 0%     6.71M ± 0%  +284.99%
MergedSeriesSet/series=10000,blocks=16-12     3.50M ± 0%    14.15M ± 0%  +304.47%
MergedSeriesSet/series=10000,blocks=32-12     7.01M ± 0%    29.02M ± 0%  +314.17%
MergedSeriesSet/series=20000,blocks=1-12       418k ± 0%      418k ± 0%     0.00%
MergedSeriesSet/series=20000,blocks=2-12       857k ± 0%     2277k ± 0%  +165.74%
MergedSeriesSet/series=20000,blocks=4-12      1.73M ± 0%     5.99M ± 0%  +245.74%
MergedSeriesSet/series=20000,blocks=8-12      3.49M ± 0%    13.43M ± 0%  +285.05%
MergedSeriesSet/series=20000,blocks=16-12     6.99M ± 0%    28.29M ± 0%  +304.54%
MergedSeriesSet/series=20000,blocks=32-12     14.0M ± 0%     58.0M ± 0%  +314.24%

@bwplotka
Copy link
Member Author

Most of the mem comes from string comparison and marshalling... I guess we could do better 🤔

image

@brancz
Copy link
Member

brancz commented May 14, 2020

I think the strategy seems sane, but could we add a couple of benchmarks that prove the theory that this does indeed make the typical setup faster?

@bwplotka
Copy link
Member Author

Ok, I know what's wrong (:

image

Looks like text comparison sucks.

…ng for StoreAPI.

Also: Merge same series together on proxy level instead select. This allows better dedup efficiency.

Partially fixes: #2303

Cases like overlapped data from store and sidecar and 1:1 duplicates are optimized as soon as it's possible.
This case was highly visible on GitLab repro data and exists in most of Thanos setup.

Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
@bwplotka bwplotka force-pushed the issue2303-dedup-same-chunks branch from 4f3f53d to da3c83e Compare May 15, 2020 13:57
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
@bwplotka bwplotka force-pushed the issue2303-dedup-same-chunks branch from da3c83e to f6004ab Compare May 15, 2020 14:25
@bwplotka
Copy link
Member Author

bwplotka commented May 16, 2020

Ok I optimized a lot and I think it's good to go. I can think of more optimizations, but it looks good.

benchstat -delta-test none _dev/mergesieres_set.out _dev/mergesieres_set3.out
name                                       old time/op    new time/op    delta
MergedSeriesSet/series=100,blocks=1-12        377µs ± 0%     398µs ± 0%    +5.61%
MergedSeriesSet/series=100,blocks=2-12        712µs ± 0%    1262µs ± 0%   +77.28%
MergedSeriesSet/series=100,blocks=4-12       1.46ms ± 0%    2.92ms ± 0%  +100.01%
MergedSeriesSet/series=100,blocks=8-12       3.08ms ± 0%    6.44ms ± 0%  +108.71%
MergedSeriesSet/series=100,blocks=16-12      6.31ms ± 0%   12.69ms ± 0%  +101.19%
MergedSeriesSet/series=100,blocks=32-12      13.3ms ± 0%    19.1ms ± 0%   +43.00%
MergedSeriesSet/series=1000,blocks=1-12      3.26ms ± 0%    4.53ms ± 0%   +39.15%
MergedSeriesSet/series=1000,blocks=2-12      8.12ms ± 0%   11.32ms ± 0%   +39.45%
MergedSeriesSet/series=1000,blocks=4-12      18.4ms ± 0%    19.5ms ± 0%    +5.94%
MergedSeriesSet/series=1000,blocks=8-12      37.7ms ± 0%    40.4ms ± 0%    +7.13%
MergedSeriesSet/series=1000,blocks=16-12     80.3ms ± 0%    83.4ms ± 0%    +3.87%
MergedSeriesSet/series=1000,blocks=32-12      155ms ± 0%     172ms ± 0%   +11.13%
MergedSeriesSet/series=10000,blocks=1-12     38.8ms ± 0%    27.2ms ± 0%   -29.93%
MergedSeriesSet/series=10000,blocks=2-12     87.6ms ± 0%    83.6ms ± 0%    -4.54%
MergedSeriesSet/series=10000,blocks=4-12      172ms ± 0%     202ms ± 0%   +17.69%
MergedSeriesSet/series=10000,blocks=8-12      419ms ± 0%     441ms ± 0%    +5.21%
MergedSeriesSet/series=10000,blocks=16-12     821ms ± 0%     891ms ± 0%    +8.54%
MergedSeriesSet/series=10000,blocks=32-12     1.83s ± 0%     1.80s ± 0%    -1.62%
MergedSeriesSet/series=20000,blocks=1-12      100ms ± 0%      56ms ± 0%   -44.11%
MergedSeriesSet/series=20000,blocks=2-12      199ms ± 0%     168ms ± 0%   -15.49%
MergedSeriesSet/series=20000,blocks=4-12      435ms ± 0%     395ms ± 0%    -9.11%
MergedSeriesSet/series=20000,blocks=8-12      830ms ± 0%     860ms ± 0%    +3.57%
MergedSeriesSet/series=20000,blocks=16-12     1.72s ± 0%     1.78s ± 0%    +3.29%
MergedSeriesSet/series=20000,blocks=32-12     3.41s ± 0%     3.61s ± 0%    +5.82%

name                                       old alloc/op   new alloc/op   delta
MergedSeriesSet/series=100,blocks=1-12        238kB ± 0%     238kB ± 0%     0.00%
MergedSeriesSet/series=100,blocks=2-12        501kB ± 0%     568kB ± 0%   +13.41%
MergedSeriesSet/series=100,blocks=4-12       1.05MB ± 0%    1.23MB ± 0%   +16.71%
MergedSeriesSet/series=100,blocks=8-12       2.21MB ± 0%    2.55MB ± 0%   +15.50%
MergedSeriesSet/series=100,blocks=16-12      4.62MB ± 0%    5.19MB ± 0%   +12.39%
MergedSeriesSet/series=100,blocks=32-12      9.65MB ± 0%   10.48MB ± 0%    +8.59%
MergedSeriesSet/series=1000,blocks=1-12      2.35MB ± 0%    2.35MB ± 0%     0.00%
MergedSeriesSet/series=1000,blocks=2-12      4.96MB ± 0%    5.63MB ± 0%   +13.56%
MergedSeriesSet/series=1000,blocks=4-12      10.4MB ± 0%    12.2MB ± 0%   +16.89%
MergedSeriesSet/series=1000,blocks=8-12      21.9MB ± 0%    25.3MB ± 0%   +15.66%
MergedSeriesSet/series=1000,blocks=16-12     45.8MB ± 0%    51.5MB ± 0%   +12.51%
MergedSeriesSet/series=1000,blocks=32-12     95.7MB ± 0%   104.0MB ± 0%    +8.66%
MergedSeriesSet/series=10000,blocks=1-12     25.0MB ± 0%    25.0MB ± 0%    -0.00%
MergedSeriesSet/series=10000,blocks=2-12     52.6MB ± 0%    59.4MB ± 0%   +12.76%
MergedSeriesSet/series=10000,blocks=4-12      110MB ± 0%     128MB ± 0%   +15.94%
MergedSeriesSet/series=10000,blocks=8-12      231MB ± 0%     265MB ± 0%   +14.82%
MergedSeriesSet/series=10000,blocks=16-12     483MB ± 0%     540MB ± 0%   +11.87%
MergedSeriesSet/series=10000,blocks=32-12    1.01GB ± 0%    1.09GB ± 0%    +8.24%
MergedSeriesSet/series=20000,blocks=1-12     50.2MB ± 0%    50.2MB ± 0%    -0.00%
MergedSeriesSet/series=20000,blocks=2-12      106MB ± 0%     119MB ± 0%   +12.73%
MergedSeriesSet/series=20000,blocks=4-12      221MB ± 0%     257MB ± 0%   +15.90%
MergedSeriesSet/series=20000,blocks=8-12      463MB ± 0%     532MB ± 0%   +14.79%
MergedSeriesSet/series=20000,blocks=16-12     967MB ± 0%    1082MB ± 0%   +11.84%
MergedSeriesSet/series=20000,blocks=32-12    2.02GB ± 0%    2.18GB ± 0%    +8.22%

name                                       old allocs/op  new allocs/op  delta
MergedSeriesSet/series=100,blocks=1-12        2.11k ± 0%     2.11k ± 0%     0.00%
MergedSeriesSet/series=100,blocks=2-12        4.31k ± 0%     7.31k ± 0%   +69.56%
MergedSeriesSet/series=100,blocks=4-12        8.72k ± 0%    17.72k ± 0%  +103.21%
MergedSeriesSet/series=100,blocks=8-12        17.5k ± 0%     38.5k ± 0%  +119.77%
MergedSeriesSet/series=100,blocks=16-12       35.2k ± 0%     80.2k ± 0%  +127.99%
MergedSeriesSet/series=100,blocks=32-12       70.4k ± 0%    163.4k ± 0%  +132.09%
MergedSeriesSet/series=1000,blocks=1-12       20.9k ± 0%     20.9k ± 0%     0.00%
MergedSeriesSet/series=1000,blocks=2-12       42.9k ± 0%     72.9k ± 0%   +69.95%
MergedSeriesSet/series=1000,blocks=4-12       86.8k ± 0%    176.8k ± 0%  +103.72%
MergedSeriesSet/series=1000,blocks=8-12        175k ± 0%      385k ± 0%  +120.32%
MergedSeriesSet/series=1000,blocks=16-12       350k ± 0%      800k ± 0%  +128.55%
MergedSeriesSet/series=1000,blocks=32-12       701k ± 0%     1631k ± 0%  +132.64%
MergedSeriesSet/series=10000,blocks=1-12       209k ± 0%      209k ± 0%     0.00%
MergedSeriesSet/series=10000,blocks=2-12       428k ± 0%      728k ± 0%   +70.01%
MergedSeriesSet/series=10000,blocks=4-12       867k ± 0%     1767k ± 0%  +103.81%
MergedSeriesSet/series=10000,blocks=8-12      1.74M ± 0%     3.84M ± 0%  +120.42%
MergedSeriesSet/series=10000,blocks=16-12     3.50M ± 0%     8.00M ± 0%  +128.65%
MergedSeriesSet/series=10000,blocks=32-12     7.01M ± 0%    16.31M ± 0%  +132.75%
MergedSeriesSet/series=20000,blocks=1-12       418k ± 0%      418k ± 0%     0.00%
MergedSeriesSet/series=20000,blocks=2-12       857k ± 0%     1457k ± 0%   +70.03%
MergedSeriesSet/series=20000,blocks=4-12      1.73M ± 0%     3.53M ± 0%  +103.83%
MergedSeriesSet/series=20000,blocks=8-12      3.49M ± 0%     7.69M ± 0%  +120.44%
MergedSeriesSet/series=20000,blocks=16-12     6.99M ± 0%    15.99M ± 0%  +128.68%
MergedSeriesSet/series=20000,blocks=32-12     14.0M ± 0%     32.6M ± 0%  +132.78%

NOTE: I just noticed this is the full overlapping benchmark. So it means 100% chunks in those "blocks" are overlapping. That's why comparison was so crucial (: This is normally a rare operation though. I extended tests with non overlap as well.

Also this version is with proto.Equals

@bwplotka bwplotka force-pushed the issue2303-dedup-same-chunks branch from 34d9706 to 0ebf5e1 Compare May 16, 2020 11:30
@bwplotka
Copy link
Member Author

bwplotka commented May 16, 2020

Ok last version uses LESS resources and is FASTER and adds MORE features =D

This is compared to the code WITHOUT this PR.

benchstat -delta-test none _dev/mergesieres_set.out _dev/mergesieres_set4.out
name                                       old time/op    new time/op    delta
MergedSeriesSet/series=100,blocks=1-12        377µs ± 0%     562µs ± 0%  +48.92%
MergedSeriesSet/series=100,blocks=2-12        712µs ± 0%     971µs ± 0%  +36.46%
MergedSeriesSet/series=100,blocks=4-12       1.46ms ± 0%    1.80ms ± 0%  +23.26%
MergedSeriesSet/series=100,blocks=8-12       3.08ms ± 0%    3.10ms ± 0%   +0.58%
MergedSeriesSet/series=100,blocks=16-12      6.31ms ± 0%    5.89ms ± 0%   -6.67%
MergedSeriesSet/series=100,blocks=32-12      13.3ms ± 0%    10.3ms ± 0%  -22.38%
MergedSeriesSet/series=1000,blocks=1-12      3.26ms ± 0%    2.82ms ± 0%  -13.31%
MergedSeriesSet/series=1000,blocks=2-12      8.12ms ± 0%    5.87ms ± 0%  -27.74%
MergedSeriesSet/series=1000,blocks=4-12      18.4ms ± 0%    11.8ms ± 0%  -35.74%
MergedSeriesSet/series=1000,blocks=8-12      37.7ms ± 0%    24.0ms ± 0%  -36.40%
MergedSeriesSet/series=1000,blocks=16-12     80.3ms ± 0%    49.8ms ± 0%  -37.96%
MergedSeriesSet/series=1000,blocks=32-12      155ms ± 0%     100ms ± 0%  -35.04%
MergedSeriesSet/series=10000,blocks=1-12     38.8ms ± 0%    26.6ms ± 0%  -31.30%
MergedSeriesSet/series=10000,blocks=2-12     87.6ms ± 0%    58.5ms ± 0%  -33.26%
MergedSeriesSet/series=10000,blocks=4-12      172ms ± 0%     124ms ± 0%  -27.96%
MergedSeriesSet/series=10000,blocks=8-12      419ms ± 0%     258ms ± 0%  -38.54%
MergedSeriesSet/series=10000,blocks=16-12     821ms ± 0%     536ms ± 0%  -34.69%
MergedSeriesSet/series=10000,blocks=32-12     1.83s ± 0%     1.09s ± 0%  -40.52%
MergedSeriesSet/series=20000,blocks=1-12      100ms ± 0%      55ms ± 0%  -45.65%
MergedSeriesSet/series=20000,blocks=2-12      199ms ± 0%     120ms ± 0%  -39.70%
MergedSeriesSet/series=20000,blocks=4-12      435ms ± 0%     255ms ± 0%  -41.33%
MergedSeriesSet/series=20000,blocks=8-12      830ms ± 0%     527ms ± 0%  -36.48%
MergedSeriesSet/series=20000,blocks=16-12     1.72s ± 0%     1.09s ± 0%  -36.85%
MergedSeriesSet/series=20000,blocks=32-12     3.41s ± 0%     2.20s ± 0%  -35.66%

name                                       old alloc/op   new alloc/op   delta
MergedSeriesSet/series=100,blocks=1-12        238kB ± 0%     238kB ± 0%   +0.00%
MergedSeriesSet/series=100,blocks=2-12        501kB ± 0%     501kB ± 0%   +0.00%
MergedSeriesSet/series=100,blocks=4-12       1.05MB ± 0%    1.03MB ± 0%   -2.43%
MergedSeriesSet/series=100,blocks=8-12       2.21MB ± 0%    2.08MB ± 0%   -5.80%
MergedSeriesSet/series=100,blocks=16-12      4.62MB ± 0%    4.19MB ± 0%   -9.42%
MergedSeriesSet/series=100,blocks=32-12      9.65MB ± 0%    8.40MB ± 0%  -13.00%
MergedSeriesSet/series=1000,blocks=1-12      2.35MB ± 0%    2.35MB ± 0%   -0.00%
MergedSeriesSet/series=1000,blocks=2-12      4.96MB ± 0%    4.96MB ± 0%   -0.00%
MergedSeriesSet/series=1000,blocks=4-12      10.4MB ± 0%    10.2MB ± 0%   -2.46%
MergedSeriesSet/series=1000,blocks=8-12      21.9MB ± 0%    20.6MB ± 0%   -5.85%
MergedSeriesSet/series=1000,blocks=16-12     45.8MB ± 0%    41.4MB ± 0%   -9.50%
MergedSeriesSet/series=1000,blocks=32-12     95.7MB ± 0%    83.1MB ± 0%  -13.11%
MergedSeriesSet/series=10000,blocks=1-12     25.0MB ± 0%    25.0MB ± 0%    0.00%
MergedSeriesSet/series=10000,blocks=2-12     52.6MB ± 0%    52.6MB ± 0%   +0.00%
MergedSeriesSet/series=10000,blocks=4-12      110MB ± 0%     108MB ± 0%   -2.32%
MergedSeriesSet/series=10000,blocks=8-12      231MB ± 0%     218MB ± 0%   -5.54%
MergedSeriesSet/series=10000,blocks=16-12     483MB ± 0%     439MB ± 0%   -9.02%
MergedSeriesSet/series=10000,blocks=32-12    1.01GB ± 0%    0.88GB ± 0%  -12.47%
MergedSeriesSet/series=20000,blocks=1-12     50.2MB ± 0%    50.2MB ± 0%   -0.00%
MergedSeriesSet/series=20000,blocks=2-12      106MB ± 0%     106MB ± 0%   +0.00%
MergedSeriesSet/series=20000,blocks=4-12      221MB ± 0%     216MB ± 0%   -2.31%
MergedSeriesSet/series=20000,blocks=8-12      463MB ± 0%     438MB ± 0%   -5.53%
MergedSeriesSet/series=20000,blocks=16-12     967MB ± 0%     880MB ± 0%   -9.00%
MergedSeriesSet/series=20000,blocks=32-12    2.02GB ± 0%    1.77GB ± 0%  -12.44%

name                                       old allocs/op  new allocs/op  delta
MergedSeriesSet/series=100,blocks=1-12        2.11k ± 0%     2.11k ± 0%    0.00%
MergedSeriesSet/series=100,blocks=2-12        4.31k ± 0%     4.31k ± 0%    0.00%
MergedSeriesSet/series=100,blocks=4-12        8.72k ± 0%     8.72k ± 0%    0.00%
MergedSeriesSet/series=100,blocks=8-12        17.5k ± 0%     17.5k ± 0%    0.00%
MergedSeriesSet/series=100,blocks=16-12       35.2k ± 0%     35.2k ± 0%    0.00%
MergedSeriesSet/series=100,blocks=32-12       70.4k ± 0%     70.4k ± 0%    0.00%
MergedSeriesSet/series=1000,blocks=1-12       20.9k ± 0%     20.9k ± 0%    0.00%
MergedSeriesSet/series=1000,blocks=2-12       42.9k ± 0%     42.9k ± 0%    0.00%
MergedSeriesSet/series=1000,blocks=4-12       86.8k ± 0%     86.8k ± 0%    0.00%
MergedSeriesSet/series=1000,blocks=8-12        175k ± 0%      175k ± 0%    0.00%
MergedSeriesSet/series=1000,blocks=16-12       350k ± 0%      350k ± 0%    0.00%
MergedSeriesSet/series=1000,blocks=32-12       701k ± 0%      701k ± 0%    0.00%
MergedSeriesSet/series=10000,blocks=1-12       209k ± 0%      209k ± 0%    0.00%
MergedSeriesSet/series=10000,blocks=2-12       428k ± 0%      428k ± 0%    0.00%
MergedSeriesSet/series=10000,blocks=4-12       867k ± 0%      867k ± 0%    0.00%
MergedSeriesSet/series=10000,blocks=8-12      1.74M ± 0%     1.74M ± 0%    0.00%
MergedSeriesSet/series=10000,blocks=16-12     3.50M ± 0%     3.50M ± 0%    0.00%
MergedSeriesSet/series=10000,blocks=32-12     7.01M ± 0%     7.01M ± 0%    0.00%
MergedSeriesSet/series=20000,blocks=1-12       418k ± 0%      418k ± 0%    0.00%
MergedSeriesSet/series=20000,blocks=2-12       857k ± 0%      857k ± 0%    0.00%
MergedSeriesSet/series=20000,blocks=4-12      1.73M ± 0%     1.73M ± 0%    0.00%
MergedSeriesSet/series=20000,blocks=8-12      3.49M ± 0%     3.49M ± 0%    0.00%
MergedSeriesSet/series=20000,blocks=16-12     6.99M ± 0%     6.99M ± 0%    0.00%
MergedSeriesSet/series=20000,blocks=32-12     14.0M ± 0%     14.0M ± 0%    0.00%

Considering this done!

Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
@bwplotka bwplotka force-pushed the issue2303-dedup-same-chunks branch from 0ebf5e1 to b6579bb Compare May 16, 2020 14:42
@brancz brancz merged commit 53e69bd into issue2147-fix-actual May 18, 2020
@brancz brancz deleted the issue2303-dedup-same-chunks branch May 18, 2020 07:07
@bwplotka
Copy link
Member Author

bwplotka commented Jun 3, 2020

We got hit by my chaining practice again - it was not merged to master after all ):

We need some bot helping or I can try modifying titles or something

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants