[jira] [Resolved] (GEODE-9983) Implement RPOPLPUSH Command
[ https://issues.apache.org/jira/browse/GEODE-9983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Donal Evans resolved GEODE-9983. Fix Version/s: 1.15.0 Resolution: Fixed > Implement RPOPLPUSH Command > --- > > Key: GEODE-9983 > URL: https://issues.apache.org/jira/browse/GEODE-9983 > Project: Geode > Issue Type: New Feature > Components: redis >Reporter: Wayne >Assignee: Donal Evans >Priority: Major > Labels: pull-request-available > Fix For: 1.15.0 > > > Implement the [RPOPLPUSH|https://redis.io/commands/RPOPLPUSH] command. > > +Acceptance Criteria+ > > The command has been implemented along with appropriate unit and system tests. > > The command has been tested using the redis-cli tool and verified against > native redis. > > -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (GEODE-9983) Implement RPOPLPUSH Command
[ https://issues.apache.org/jira/browse/GEODE-9983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17512753#comment-17512753 ] ASF subversion and git services commented on GEODE-9983: Commit 4b2f368be1e39189b7fc6a9ea323f7521e5f92fa in geode's branch refs/heads/develop from Donal Evans [ https://gitbox.apache.org/repos/asf?p=geode.git;h=4b2f368 ] GEODE-9983: Implement RPOPLPUSH command (#7467) - Implement RPOPLPUSH command and add associated tests - Alphabetize command-related methods in RedisList - Change Command.getProcessedCommandKeys() to not convert the command name into a RedisKey, because there's no situation in which we'd want to do that - Add ignored DUnit test for transactional behaviour, blocked by GEODE-10121 Authored-by: Donal Evans > Implement RPOPLPUSH Command > --- > > Key: GEODE-9983 > URL: https://issues.apache.org/jira/browse/GEODE-9983 > Project: Geode > Issue Type: New Feature > Components: redis >Reporter: Wayne >Assignee: Donal Evans >Priority: Major > Labels: pull-request-available > Fix For: 1.15.0 > > > Implement the [RPOPLPUSH|https://redis.io/commands/RPOPLPUSH] command. > > +Acceptance Criteria+ > > The command has been implemented along with appropriate unit and system tests. > > The command has been tested using the redis-cli tool and verified against > native redis. > > -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (GEODE-10121) Transactional Redis commands are not actually transactional
[ https://issues.apache.org/jira/browse/GEODE-10121?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17512754#comment-17512754 ] ASF subversion and git services commented on GEODE-10121: - Commit 4b2f368be1e39189b7fc6a9ea323f7521e5f92fa in geode's branch refs/heads/develop from Donal Evans [ https://gitbox.apache.org/repos/asf?p=geode.git;h=4b2f368 ] GEODE-9983: Implement RPOPLPUSH command (#7467) - Implement RPOPLPUSH command and add associated tests - Alphabetize command-related methods in RedisList - Change Command.getProcessedCommandKeys() to not convert the command name into a RedisKey, because there's no situation in which we'd want to do that - Add ignored DUnit test for transactional behaviour, blocked by GEODE-10121 Authored-by: Donal Evans > Transactional Redis commands are not actually transactional > --- > > Key: GEODE-10121 > URL: https://issues.apache.org/jira/browse/GEODE-10121 > Project: Geode > Issue Type: Bug > Components: redis >Affects Versions: 1.15.0 >Reporter: Donal Evans >Priority: Major > Labels: blocks-1.15.0 > > The following test (if added to MSetDUnitTest) is intended to show that MSET > is transactional in nature by having the final key to be set throw an > exception, which should roll back the previous set values: > {code:java} > public static final String THROWING_REDIS_STRING_EXCEPTION = "to be > ignored"; > > @Test > public void mset_isTransactional() { > IgnoredException.addIgnoredException(THROWING_REDIS_STRING_EXCEPTION); > String hashTag = "{" + clusterStartUp.getKeyOnServer("tag", 1) + "}"; > String key1 = hashTag + "key1"; > String value1 = "value1"; > jedis.set(key1, value1); > String key2 = hashTag + "key2"; > String value2 = "value2"; > jedis.set(key2, value2); > String throwingRedisStringKey = hashTag + "ThrowingRedisString"; > String throwingStringValue = "ThrowingRedisStringValue"; > // Put a test version of RedisString directly into the region that throws > if the multi-argument set() is called on it > clusterStartUp.getMember(1).invoke(() -> { > RedisKey throwingKey = new > RedisKey(throwingRedisStringKey.getBytes(StandardCharsets.UTF_8)); > ThrowingRedisString throwingRedisString = new ThrowingRedisString(); > > throwingRedisString.set(throwingStringValue.getBytes(StandardCharsets.UTF_8)); > > ClusterStartupRule.getCache().getRegion(DEFAULT_REDIS_REGION_NAME).put(throwingKey, > throwingRedisString); > }); > String newValue = "should_not_be_set"; > assertThatThrownBy(() -> jedis.mset(key1, newValue, key2, newValue, > throwingRedisStringKey, newValue)).hasMessage(SERVER_ERROR_MESSAGE); > > assertThat(jedis.get(key1)).isEqualTo(value1); > assertThat(jedis.get(key2)).isEqualTo(value2); > > assertThat(jedis.get(throwingRedisStringKey)).isEqualTo(throwingStringValue); > IgnoredException.removeAllExpectedExceptions(); > } > static class ThrowingRedisString extends RedisString { > @Override > public void set(Region region, RedisKey key, byte[] > newValue, > SetOptions options) { > throw new RuntimeException(THROWING_REDIS_STRING_EXCEPTION); > } > }{code} > This test fails due to {{key1}} having its value set to {{newValue}} despite > the fact that MSET is supposed to be atomic. > Given the similar implementations each command uses, it is very likely that > MSETNX and SMOVE also show the same behaviour. -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (GEODE-10091) Benchmark instability in RedisZaddAndZremBenchmark
[ https://issues.apache.org/jira/browse/GEODE-10091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17512791#comment-17512791 ] Eric Zoerner commented on GEODE-10091: -- Commit 9ff27b37, which is for GEODE-10046 definitely shows a significant performance regression for this benchmark test. I'm seeing a 17-24% increase in average latency introduced for this one commit. Unfortunately, this commit was merged on 3/16/22, so was not the culprit when this ticket was filed. > Benchmark instability in RedisZaddAndZremBenchmark > -- > > Key: GEODE-10091 > URL: https://issues.apache.org/jira/browse/GEODE-10091 > Project: Geode > Issue Type: Bug > Components: benchmarks, redis >Affects Versions: 1.15.0 >Reporter: Donal Evans >Assignee: Eric Zoerner >Priority: Major > Labels: needsTriage > > {noformat} > This is ITERATION 1 of benchmarking against baseline. > RedisGetBenchmark avg ops/sec > Baseline:428358.55 Test:446241.49 Difference: +4.2% > avg latency > Baseline: 1678809.55 Test: 1611045.34 Difference: -4.0% > RedisHgetBenchmark avg ops/sec > Baseline:438535.25 Test:441078.97 Difference: +0.6% > avg latency > Baseline: 1638968.92 Test: 1630999.16 Difference: -0.5% > RedisHsetAndHgetBenchmark avg ops/sec > Baseline:191331.54 Test:186806.37 Difference: -2.4% > avg latency > Baseline: 3759694.09 Test: 3850396.04 Difference: +2.4% > RedisHsetBenchmark avg ops/sec > Baseline:308079.41 Test:303715.78 Difference: -1.4% > avg latency > Baseline: 2332102.91 Test: 2367639.93 Difference: +1.5% > RedisSetBenchmark avg ops/sec > Baseline:318147.74 Test:326996.22 Difference: +2.8% > avg latency > Baseline: 2263687.57 Test: 2198181.68 Difference: -2.9% > RedisWeightedHsetAndHgetBenchmark avg ops/sec > Baseline:390383.79 Test:385565.48 Difference: -1.2% > avg latency > Baseline: 1842561.96 Test: 1864716.09 Difference: +1.2% > RedisWeightedZaddAndZrangeBenchmark avg ops/sec > Baseline:375078.82 Test:350886.03 Difference: -6.5% > avg latency > Baseline: 1917476.15 Test: 2049452.87 Difference: +6.9% > RedisZaddAndZremBenchmark avg ops/sec > Baseline:124763.60 Test:118600.72 Difference: -4.9% > avg latency > Baseline: 5766048.34 Test: 6065491.13 Difference: +5.2% > RedisZaddBenchmark avg ops/sec > Baseline:432494.29 Test:438594.53 Difference: +1.4% > avg latency > Baseline: 1662639.09 Test: 1639906.18 Difference: -1.4% > RedisZrangeBenchmark avg ops/sec > Baseline:295523.77 Test:340381.87 Difference: +15.2% > avg latency > Baseline: 2433250.54 Test: 2112961.66 Difference: -13.2% > RedisZrangeByScoreBenchmark avg ops/sec > Baseline:285836.33 Test:356142.91 Difference: +24.6% > avg latency > Baseline: 2515708.23 Test: 2019249.68 Difference: -19.7% > This is ITERATION 2 of benchmarking against baseline. > RedisWeightedZaddAndZrangeBenchmark avg ops/sec > Baseline:358570.33 Test:348012.02 Difference: -2.9% > avg latency > Baseline: 2005804.05 Test: 2066535.24 Difference: +3.0% > RedisZaddAndZremBenchmark avg ops/sec > Baseline:122900.38 Test:115226.22 Difference: -6.2% > avg latency > Baseline: 5858357.13 Test: 6243018.38 Difference: +6.6% > This is ITERATION 3 of benchmarking against baseline. > RedisZaddAndZremBenc