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

When updating FLASH values use bulk insert #577

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

Conversation

JohnSully
Copy link
Collaborator

Bulk insert is dramatically more performant than multiple single inserts.

Perf benchmarks TBD

@paulmchen
Copy link
Contributor

paulmchen commented Mar 3, 2023

@JohnSully @msotheeswaran John and Malavan, i picked up these 2 commits on top of the latest master branch and compile the code in flash as the following: make ENABLE_FLASH=yes

and then i ran the ./runtest unit tests, i am seeing the following replication tcl unit test failure. please help to look at this issue. Thanks.

[ok]: First server should have role slave after SLAVEOF
[ok]: Big Hash table: SORT BY key with limit
[ok]: MIGRATE will not overwrite existing keys, unless REPLACE is used
I/O error reading reply
while executing
"{}$r sadd $k $v"
("uplevel" body line 2)
invoked from within
"uplevel 1 [lindex $args $path]"
(procedure "randpath" line 3)
invoked from within
"randpath {
{
}$r set $k $v
} {
{}$r lpush $k $v
} {
{
}$r sadd $k $v
..."
(procedure "createComplexDataset" line 30)
invoked from within
"createComplexDataset $r $ops"
(procedure "bg_complex_data" line 5)
invoked from within
"bg_complex_data [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] [lindex $argv 3] [lindex $argv 4]"
(file "tests/helpers/bg_complex_data.tcl" line 13)
I/O error reading reply
while executing
"{*}$r type $k"
(procedure "createComplexDataset" line 27)
invoked from within
"createComplexDataset $r $ops"
(procedure "bg_complex_data" line 5)
invoked from within
"bg_complex_data [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] [lindex $argv 3] [lindex $argv 4]"
(file "tests/helpers/bg_complex_data.tcl" line 13)
I/O error reading reply
while executing
"$r client setname LOAD_HANDLER"
(procedure "bg_complex_data" line 3)
invoked from within
"bg_complex_data [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] [lindex $argv 3] [lindex $argv 4]"
(file "tests/helpers/bg_complex_data.tcl" line 13)
[ok]: MIGRATE propagates TTL correctly
[ok]: EXPIREMEMBER works (zset)
[ok]: TTL for subkey expires works

@JohnSully
Copy link
Collaborator Author

Hey Paul,

I pushed a fix to the crashing test.

@paulmchen
Copy link
Contributor

Hey Paul,

I pushed a fix to the crashing test.

@JohnSully @msotheeswaran Hello John, thanks for the change, runtest no longer crashes, however, I am seeing a few unit test failures and "Slave not correctly synchronized" in replication-psync.tcl. The errors are listed below:

[err]: Test replication partial resync: no backlog (diskless: no, disabled, reconnect: 1) in tests/integration/replication-psync-flash.tcl
Slave not correctly synchronized
[ok]: Slave should be able to synchronize with the master
[ok]: Detect write load to master
[err]: Test replication partial resync: ok after delay (diskless: no, disabled, reconnect: 1) in tests/integration/replication-psync-flash.tcl
Slave not correctly synchronized
[ok]: Slave should be able to synchronize with the master
[ok]: Detect write load to master
[err]: Test replication partial resync: backlog expired (diskless: no, disabled, reconnect: 1) in tests/integration/replication-psync-flash.tcl
Slave not correctly synchronized
[ok]: Slave should be able to synchronize with the master
[ok]: Detect write load to master
[ok]: Test replication partial resync: no reconnection, just sync (diskless: no, swapdb, reconnect: 0)
[ok]: Slave should be able to synchronize with the master
[ok]: Detect write load to master

@paulmchen
Copy link
Contributor

@msotheeswaran Malavan, The following error appears when running runtest unit tests against the flash on the main branch as well, so it appears that the following unit test failure is caused by the previous MR (Not by this commit). It would be helpful if you could investigate it. I appreciate your help.

-- ran runtest using the latest code from Main after compiling the code in flash ---
[err]: Test replication partial resync: no backlog (diskless: no, disabled, reconnect: 1) in tests/integration/replication-psync-flash.tcl
Slave not correctly synchronized

@msotheeswaran-sc
Copy link
Collaborator

@paulmchen #604 should fix the tests

@paulmchen
Copy link
Contributor

@paulmchen #604 should fix the tests

@msotheeswaran verified and all are passed. Thanks.

@mevinbabuc
Copy link

Releasing this will make the flash usable. Right now, its not usable because of the high IO writes on EBS.

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.

4 participants