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

optimize: lazily load branch transactions and task scheduling #4086

Merged
merged 95 commits into from
Feb 14, 2022

Conversation

funky-eyes
Copy link
Contributor

@funky-eyes funky-eyes commented Oct 17, 2021

  • I have registered the PR changes.

Ⅰ. Describe what this PR did

xa模式对同一条数据增加库存 100并发 150秒
优化版db 模式

Concurrency Level:      100
Time taken for tests:   150.001 seconds
Complete requests:      8577
Failed requests:        0
Total transferred:      934893 bytes
HTML transferred:       34308 bytes
Requests per second:    57.18 [#/sec] (mean)
Time per request:       1748.872 [ms] (mean)
Time per request:       17.489 [ms] (mean, across all concurrent requests)
Transfer rate:          6.09 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.3      0       2
Processing:    82 1737 145.3   1732    3441
Waiting:       53 1737 145.3   1731    3441
Total:         82 1737 145.3   1732    3442

Percentage of the requests served within a certain time (ms)
  50%   1732
  66%   1765
  75%   1803
  80%   1830
  90%   1876
  95%   1928
  98%   2000
  99%   2023
 100%   3442 (longest request)

redis 模式


Concurrency Level:      100
Time taken for tests:   150.021 seconds
Complete requests:      5855
Failed requests:        0
Total transferred:      638195 bytes
HTML transferred:       23420 bytes
Requests per second:    39.03 [#/sec] (mean)
Time per request:       2562.264 [ms] (mean)
Time per request:       25.623 [ms] (mean, across all concurrent requests)
Transfer rate:          4.15 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.4      0       1
Processing:    80 2543 398.0   2712    3346
Waiting:       51 2542 398.0   2711    3346
Total:         81 2543 398.0   2712    3346

Percentage of the requests served within a certain time (ms)
  50%   2712
  66%   2757
  75%   2781
  80%   2801
  90%   2899
  95%   3017
  98%   3116
  99%   3182
 100%   3346 (longest request)

原版redis模式

Concurrency Level:      100
Time taken for tests:   150.023 seconds
Complete requests:      5306
Failed requests:        0
Total transferred:      578354 bytes
HTML transferred:       21224 bytes
Requests per second:    35.37 [#/sec] (mean)
Time per request:       2827.430 [ms] (mean)
Time per request:       28.274 [ms] (mean, across all concurrent requests)
Transfer rate:          3.76 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.4      0       2
Processing:    73 2796 432.9   2928    3465
Waiting:       43 2795 432.9   2927    3465
Total:         74 2796 433.0   2928    3466

Percentage of the requests served within a certain time (ms)
  50%   2928
  66%   2965
  75%   2999
  80%   3019
  90%   3140
  95%   3225
  98%   3332
  99%   3408
 100%   3466 (longest request)

原版db模式

Concurrency Level:      100
Time taken for tests:   150.000 seconds
Complete requests:      8598
Failed requests:        0
Total transferred:      937182 bytes
HTML transferred:       34392 bytes
Requests per second:    57.32 [#/sec] (mean)
Time per request:       1744.594 [ms] (mean)
Time per request:       17.446 [ms] (mean, across all concurrent requests)
Transfer rate:          6.10 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.3      0       2
Processing:    87 1733 131.1   1735    2166
Waiting:       59 1733 131.1   1735    2166
Total:         87 1733 131.1   1735    2166

Percentage of the requests served within a certain time (ms)
  50%   1735
  66%   1754
  75%   1773
  80%   1795
  90%   1850
  95%   1913
  98%   1982
  99%   2034
 100%   2166 (longest request)

Ⅱ. Does this pull request fix one issue?

fixes #4337

Ⅲ. Why don't you add test cases (unit test/integration test)?

Ⅳ. Describe how to verify it

Ⅴ. Special notes for reviews

@codecov-commenter
Copy link

codecov-commenter commented Oct 17, 2021

Codecov Report

Merging #4086 (dd8d188) into develop (f1be649) will increase coverage by 0.07%.
The diff coverage is 79.76%.

Impacted file tree graph

@@              Coverage Diff              @@
##             develop    #4086      +/-   ##
=============================================
+ Coverage      48.85%   48.93%   +0.07%     
- Complexity      3935     3952      +17     
=============================================
  Files            733      733              
  Lines          24900    24968      +68     
  Branches        3068     3088      +20     
=============================================
+ Hits           12166    12219      +53     
- Misses         11452    11454       +2     
- Partials        1282     1295      +13     
Impacted Files Coverage Δ
...c/main/java/io/seata/common/ConfigurationKeys.java 0.00% <ø> (ø)
...ommon/src/main/java/io/seata/common/Constants.java 100.00% <ø> (ø)
...er/console/controller/BranchSessionController.java 100.00% <ø> (ø)
...in/java/io/seata/server/session/BranchSession.java 79.16% <ø> (-0.15%) ⬇️
...ver/storage/db/lock/DataBaseDistributedLocker.java 0.86% <0.00%> (ø)
.../server/store/AbstractTransactionStoreManager.java 33.33% <0.00%> (-6.67%) ⬇️
...io/seata/server/store/TransactionStoreManager.java 86.66% <ø> (ø)
...ava/io/seata/server/transaction/saga/SagaCore.java 2.72% <ø> (ø)
...in/java/io/seata/server/session/SessionHolder.java 51.44% <50.00%> (-0.05%) ⬇️
...o/seata/server/storage/redis/lock/RedisLocker.java 37.43% <62.50%> (-0.14%) ⬇️
... and 17 more

@funky-eyes funky-eyes added this to the 1.5.0 milestone Oct 18, 2021
@funky-eyes funky-eyes added the module/server server module label Oct 18, 2021
@lgtm-com
Copy link

lgtm-com bot commented Jan 28, 2022

This pull request introduces 1 alert when merging e1a8386 into 54b394e - view on LGTM.com

new alerts:

  • 1 for Dereferenced variable may be null

Copy link
Contributor

@caohdgege caohdgege left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@funky-eyes funky-eyes merged commit e4ae6b7 into apache:develop Feb 14, 2022
@@ -252,15 +252,20 @@ public boolean doGlobalCommit(GlobalSession globalSession, boolean retrying) thr
LOGGER.info("Committing global transaction is NOT done, xid = {}.", globalSession.getXid());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whether this logic can be deleted ?

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

Successfully merging this pull request may close these issues.

decode data file error when server upgrade
5 participants