You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kvrocks.apache.org by "sryanyuan (via GitHub)" <gi...@apache.org> on 2026/01/06 07:16:59 UTC
[PR] perf(hash): use MultiGet to reduce RocksDB calls in HMSET [kvrocks]
sryanyuan opened a new pull request, #3327:
URL: https://github.com/apache/kvrocks/pull/3327
HMSET previously compared existing values by issuing a separate RocksDB Get
for each field. When the number of fields is large, this results in multiple
Get calls and extra overhead.
This change replaces multiple Get calls with a single MultiGet call, batching
the reads and improving performance for HMSET with many fields.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] perf(hash): use MultiGet to reduce RocksDB calls in HMSET [kvrocks]
Posted by "PragmaTwice (via GitHub)" <gi...@apache.org>.
PragmaTwice commented on PR #3327:
URL: https://github.com/apache/kvrocks/pull/3327#issuecomment-3713574678
Would you like to provide benchmark data about this change?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] perf(hash): use MultiGet to reduce RocksDB calls in HMSET [kvrocks]
Posted by "sryanyuan (via GitHub)" <gi...@apache.org>.
sryanyuan commented on PR #3327:
URL: https://github.com/apache/kvrocks/pull/3327#issuecomment-3713615634
> Would you like to provide benchmark data about this change?
In our production environment, benchmarks on real traffic demonstrate that batching reads with MultiGet in HMSET improves performance by approximately 30%.
Without MultiGet: setting 27,000 fields took ~101 ms
With MultiGet: setting 29,500 fields took ~76 ms
This optimisation reduces the overhead of multiple RocksDB Get calls and increases throughput for large hash updates.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] perf(hash): use MultiGet to reduce RocksDB calls in HMSET [kvrocks]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #3327:
URL: https://github.com/apache/kvrocks/pull/3327#issuecomment-3713681057
## [](https://sonarcloud.io/dashboard?id=apache_kvrocks&pullRequest=3327) **Quality Gate passed**
Issues
 [2 New issues](https://sonarcloud.io/project/issues?id=apache_kvrocks&pullRequest=3327&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)
 [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_kvrocks&pullRequest=3327&issueStatuses=ACCEPTED)
Measures
 [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_kvrocks&pullRequest=3327&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)
 [74.7% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_kvrocks&pullRequest=3327&metric=new_coverage&view=list)
 [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_kvrocks&pullRequest=3327&metric=new_duplicated_lines_density&view=list)
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_kvrocks&pullRequest=3327)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] perf(hash): use MultiGet to reduce RocksDB calls in HMSET [kvrocks]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #3327:
URL: https://github.com/apache/kvrocks/pull/3327#issuecomment-3718347002
## [](https://sonarcloud.io/dashboard?id=apache_kvrocks&pullRequest=3327) **Quality Gate passed**
Issues
 [2 New issues](https://sonarcloud.io/project/issues?id=apache_kvrocks&pullRequest=3327&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)
 [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_kvrocks&pullRequest=3327&issueStatuses=ACCEPTED)
Measures
 [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_kvrocks&pullRequest=3327&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)
 [74.7% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_kvrocks&pullRequest=3327&metric=new_coverage&view=list)
 [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_kvrocks&pullRequest=3327&metric=new_duplicated_lines_density&view=list)
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_kvrocks&pullRequest=3327)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] perf(hash): use MultiGet to reduce RocksDB calls in HMSET [kvrocks]
Posted by "PragmaTwice (via GitHub)" <gi...@apache.org>.
PragmaTwice commented on PR #3327:
URL: https://github.com/apache/kvrocks/pull/3327#issuecomment-3717886789
I should note that this structure is wrong in transaction mode:
```c++
for (...) {
if (..) return ..;
batch->Put(...)
}
batch->Commit()
```
because if early returns happen, in transaction mode we will still commit this batch in EXEC command.
But this is not introduced in this PR, so I'm fine to merge. It can be fixed later.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] perf(hash): use MultiGet to reduce RocksDB calls in HMSET [kvrocks]
Posted by "PragmaTwice (via GitHub)" <gi...@apache.org>.
PragmaTwice merged PR #3327:
URL: https://github.com/apache/kvrocks/pull/3327
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org