[geode] branch develop updated (372e6d4300 -> b207304b98)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git from 372e6d4300 GEODE-10320: Bump micrometer from 1.8.5 to 1.9.0 (#7706) add b207304b98 GEODE-10322: Run various Analyze Serialiable tests from IntelliJ (#7711) No new revisions were added by this update. Summary of changes: .../java/org/apache/geode/test/junit/rules/ClassAnalysisRule.java | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-)
[geode] branch support/1.15 updated: GEODE-10284: Add partition-listener option to gfsh create region command (#7666) (#7671)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/support/1.15 by this push: new 610a864544 GEODE-10284: Add partition-listener option to gfsh create region command (#7666) (#7671) 610a864544 is described below commit 610a864544d5dc53155fdcd8ec55b7c233a24b4b Author: Jens Deppe AuthorDate: Tue May 10 10:42:15 2022 -0700 GEODE-10284: Add partition-listener option to gfsh create region command (#7666) (#7671) * Update documentation Co-authored-by: Dave Barnes (cherry picked from commit d4b80d27277d3eda22f692cf95d95026096470d5) --- .../geode/management/internal/i18n/CliStrings.java | 4 .../gfsh/command-pages/create.html.md.erb | 13 ++--- .../cli/commands/CreateRegionCommandDUnitTest.java | 22 ++ .../GfshParserAutoCompletionIntegrationTest.java | 2 +- .../internal/cli/commands/CreateRegionCommand.java | 11 ++- 5 files changed, 47 insertions(+), 5 deletions(-) diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/i18n/CliStrings.java b/geode-core/src/main/java/org/apache/geode/management/internal/i18n/CliStrings.java index 4cd6bdf177..26d5ed7da2 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/i18n/CliStrings.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/i18n/CliStrings.java @@ -1076,6 +1076,10 @@ public class CliStrings { public static final String CREATE_REGION__OFF_HEAP__HELP = "Causes the values of the region to be stored in off-heap memory. The default is on heap."; + public static final String CREATE_REGION__PARTITION_LISTENER = "partition-listener"; + public static final String CREATE_REGION__PARTITION_LISTENER__HELP = + "The fully-qualified class name of a partition listener"; + public static final String CREATE_REGION__PARTITION_RESOLVER = "partition-resolver"; public static final String CREATE_REGION__PARTITION_RESOLVER__HELP = "The fully-qualified class name of the region's partition resolver"; diff --git a/geode-docs/tools_modules/gfsh/command-pages/create.html.md.erb b/geode-docs/tools_modules/gfsh/command-pages/create.html.md.erb index 7f7568483b..c8503ade89 100644 --- a/geode-docs/tools_modules/gfsh/command-pages/create.html.md.erb +++ b/geode-docs/tools_modules/gfsh/command-pages/create.html.md.erb @@ -861,8 +861,10 @@ for syntax details. [--recovery-delay=value] [--redundant-copies=value] [--startup-recovery-delay=value] [--total-max-memory=value] [--total-num-buckets=value] [--compressor=value] [--off-heap(=value)?] -[--partition-resolver=value] [--eviction-entry-count=value] [--scope=value] -[--eviction-max-memory=value] [--eviction-action=value] [--eviction-object-sizer=value] +[--partition-listener=value(,value)*] [--partition-resolver=value] +[--eviction-entry-count=value] [--scope=value] +[--eviction-max-memory=value] [--eviction-action=value] +[--eviction-object-sizer=value] ``` **Parameters, create region:** @@ -1079,8 +1081,13 @@ If this option is specified without a value or is specified with a value of false +partition-listener +Specifies fully-qualified class names of one or more custom partition listeners. + + + partition-resolver -Specifies the full path to a custom partition resolver. Specify org.apache.geode.cache.util.StringPrefixPartitionResolver to use the included string prefix partition resolver. +Specifies the full path to a custom partition resolver. Specify org.apache.geode.cache.util.StringPrefixPartitionResolver to use the included string prefix PartitionResolver. diff --git a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommandDUnitTest.java b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommandDUnitTest.java index 3475fd900c..ccf4b8de88 100644 --- a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommandDUnitTest.java +++ b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommandDUnitTest.java @@ -46,6 +46,8 @@ import org.apache.geode.cache.asyncqueue.AsyncEvent; import org.apache.geode.cache.asyncqueue.AsyncEventListener; import org.apache.geode.cache.configuration.CacheConfig; import org.apache.geode.cache.configuration.RegionConfig; +import org.apache.geode.cache.partition.PartitionListener; +import org.apache.geode.cache.partition.PartitionListenerAdapter; import org.apache.geode.cache.util.CacheListenerAdapter; import org.apache.geode.compression.Compressor; import org.apache.geode.compression.SnappyCompressor; @@ -105,6 +107,9 @@ public class CreateRegio
[geode] branch develop updated: GEODE-10284: Add partition-listener option to gfsh create region command (#7666)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new d4b80d2727 GEODE-10284: Add partition-listener option to gfsh create region command (#7666) d4b80d2727 is described below commit d4b80d27277d3eda22f692cf95d95026096470d5 Author: Jens Deppe AuthorDate: Mon May 9 21:09:38 2022 -0700 GEODE-10284: Add partition-listener option to gfsh create region command (#7666) * Update documentation Co-authored-by: Dave Barnes --- .../geode/management/internal/i18n/CliStrings.java | 4 .../gfsh/command-pages/create.html.md.erb | 13 ++--- .../cli/commands/CreateRegionCommandDUnitTest.java | 22 ++ .../GfshParserAutoCompletionIntegrationTest.java | 2 +- .../internal/cli/commands/CreateRegionCommand.java | 11 ++- 5 files changed, 47 insertions(+), 5 deletions(-) diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/i18n/CliStrings.java b/geode-core/src/main/java/org/apache/geode/management/internal/i18n/CliStrings.java index 4cd6bdf177..26d5ed7da2 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/i18n/CliStrings.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/i18n/CliStrings.java @@ -1076,6 +1076,10 @@ public class CliStrings { public static final String CREATE_REGION__OFF_HEAP__HELP = "Causes the values of the region to be stored in off-heap memory. The default is on heap."; + public static final String CREATE_REGION__PARTITION_LISTENER = "partition-listener"; + public static final String CREATE_REGION__PARTITION_LISTENER__HELP = + "The fully-qualified class name of a partition listener"; + public static final String CREATE_REGION__PARTITION_RESOLVER = "partition-resolver"; public static final String CREATE_REGION__PARTITION_RESOLVER__HELP = "The fully-qualified class name of the region's partition resolver"; diff --git a/geode-docs/tools_modules/gfsh/command-pages/create.html.md.erb b/geode-docs/tools_modules/gfsh/command-pages/create.html.md.erb index 7f7568483b..c8503ade89 100644 --- a/geode-docs/tools_modules/gfsh/command-pages/create.html.md.erb +++ b/geode-docs/tools_modules/gfsh/command-pages/create.html.md.erb @@ -861,8 +861,10 @@ for syntax details. [--recovery-delay=value] [--redundant-copies=value] [--startup-recovery-delay=value] [--total-max-memory=value] [--total-num-buckets=value] [--compressor=value] [--off-heap(=value)?] -[--partition-resolver=value] [--eviction-entry-count=value] [--scope=value] -[--eviction-max-memory=value] [--eviction-action=value] [--eviction-object-sizer=value] +[--partition-listener=value(,value)*] [--partition-resolver=value] +[--eviction-entry-count=value] [--scope=value] +[--eviction-max-memory=value] [--eviction-action=value] +[--eviction-object-sizer=value] ``` **Parameters, create region:** @@ -1079,8 +1081,13 @@ If this option is specified without a value or is specified with a value of false +partition-listener +Specifies fully-qualified class names of one or more custom partition listeners. + + + partition-resolver -Specifies the full path to a custom partition resolver. Specify org.apache.geode.cache.util.StringPrefixPartitionResolver to use the included string prefix partition resolver. +Specifies the full path to a custom partition resolver. Specify org.apache.geode.cache.util.StringPrefixPartitionResolver to use the included string prefix PartitionResolver. diff --git a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommandDUnitTest.java b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommandDUnitTest.java index 3475fd900c..ccf4b8de88 100644 --- a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommandDUnitTest.java +++ b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommandDUnitTest.java @@ -46,6 +46,8 @@ import org.apache.geode.cache.asyncqueue.AsyncEvent; import org.apache.geode.cache.asyncqueue.AsyncEventListener; import org.apache.geode.cache.configuration.CacheConfig; import org.apache.geode.cache.configuration.RegionConfig; +import org.apache.geode.cache.partition.PartitionListener; +import org.apache.geode.cache.partition.PartitionListenerAdapter; import org.apache.geode.cache.util.CacheListenerAdapter; import org.apache.geode.compression.Compressor; import org.apache.geode.compression.SnappyCompressor; @@ -105,6 +107,9 @@ public class CreateRegionCommandDUnitTest { } } + public static class TestPartitionListener exten
[geode] branch develop updated: GEODE-10245: Upgrade classgraph 4.8.143 -> 4.8.145 (#7605)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 5ebf30773e GEODE-10245: Upgrade classgraph 4.8.143 -> 4.8.145 (#7605) 5ebf30773e is described below commit 5ebf30773efab17e0b1663fb5fa8e05fc3ee7767 Author: Jens Deppe AuthorDate: Wed Apr 20 09:37:33 2022 -0700 GEODE-10245: Upgrade classgraph 4.8.143 -> 4.8.145 (#7605) - This fixes an issue discovered with the ordering of 'manifest only' jars and classgraph unable to find classes. --- boms/geode-all-bom/src/test/resources/expected-pom.xml | 2 +- .../groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy | 2 +- geode-assembly/src/integrationTest/resources/assembly_content.txt | 2 +- .../src/integrationTest/resources/gfsh_dependency_classpath.txt | 2 +- geode-server-all/src/integrationTest/resources/dependency_classpath.txt | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/boms/geode-all-bom/src/test/resources/expected-pom.xml b/boms/geode-all-bom/src/test/resources/expected-pom.xml index 49d1904d54..5cd4e69d32 100644 --- a/boms/geode-all-bom/src/test/resources/expected-pom.xml +++ b/boms/geode-all-bom/src/test/resources/expected-pom.xml @@ -180,7 +180,7 @@ io.github.classgraph classgraph -4.8.143 +4.8.145 io.github.resilience4j diff --git a/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy b/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy index c80fe7715f..a2f9bf747d 100644 --- a/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy +++ b/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy @@ -117,7 +117,7 @@ class DependencyConstraints implements Plugin { api(group: 'commons-modeler', name: 'commons-modeler', version: '2.0.1') api(group: 'commons-validator', name: 'commons-validator', version: get('commons-validator.version')) // Careful when upgrading this dependency: see GEODE-7370 and GEODE-8150. -api(group: 'io.github.classgraph', name: 'classgraph', version: '4.8.143') +api(group: 'io.github.classgraph', name: 'classgraph', version: '4.8.145') api(group: 'io.github.resilience4j', name: 'resilience4j-retry', version: '1.7.1') api(group: 'io.lettuce', name: 'lettuce-core', version: '6.1.8.RELEASE') api(group: 'io.micrometer', name: 'micrometer-core', version: get('micrometer.version')) diff --git a/geode-assembly/src/integrationTest/resources/assembly_content.txt b/geode-assembly/src/integrationTest/resources/assembly_content.txt index d28417ced2..7e224c0bd2 100644 --- a/geode-assembly/src/integrationTest/resources/assembly_content.txt +++ b/geode-assembly/src/integrationTest/resources/assembly_content.txt @@ -966,7 +966,7 @@ lib/HdrHistogram-2.1.12.jar lib/HikariCP-4.0.3.jar lib/LatencyUtils-2.0.3.jar lib/antlr-2.7.7.jar -lib/classgraph-4.8.143.jar +lib/classgraph-4.8.145.jar lib/commons-beanutils-1.9.4.jar lib/commons-codec-1.15.jar lib/commons-collections-3.2.2.jar diff --git a/geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt b/geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt index 0f5b5386a8..05ca42cfb4 100644 --- a/geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt +++ b/geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt @@ -53,7 +53,7 @@ commons-collections-3.2.2.jar commons-digester-2.1.jar commons-io-2.11.0.jar commons-logging-1.2.jar -classgraph-4.8.143.jar +classgraph-4.8.145.jar micrometer-core-1.8.4.jar fastutil-8.5.8.jar javax.resource-api-1.7.1.jar diff --git a/geode-server-all/src/integrationTest/resources/dependency_classpath.txt b/geode-server-all/src/integrationTest/resources/dependency_classpath.txt index e7f3ef42f2..a0b3622cea 100644 --- a/geode-server-all/src/integrationTest/resources/dependency_classpath.txt +++ b/geode-server-all/src/integrationTest/resources/dependency_classpath.txt @@ -7,7 +7,7 @@ commons-digester-2.1.jar commons-validator-1.7.jar spring-jcl-5.3.18.jar commons-codec-1.15.jar -classgraph-4.8.143.jar +classgraph-4.8.145.jar jackson-databind-2.13.2.2.jar commons-logging-1.2.jar geode-management-0.0.0.jar
[geode] branch develop updated (f7eb7359a2 -> 39e3a89b9e)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git from f7eb7359a2 GEODE-10023: do not @link to type params (#7601) add 39e3a89b9e GEODE-10161: Remove unnecessary synchronization from RedisList (#7579) No new revisions were added by this update. Summary of changes: .../commands/executor/list/LInsertDUnitTest.java | 6 ++- .../commands/executor/list/LPopDUnitTest.java | 6 ++- .../commands/executor/list/LPushDUnitTest.java | 6 ++- .../commands/executor/list/LRemDUnitTest.java | 9 ++-- .../commands/executor/list/LTrimDUnitTest.java | 9 ++-- .../commands/executor/list/RPopDUnitTest.java | 9 ++-- .../geode/redis/internal/data/RedisList.java | 55 ++ 7 files changed, 41 insertions(+), 59 deletions(-)
[geode] branch develop updated (0e6d8377b4 -> 32ef396ef6)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git from 0e6d8377b4 GEODE-9759: replaces double-hyphens with (#7560) add 32ef396ef6 Revert "Revert "GEODE-10126: Replace Geode for Redis properties with system properties (#7478)" (#7576)" (#7586) No new revisions were added by this update. Summary of changes: .../geode/distributed/ConfigurationProperties.java | 77 -- .../internal/AbstractDistributionConfig.java | 26 .../distributed/internal/DistributionConfig.java | 94 .../internal/DistributionConfigImpl.java | 80 +- .../geode/internal/cache/GemFireCacheImpl.java | 1 + .../internal/DistributionConfigImplTest.java | 8 +- .../GeodeRedisServerStartupAcceptanceTest.java | 139 ++--- ...eRedisServerStartupUsingGfshAcceptanceTest.java | 58 --- .../apache/geode/redis/GeodeRedisServerRule.java | 14 +- .../apache/geode/redis/TestRedisConfiguration.java | 97 .../test/dunit/rules/RedisClusterStartupRule.java | 18 +-- .../executor/hash/HashesAndCrashesDUnitTest.java | 6 +- .../commands/executor/key/RenameDUnitTest.java | 6 +- .../commands/executor/list/RPushDUnitTest.java | 4 +- .../commands/executor/sortedset/ZRemDUnitTest.java | 4 +- .../sortedset/ZRemRangeByRankDUnitTest.java| 8 +- .../commands/executor/string/MSetDUnitTest.java| 6 +- .../commands/executor/string/MSetNXDUnitTest.java | 6 +- .../auth/AuthWhileServersRestartDUnitTest.java | 4 +- .../redis/session/SessionsAndCrashesDUnitTest.java | 4 +- .../executor/connection/AuthIntegrationTest.java | 26 ++-- .../geode/redis/internal/GeodeRedisServer.java | 23 +-- .../geode/redis/internal/GeodeRedisService.java| 25 ++- .../geode/redis/internal/RedisConfiguration.java | 59 +++ .../SystemPropertyBasedRedisConfiguration.java | 170 + .../redis/internal/netty/NettyRedisServer.java | 15 +- .../redis/internal/services/RegionProvider.java| 10 +- 27 files changed, 540 insertions(+), 448 deletions(-) create mode 100644 geode-for-redis/src/commonTest/java/org/apache/geode/redis/TestRedisConfiguration.java create mode 100644 geode-for-redis/src/main/java/org/apache/geode/redis/internal/RedisConfiguration.java create mode 100644 geode-for-redis/src/main/java/org/apache/geode/redis/internal/SystemPropertyBasedRedisConfiguration.java
[geode] branch develop updated (2456b89b26 -> 7965968003)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git from 2456b89b26 GEODE-10157: Add Radish Delta Unit Tests (#7558) add 7965968003 GEODE-10204: Add Test Coverage for SizeableByteArrayList (#7566) No new revisions were added by this update. Summary of changes: .../geode/redis/internal/data/RedisList.java | 2 +- .../data/collections/SizeableByteArrayList.java| 28 +- .../collections/SizeableByteArrayListTest.java | 533 +++-- 3 files changed, 519 insertions(+), 44 deletions(-)
[geode] branch develop updated: Revert "GEODE-10126: Replace Geode for Redis properties with system properties (#7478)" (#7576)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 934f517e92 Revert "GEODE-10126: Replace Geode for Redis properties with system properties (#7478)" (#7576) 934f517e92 is described below commit 934f517e92854cbfeb09d46f8ed9de806ef3eccb Author: Jens Deppe AuthorDate: Fri Apr 8 16:53:23 2022 -0700 Revert "GEODE-10126: Replace Geode for Redis properties with system properties (#7478)" (#7576) This reverts commit ee1c412d8af3e6311f569948c3248eddc1fe8009. --- .../geode/distributed/ConfigurationProperties.java | 77 ++ .../internal/AbstractDistributionConfig.java | 26 .../distributed/internal/DistributionConfig.java | 94 .../internal/DistributionConfigImpl.java | 80 +- .../geode/internal/cache/GemFireCacheImpl.java | 1 - .../internal/DistributionConfigImplTest.java | 8 +- .../GeodeRedisServerStartupAcceptanceTest.java | 139 +++-- ...eRedisServerStartupUsingGfshAcceptanceTest.java | 58 +++ .../apache/geode/redis/GeodeRedisServerRule.java | 14 +- .../apache/geode/redis/TestRedisConfiguration.java | 97 .../test/dunit/rules/RedisClusterStartupRule.java | 18 +-- .../executor/hash/HashesAndCrashesDUnitTest.java | 6 +- .../commands/executor/key/RenameDUnitTest.java | 6 +- .../commands/executor/list/RPushDUnitTest.java | 4 +- .../commands/executor/sortedset/ZRemDUnitTest.java | 4 +- .../sortedset/ZRemRangeByRankDUnitTest.java| 8 +- .../commands/executor/string/MSetDUnitTest.java| 6 +- .../commands/executor/string/MSetNXDUnitTest.java | 6 +- .../auth/AuthWhileServersRestartDUnitTest.java | 4 +- .../redis/session/SessionsAndCrashesDUnitTest.java | 4 +- .../executor/connection/AuthIntegrationTest.java | 26 ++-- .../geode/redis/internal/GeodeRedisServer.java | 23 ++- .../geode/redis/internal/GeodeRedisService.java| 25 +-- .../geode/redis/internal/RedisConfiguration.java | 59 --- .../SystemPropertyBasedRedisConfiguration.java | 170 - .../redis/internal/netty/NettyRedisServer.java | 15 +- .../redis/internal/services/RegionProvider.java| 10 +- 27 files changed, 448 insertions(+), 540 deletions(-) diff --git a/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java b/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java index 1a4e205e2e..d8d32565a6 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java @@ -1920,6 +1920,83 @@ public interface ConfigurationProperties { * Since: Geode 1.0 */ String OFF_HEAP_MEMORY_SIZE = "off-heap-memory-size"; + /** + * The static String definition of the "geode-for-redis-bind-address" property + * + * Description: Specifies the address on which Geode for Redis is + * listening. If set to the empty string or this property is not specified, the server listens on + * all local addresses. + * + * Default: "" + * + * Since: Geode 1.15 + */ + String GEODE_FOR_REDIS_BIND_ADDRESS = "geode-for-redis-bind-address"; + /** + * The static String definition of the "geode-for-redis-enabled" property + * + * Description: When the default value of false, Geode for Redis is + * not available. + * Set to true to enable Geode for Redis. + * + * Default: false + * When the default value of false, Geode for Redis is not available. + * Set to true to enable Geode for Redis. + * + * Since: Geode 1.15 + */ + String GEODE_FOR_REDIS_ENABLED = "geode-for-redis-enabled"; + /** + * The static String definition of the "geode-for-redis-username" property + * + * Description: Specifies the default username that the server uses when a client attempts + * to authenticate using only a password. This requires a SecurityManager to be configured. + * + * Default: default + * + * Since: Geode 1.15 + */ + String GEODE_FOR_REDIS_USERNAME = "geode-for-redis-username"; + /** + * The static String definition of the "geode-for-redis-port" property + * + * Description: Specifies the port on which the Geode for Redis server listens for clients. + * A value of 0 selects a random port. + * + * Default: 6379 + * + * Allowed values: 0..65535 + * + * Since: Geode 1.15 + */ + String GEODE_FOR_REDIS_PORT = "geode-for-redis-port"; + /** + * The static String definition of the "geode-for-redis-redundant-copies" property + * + * Description: Speci
[geode] branch develop updated (3889df2803 -> 4989b9ae82)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git from 3889df2803 GEODE-10077: Avoid callbacks in wan-copy region (#7391) add 4989b9ae82 GEODE-10221: Fix sizing when creating a RedisList copy (#7568) No new revisions were added by this update. Summary of changes: .../apache/geode/redis/internal/data/AbstractRedisData.java| 7 --- .../java/org/apache/geode/redis/internal/data/RedisList.java | 3 +-- .../redis/internal/data/collections/SizeableByteArrayList.java | 10 ++ .../org/apache/geode/redis/internal/data/RedisListTest.java| 9 + .../internal/data/collections/SizeableByteArrayListTest.java | 8 5 files changed, 32 insertions(+), 5 deletions(-)
[geode] branch develop updated: GEODE-10214: Improve speed of JvmSizeUtils.roundUpSize (#7548)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 982f846fb5 GEODE-10214: Improve speed of JvmSizeUtils.roundUpSize (#7548) 982f846fb5 is described below commit 982f846fb5d8b61e617c7d0e1a484ea0664229ab Author: Jens Deppe AuthorDate: Wed Apr 6 13:57:46 2022 -0700 GEODE-10214: Improve speed of JvmSizeUtils.roundUpSize (#7548) This small change improves the speed of this method by about 30% (as per basic JMH benchmarking). benchamrk1 is the original and benchmark2 the change. ``` Benchmark Mode Cnt Score Error Units PerformanceSample.benchmark1 avgt5 3480.815 ± 387.131 us/op PerformanceSample.benchmark2 avgt5 2418.937 ± 586.209 us/op ``` --- .../geode/internal/JvmSizeUtilsBenchmark.java | 78 ++ .../org/apache/geode/internal/JvmSizeUtils.java| 13 ++-- .../geode/internal/JvmSizeUtilsJUnitTest.java | 38 +++ 3 files changed, 121 insertions(+), 8 deletions(-) diff --git a/geode-core/src/jmh/java/org/apache/geode/internal/JvmSizeUtilsBenchmark.java b/geode-core/src/jmh/java/org/apache/geode/internal/JvmSizeUtilsBenchmark.java new file mode 100644 index 00..7756a28024 --- /dev/null +++ b/geode-core/src/jmh/java/org/apache/geode/internal/JvmSizeUtilsBenchmark.java @@ -0,0 +1,78 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package org.apache.geode.internal; + +import java.util.concurrent.TimeUnit; + +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Fork; +import org.openjdk.jmh.annotations.Level; +import org.openjdk.jmh.annotations.Measurement; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.State; +import org.openjdk.jmh.annotations.TearDown; +import org.openjdk.jmh.annotations.Warmup; + +/** + * Run this benchmark individually with: + * + * + *./gradlew -Pjmh.include=JvmSizeUtilsBenchmark geode-core:jmh + * + */ +@State(Scope.Thread) +@Fork(1) +public class JvmSizeUtilsBenchmark { + + private int i = 0; + + @TearDown(Level.Iteration) + public void teardown() { +i++; + } + + @Benchmark + @Measurement(iterations = 5) + @Warmup(iterations = 3) + @BenchmarkMode(Mode.Throughput) + @OutputTimeUnit(TimeUnit.MILLISECONDS) + public long benchmark_roundUpSize() { +return JvmSizeUtils.roundUpSize(i); + } + + @Benchmark + @Measurement(iterations = 5) + @Warmup(iterations = 3) + @BenchmarkMode(Mode.Throughput) + @OutputTimeUnit(TimeUnit.MILLISECONDS) + public long benchmark_old() { +return roundUpSize_old(i); + } + + /** + * For reference, and to compare benchmark numbers, this is the original method. + */ + private static long roundUpSize_old(long size) { +long remainder = size % 8; +if (remainder != 0) { + size += 8 - remainder; +} +return size; + } +} diff --git a/geode-core/src/main/java/org/apache/geode/internal/JvmSizeUtils.java b/geode-core/src/main/java/org/apache/geode/internal/JvmSizeUtils.java index 0731d8395e..673f1a0c55 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/JvmSizeUtils.java +++ b/geode-core/src/main/java/org/apache/geode/internal/JvmSizeUtils.java @@ -135,15 +135,12 @@ public class JvmSizeUtils { return objectHeaderSize; } + /** + * Round up to the nearest 8 bytes. Experimentally, this is what we've seen the sun 32 bit JVM do + * with object size. + */ public static long roundUpSize(long size) { -// Round up to the nearest 8 bytes. Experimentally, this -// is what we've seen the sun 32 bit VM do with object size. -// See https://wiki.gemstone.com/display/rusage/Per+Entry+Overhead -long remainder = size % 8; -if (remainder != 0) { - size += 8 - remainder; -} -return size; +return ((size + 7) & (-8)); } public static
[geode] branch develop updated: GEODE-10160: fixes SizeableByteArrayList sizing (#7519)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 4cae7ac076 GEODE-10160: fixes SizeableByteArrayList sizing (#7519) 4cae7ac076 is described below commit 4cae7ac07641780663f648ef533cdb9a4b978aac Author: Steve Sienkowski <30511577+steve-si...@users.noreply.github.com> AuthorDate: Wed Apr 6 10:13:38 2022 -0400 GEODE-10160: fixes SizeableByteArrayList sizing (#7519) * Update SizeableByteArrayList with overrides for LinkedList's set() and add() methods to ensure memory overhead is updated appropriately. This helps to correct sizing issues in other RedisList methods such as LINSERT and LTRM. Co-authored-by: Jens Deppe --- .../geode/redis/internal/data/RedisList.java | 19 +-- .../data/collections/SizeableByteArrayList.java| 58 ++- .../collections/SizeableByteArrayListTest.java | 190 - 3 files changed, 234 insertions(+), 33 deletions(-) diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisList.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisList.java index 1c48f384ef..4dc66335ad 100644 --- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisList.java +++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisList.java @@ -456,24 +456,7 @@ public class RedisList extends AbstractRedisData { public synchronized int elementInsert(byte[] elementToInsert, byte[] referenceElement, boolean before) { -int i = 0; -ListIterator iterator = elementList.listIterator(); - -while (iterator.hasNext()) { - if (Arrays.equals(iterator.next(), referenceElement)) { -if (before) { - iterator.previous(); - iterator.add(elementToInsert); - return i; -} else { - iterator.add(elementToInsert); - return i + 1; -} - } - i++; -} - -return -1; +return elementList.insert(elementToInsert, referenceElement, before); } public synchronized void elementInsert(byte[] toInsert, int index) { diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/collections/SizeableByteArrayList.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/collections/SizeableByteArrayList.java index fedc73470b..2e74a61889 100644 --- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/collections/SizeableByteArrayList.java +++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/collections/SizeableByteArrayList.java @@ -136,20 +136,22 @@ public class SizeableByteArrayList extends LinkedList implements Sizeabl } /** - * @param remove in order (smallest to largest) list of indexes to remove + * @param removalList in order (smallest to largest) list of indexes to remove */ - public void removeIndexes(List remove) { -int removeIndex = 0; -int firstIndexToRemove = remove.get(0); + public void removeIndexes(List removalList) { +int removalListIndex = 0; +int firstIndexToRemove = removalList.get(0); +int lastIndexToRemove = removalList.get(removalList.size() - 1); + ListIterator iterator = listIterator(firstIndexToRemove); // Iterates only through the indexes to remove -for (int i = firstIndexToRemove; i <= remove.get(remove.size() - 1); i++) { +for (int index = firstIndexToRemove; index <= lastIndexToRemove; index++) { byte[] element = iterator.next(); - if (i == remove.get(removeIndex)) { + if (index == removalList.get(removalListIndex)) { iterator.remove(); memberOverhead -= calculateByteArrayOverhead(element); -removeIndex++; +removalListIndex++; } } } @@ -175,6 +177,25 @@ public class SizeableByteArrayList extends LinkedList implements Sizeabl return element; } + @Override + public boolean removeLastOccurrence(Object o) { +throw new UnsupportedOperationException(); + } + + @Override + public byte[] set(int index, byte[] newElement) { +byte[] replacedElement = super.set(index, newElement); +memberOverhead -= calculateByteArrayOverhead(replacedElement); +memberOverhead += calculateByteArrayOverhead(newElement); +return replacedElement; + } + + @Override + public void add(int index, byte[] element) { +memberOverhead += calculateByteArrayOverhead(element); +super.add(index, element); + } + @Override public void addFirst(byte[] element) { memberOverhead += calculateByteArrayOverhead(element); @@ -187,8 +208,27 @@ public class SizeableByteArrayList extends LinkedList implements Sizeabl super.addLast(element); } - public boolean removeLastOccurrence(Object o) { -
[geode] branch develop updated: GEODE-10198: Fix LINSERT's case-sensitivity for arguments (#7552)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new f1d5a25877 GEODE-10198: Fix LINSERT's case-sensitivity for arguments (#7552) f1d5a25877 is described below commit f1d5a2587754e49f2c7e6f0e1fc39b0221fb8ec3 Author: Bala Kaza Venkata <43208983+balak...@users.noreply.github.com> AuthorDate: Tue Apr 5 14:16:32 2022 -0400 GEODE-10198: Fix LINSERT's case-sensitivity for arguments (#7552) LINSERT was case-sensitive with its arguments BEFORE/AFTER.Redis implementation of LINSERT is not case-sensitive. --- .../resources/0001-configure-redis-tests.patch | 70 ++ .../commands/executor/list/LInsertExecutor.java| 4 +- 2 files changed, 19 insertions(+), 55 deletions(-) diff --git a/geode-for-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch b/geode-for-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch index 8ea96fe42f..6bf8dbd05f 100644 --- a/geode-for-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch +++ b/geode-for-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch @@ -1362,13 +1362,13 @@ index b5bd48cb0..5b9a529c7 100644 r linsert key $where $otherele $ele } diff --git a/tests/unit/type/list.tcl b/tests/unit/type/list.tcl -index 1557082a2..5395920c7 100644 +index 1557082a2..3d6a3ace4 100644 --- a/tests/unit/type/list.tcl +++ b/tests/unit/type/list.tcl @@ -85,130 +85,130 @@ start_server { assert_encoding quicklist $key } - + -foreach {type large} [array get largevalue] { -test "BLPOP, BRPOP: single existing list - $type" { -set rd [redis_deferring_client] @@ -1551,12 +1551,12 @@ index 1557082a2..5395920c7 100644 + # r lpush list b + # $rd read + # } {list b} - + test "BLPOP with same key multiple times should work (issue #801)" { set rd [redis_deferring_client] -r del list1 list2 +r del "{tag}list1" "{tag}list2" - + # Data arriving after the BLPOP. -$rd blpop list1 list2 list2 list1 0 -r lpush list1 a @@ -1570,7 +1570,7 @@ index 1557082a2..5395920c7 100644 +$rd blpop "{tag}list1" "{tag}list2" "{tag}list2" "{tag}list1" 0 +r lpush "{tag}list2" b +assert_equal [$rd read] {{{tag}list2} b} - + # Data already there. -r lpush list1 a -r lpush list2 b @@ -1610,13 +1610,13 @@ index 1557082a2..5395920c7 100644 + # r exec + # $rd read + # } {list c} - + test "BLPOP with variadic LPUSH" { set rd [redis_deferring_client] @@ -222,203 +222,204 @@ start_server { assert_equal foo [lindex [r lrange blist 0 -1] 0] } - + -test "BRPOPLPUSH with zero timeout should block indefinitely" { -set rd [redis_deferring_client] -r del blist target @@ -2018,7 +2018,7 @@ index 1557082a2..5395920c7 100644 @@ -434,11 +435,11 @@ start_server { assert_error "ERR*is negative*" {$rd read} } - + -test "$pop: with non-integer timeout" { -set rd [redis_deferring_client] -$rd $pop blist1 1.1 @@ -2029,11 +2029,11 @@ index 1557082a2..5395920c7 100644 +#$rd $pop blist1 1.1 +#assert_error "ERR*not an integer*" {$rd read} +#} - + test "$pop: with zero timeout should block indefinitely" { # To test this, use a timeout of 0 and wait a second. -@@ -452,83 +453,84 @@ start_server { - +@@ -452,65 +453,66 @@ start_server { + test "$pop: second argument is not a list" { set rd [redis_deferring_client] -r del blist1 blist2 @@ -2044,7 +2044,7 @@ index 1557082a2..5395920c7 100644 +$rd $pop "{tag}blist1" "{tag}blist2" 1 assert_error "WRONGTYPE*" {$rd read} } - + test "$pop: timeout" { set rd [redis_deferring_client] -r del blist1 blist2 @@ -2053,7 +2053,7 @@ index 1557082a2..5395920c7 100644 +$rd $pop "{tag}blist1" "{tag}blist2" 1 assert_equal {} [$rd read] } - + test "$pop: arguments are empty" { set rd [redis_deferring_client] -r del blist1 blist2 @@ -2124,7 +2124,7 @@ index 1557082a2..5395920c7 100644 + # assert_equal 0 [r rpushx xlist a] + # assert_equal 0 [r llen xlist] + # } - + foreach {type large} [array get largevalue] { -test "LPUSHX, RPUSHX -
[geode] branch develop updated: GEODE-10126: Replace Geode for Redis properties with system properties (#7478)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new ee1c412d8a GEODE-10126: Replace Geode for Redis properties with system properties (#7478) ee1c412d8a is described below commit ee1c412d8af3e6311f569948c3248eddc1fe8009 Author: Jens Deppe AuthorDate: Tue Apr 5 09:53:00 2022 -0700 GEODE-10126: Replace Geode for Redis properties with system properties (#7478) * GEODE-10126: Replace Geode for Redis properties with system properties - All previous Geode for Redis properties that were defined in geode-core are replaced by java system properties. - gemfire.geode-for-redis-port - gemfire.geode-for-redis-bind-address - gemfire.geode-for-redis-bind-username - gemfire.geode-for-redis-redundant-copies - gemfire.geode-for-redis-enabled - Redis is enabled (using defaults) if the `enabled` property is set to true OR if any of the other properties are explicitly set as java system properties. - Introduce `RedisConfiguration` interface to access properties. - Concrete implementation of `SystemPropertyBasedRedisConfiguration` that uses system properties to define Radish properties. - Integration Tests use `TestRedisConfiguration` to avoid having to set system properties. - Services started by Geode (`CacheService`s) that throw exceptions during initialization will cause the Cache to fail to startup. Previously any such errors were only logged. - Default bind address is explicitly 0.0.0.0 which is more expressive than just an empty string --- .../geode/distributed/ConfigurationProperties.java | 77 -- .../internal/AbstractDistributionConfig.java | 26 .../distributed/internal/DistributionConfig.java | 94 .../internal/DistributionConfigImpl.java | 80 +- .../geode/internal/cache/GemFireCacheImpl.java | 1 + .../internal/DistributionConfigImplTest.java | 8 +- .../GeodeRedisServerStartupAcceptanceTest.java | 139 ++--- ...eRedisServerStartupUsingGfshAcceptanceTest.java | 58 --- .../apache/geode/redis/GeodeRedisServerRule.java | 14 +- .../apache/geode/redis/TestRedisConfiguration.java | 97 .../test/dunit/rules/RedisClusterStartupRule.java | 18 +-- .../executor/hash/HashesAndCrashesDUnitTest.java | 6 +- .../commands/executor/key/RenameDUnitTest.java | 6 +- .../commands/executor/list/RPushDUnitTest.java | 4 +- .../commands/executor/sortedset/ZRemDUnitTest.java | 4 +- .../sortedset/ZRemRangeByRankDUnitTest.java| 8 +- .../commands/executor/string/MSetDUnitTest.java| 6 +- .../commands/executor/string/MSetNXDUnitTest.java | 6 +- .../auth/AuthWhileServersRestartDUnitTest.java | 4 +- .../redis/session/SessionsAndCrashesDUnitTest.java | 4 +- .../executor/connection/AuthIntegrationTest.java | 26 ++-- .../geode/redis/internal/GeodeRedisServer.java | 23 +-- .../geode/redis/internal/GeodeRedisService.java| 25 ++- .../geode/redis/internal/RedisConfiguration.java | 59 +++ .../SystemPropertyBasedRedisConfiguration.java | 170 + .../redis/internal/netty/NettyRedisServer.java | 15 +- .../redis/internal/services/RegionProvider.java| 10 +- 27 files changed, 540 insertions(+), 448 deletions(-) diff --git a/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java b/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java index d8d32565a6..1a4e205e2e 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java @@ -1920,83 +1920,6 @@ public interface ConfigurationProperties { * Since: Geode 1.0 */ String OFF_HEAP_MEMORY_SIZE = "off-heap-memory-size"; - /** - * The static String definition of the "geode-for-redis-bind-address" property - * - * Description: Specifies the address on which Geode for Redis is - * listening. If set to the empty string or this property is not specified, the server listens on - * all local addresses. - * - * Default: "" - * - * Since: Geode 1.15 - */ - String GEODE_FOR_REDIS_BIND_ADDRESS = "geode-for-redis-bind-address"; - /** - * The static String definition of the "geode-for-redis-enabled" property - * - * Description: When the default value of false, Geode for Redis is - * not available. - * Set to true to enable Geode for Redis. - * - * Default: false - * When the default value of false, Geode for Redis is not available. - * Set to true to enable Geode for Redis. - * - * Since: G
[geode] branch develop updated: GEODE-10125: Switch Radish data structures to use DataSerializable (#7512)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 5dce03c GEODE-10125: Switch Radish data structures to use DataSerializable (#7512) 5dce03c is described below commit 5dce03c9136e66d2497fdcbad8943620442d956b Author: Jens Deppe AuthorDate: Fri Apr 1 06:29:14 2022 -0700 GEODE-10125: Switch Radish data structures to use DataSerializable (#7512) --- .../codeAnalysis/sanctionedDataSerializables.txt | 24 ++--- .../geode/redis/internal/GeodeRedisService.java| 31 ++--- .../geode/redis/internal/RedisConstants.java | 13 .../redis/internal/data/AbstractRedisData.java | 7 ++-- .../geode/redis/internal/data/NullRedisData.java | 31 - .../geode/redis/internal/data/RedisData.java | 4 +-- .../geode/redis/internal/data/RedisHash.java | 34 +-- .../apache/geode/redis/internal/data/RedisKey.java | 32 -- .../geode/redis/internal/data/RedisList.java | 35 +-- .../apache/geode/redis/internal/data/RedisSet.java | 34 +-- .../geode/redis/internal/data/RedisSortedSet.java | 35 ++- .../geode/redis/internal/data/RedisString.java | 33 +- .../data/delta/AddByteArrayDoublePairs.java| 6 ++-- .../internal/data/delta/AddByteArrayPairs.java | 6 ++-- .../redis/internal/data/delta/AddByteArrays.java | 6 ++-- .../internal/data/delta/AddByteArraysTail.java | 6 ++-- .../internal/data/delta/RemoveByteArrays.java | 6 ++-- .../internal/data/delta/RemoveElementsByIndex.java | 6 ++-- .../data/delta/ReplaceByteArrayAtOffset.java | 6 ++-- .../data/delta/ReplaceByteArrayDoublePairs.java| 6 ++-- .../internal/data/delta/ReplaceByteArrays.java | 6 ++-- .../internal/data/delta/ReplaceByteAtOffset.java | 7 ++-- .../geode/redis/internal/pubsub/Publisher.java | 39 ++ .../internal/services/cluster/RedisMemberInfo.java | 36 ++-- ...serialization.DataSerializableFixedIdRegistrant | 16 - .../geode/redis/internal/data/RedisHashTest.java | 5 ++- .../geode/redis/internal/data/RedisListTest.java | 8 ++--- .../geode/redis/internal/data/RedisSetTest.java| 10 +++--- .../redis/internal/data/RedisSortedSetTest.java| 5 ++- .../geode/redis/internal/data/RedisStringTest.java | 8 ++--- .../serialization/DataSerializableFixedID.java | 12 +-- 31 files changed, 212 insertions(+), 301 deletions(-) diff --git a/geode-for-redis/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt b/geode-for-redis/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt index 5c1cf88..096dd65 100644 --- a/geode-for-redis/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt +++ b/geode-for-redis/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt @@ -7,32 +7,32 @@ fromData,8 toData,8 org/apache/geode/redis/internal/data/RedisHash,2 -toData,15 -fromData,58 +toData,14 +fromData,55 org/apache/geode/redis/internal/data/RedisKey,2 fromData,19 toData,19 org/apache/geode/redis/internal/data/RedisList,2 -toData,55 -fromData,42 +toData,52 +fromData,39 org/apache/geode/redis/internal/data/RedisSet,2 -toData,55 -fromData,51 +toData,52 +fromData,48 org/apache/geode/redis/internal/data/RedisSortedSet,2 -toData,15 -fromData,86 +toData,14 +fromData,83 org/apache/geode/redis/internal/data/RedisString,2 -toData,15 -fromData,15 +toData,14 +fromData,14 org/apache/geode/redis/internal/pubsub/Publisher$PublishRequest,2 -fromData,55 -toData,61 +fromData,53 +toData,59 org/apache/geode/redis/internal/services/cluster/RedisMemberInfo,2 fromData,28 diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/GeodeRedisService.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/GeodeRedisService.java index 6a72f37..ba87db7 100644 --- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/GeodeRedisService.java +++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/GeodeRedisService.java @@ -23,23 +23,10 @@ import org.apache.geode.distributed.internal.ResourceEvent; import org.apache.geode.distributed.internal.ResourceEventsListener; import org.apache.geode.internal.cache.CacheService; import org.apache.geode.internal.cache.InternalCache; -import org.apache.geode.internal.serialization.DataSerializableFixedID; -import org.apache.geode.internal.serialization.DataSerializableFixedIdRegistrant; -import org.apache.geode.internal.serialization.DataSerializableFixedIdRegistrar; import org.apache.geode.logging.internal.log4j.api.LogService; import
[geode] branch develop updated: GEODE-10191: Radish RENAME and RESTORE create notification events (#7537)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 3a8044a GEODE-10191: Radish RENAME and RESTORE create notification events (#7537) 3a8044a is described below commit 3a8044aeec9d492182c4bf1a4a311fdc382a393d Author: Jens Deppe AuthorDate: Thu Mar 31 20:26:59 2022 -0700 GEODE-10191: Radish RENAME and RESTORE create notification events (#7537) - Both of these commands have the ability to create events to satisfy BLPOP. - Introduce a NotificationEvent enum which is passed to fireEvent. - Previously the RedisCommandType was being passed, but this does not work for RENAME which creates RENAME_FROM and RENAME_TO events. In the future, other commands will need to create multiple events too. --- .../list/AbstractBLPopIntegrationTest.java | 32 ++ .../internal/eventing/EventDistributorTest.java| 3 +- .../apache/geode/codeAnalysis/excludedClasses.txt | 1 + .../executor/key/AbstractRenameExecutor.java | 2 +- .../commands/executor/key/RestoreExecutor.java | 2 ++ .../redis/internal/data/AbstractRedisData.java | 10 +-- .../geode/redis/internal/data/NullRedisData.java | 3 +- .../geode/redis/internal/data/NullRedisList.java | 6 ++-- .../geode/redis/internal/data/RedisData.java | 3 +- .../geode/redis/internal/data/RedisList.java | 6 ++-- .../internal/eventing/BlockingCommandListener.java | 3 +- .../redis/internal/eventing/EventDistributor.java | 5 ++-- .../redis/internal/eventing/EventListener.java | 5 ++-- .../redis/internal/eventing/EventResponse.java | 3 +- .../{EventResponse.java => NotificationEvent.java} | 25 - .../internal/netty/ExecutionHandlerContext.java| 5 ++-- 16 files changed, 75 insertions(+), 39 deletions(-) diff --git a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/AbstractBLPopIntegrationTest.java b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/AbstractBLPopIntegrationTest.java index fd9b12a..f4d2fea 100755 --- a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/AbstractBLPopIntegrationTest.java +++ b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/AbstractBLPopIntegrationTest.java @@ -163,6 +163,38 @@ public abstract class AbstractBLPopIntegrationTest implements RedisIntegrationTe } @Test + public void testBLPopWhenValueGetsCreated_withRename() throws Exception { +String initialName = "{tag}initial"; +String changedName = "{tag}changed"; +jedis.lpush(initialName, "value1", "value2"); + +Future> future = executor.submit(() -> jedis.blpop(10, changedName)); +awaitEventDistributorSize(1); + +jedis.rename(initialName, changedName); + +assertThat(future.get()).containsExactly(changedName, "value2"); +assertThat(jedis.lpop(changedName)).isEqualTo("value1"); + } + + @Test + public void testBLPopWhenValueGetsCreated_withRestore() throws Exception { +String key = "key"; +jedis.lpush(key, "value1", "value2"); + +byte[] dumpBytes = jedis.dump(key); +jedis.del(key); + +Future> future = executor.submit(() -> jedis.blpop(10, key)); +awaitEventDistributorSize(1); + +jedis.restore(key, 0, dumpBytes); + +assertThat(future.get()).containsExactly(key, "value2"); +assertThat(jedis.lpop(key)).isEqualTo("value1"); + } + + @Test public void testConcurrentBLPop() throws Exception { int totalElements = 10_000; List accumulated = Collections.synchronizedList(new ArrayList<>(totalElements + 2)); diff --git a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/eventing/EventDistributorTest.java b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/eventing/EventDistributorTest.java index d8a4d1c..b7a3cb6 100644 --- a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/eventing/EventDistributorTest.java +++ b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/eventing/EventDistributorTest.java @@ -27,7 +27,6 @@ import java.util.stream.Collectors; import org.junit.Test; import org.apache.geode.redis.ConcurrentLoopingThreads; -import org.apache.geode.redis.internal.commands.RedisCommandType; import org.apache.geode.redis.internal.data.RedisKey; public class EventDistributorTest { @@ -45,7 +44,7 @@ public class EventDistributorTest { } @Override -public EventResponse process(RedisCommandType commandType, Redis
[geode] branch develop updated (86b5f7b -> 7c01027)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 86b5f7b GEODE-10127: Adds test to preserve correct marshalling behavior. (#7461) add 7c01027 GEODE-10190: Improve runntime of MSetIntegrationTest and RenameIntegratinoTest (#7511) No new revisions were added by this update. Summary of changes: .../commands/executor/key/AbstractRenameIntegrationTest.java| 6 +++--- .../commands/executor/string/AbstractMSetIntegrationTest.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-)
[geode] branch develop updated (4b2f368 -> 5aa6b62)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 4b2f368 GEODE-9983: Implement RPOPLPUSH command (#7467) add 5aa6b62 GEODE-10171: AbstractRedisData version being incremented for no-op operations can lead to corruption (#7496) No new revisions were added by this update. Summary of changes: .../apache/geode/redis/internal/data/AbstractRedisData.java | 4 .../java/org/apache/geode/redis/internal/data/RedisSet.java | 8 .../org/apache/geode/redis/internal/data/RedisListTest.java | 11 +++ .../org/apache/geode/redis/internal/data/RedisSetTest.java| 11 +++ 4 files changed, 30 insertions(+), 4 deletions(-)
[geode] branch develop updated: GEODE-9946: Add Radish LREM command (#7431)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 1f668a2 GEODE-9946: Add Radish LREM command (#7431) 1f668a2 is described below commit 1f668a2fa94ab77172670b22fc8310ef8198b243 Author: Kris10 AuthorDate: Thu Mar 24 19:53:15 2022 -0700 GEODE-9946: Add Radish LREM command (#7431) This implements a version of the Redis LREM command, which is used for list data types. Associated tests were also added. For a list stored at a key, lrem removes the first given count occurrences equal to the element specified. A positive count starts at the head, while a negative count starts at the tail. If the count is 0, it removes all occurrences of the element. It returns the amount of elements actually removed. ApplyRemoveElementsByIndex delta was modified to remove elements in one iteration. A new delta was added to remove elements in one iteration starting from the tail. --- .../tools_modules/geode_for_redis.html.md.erb | 34 ++-- geode-for-redis/README.md | 1 + .../list/LRemNativeRedisAcceptanceTest.java| 37 .../commands/executor/list/LRemDUnitTest.java | 200 + .../executor/list/AbstractLRemIntegrationTest.java | 165 + .../executor/list/LRemIntegrationTest.java | 31 .../server/AbstractHitsMissesIntegrationTest.java | 5 + .../redis/internal/commands/RedisCommandType.java | 2 + .../commands/executor/list/LRemExecutor.java | 51 ++ .../redis/internal/data/AbstractRedisData.java | 3 +- .../geode/redis/internal/data/NullRedisList.java | 6 + .../geode/redis/internal/data/RedisList.java | 39 +++- .../data/collections/SizeableByteArrayList.java| 71 .../internal/data/delta/RemoveElementsByIndex.java | 5 + .../geode/redis/internal/data/RedisListTest.java | 46 + .../collections/SizeableByteArrayListTest.java | 58 +- 16 files changed, 721 insertions(+), 33 deletions(-) diff --git a/geode-docs/tools_modules/geode_for_redis.html.md.erb b/geode-docs/tools_modules/geode_for_redis.html.md.erb index 1f4346f..2e1a69d0 100644 --- a/geode-docs/tools_modules/geode_for_redis.html.md.erb +++ b/geode-docs/tools_modules/geode_for_redis.html.md.erb @@ -189,23 +189,23 @@ Could not connect to Redis at 127.0.0.1:6379: Connection refused | INCRBY | INCRBYFLOAT| INFO **[4]** | KEYS | | LINDEX | LINSERT| LLEN | LOLWUT | | LPOP | LPUSH | LPUSHX | LRANGE | -| LSET | MGET | MSET | MSETNX | -| PERSIST| PEXPIRE| PEXPIREAT | PING | -| PSETEX | PSUBSCRIBE | PTTL | PUBLISH | -| PUBSUB | PUNSUBSCRIBE | RENAME | RENAMENX | -| RESTORE| RPUSH | RPOP | SADD | -| SCARD | SDIFF | SDIFFSTORE | SET | -| SETEX | SETNX | SETRANGE | SINTER | -| SINTERSTORE| SISMEMBER | SMEMBERS | SMOVE | -| SPOP | SRANDMEMBER| SREM | SSCAN **[3]** | -| STRLEN | SUBSCRIBE | SUNION | SUNIONSTORE | -| TTL| TYPE | UNSUBSCRIBE| QUIT | -| ZADD | ZCARD | ZCOUNT | ZINCRBY | -| ZINTERSTORE| ZLEXCOUNT | ZPOPMAX| ZPOPMIN | -| ZRANGE | ZRANGEBYLEX| ZRANGEBYSCORE | ZRANK | -| ZREM | ZREMRANGEBYLEX | ZREMRANGEBYRANK| ZREMRANGEBYSCORE | -| ZREVRANGE | ZREVRANGEBYLEX | ZREVRANGEBYSCORE | ZREVRANK | -| ZSCAN **[3]** | ZSCORE | ZUNIONSTORE| | +| LREM | LSET | MGET | MSET | +| MSETNX | PERSIST| PEXPIRE| PEXPIREAT | +| PING | PSETEX | PSUBSCRIBE | PTTL | +| PUBLISH| PUBSUB | PUNSUBSCRIBE | RENAME | +| RENAMENX | RESTORE| RPUSH | RPOP | +| SADD | SCARD | SDIFF | SDIFFSTORE | +| SET| SETEX | SETNX | SETRANGE | +| SINTER
[geode] branch develop updated (c175096 -> dca393f)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from c175096 GEODE-10127: Use correct hostname in WAN with LB test add dca393f GEODE-10108: Remove extra enum written in ReplaceByteArrayAtOffset (#7477) No new revisions were added by this update. Summary of changes: .../data/delta/ReplaceByteArrayAtOffset.java | 1 - .../redis/internal/data/DeltaClassesJUnitTest.java | 71 ++ 2 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 geode-for-redis/src/test/java/org/apache/geode/redis/internal/data/DeltaClassesJUnitTest.java
[geode] branch develop updated: GEODE-10048: Add framework for Redis events and BLPOP command (#7408)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 6b43b76 GEODE-10048: Add framework for Redis events and BLPOP command (#7408) 6b43b76 is described below commit 6b43b76e3d5a9c5b0c84df8e1995d61528871068 Author: Jens Deppe AuthorDate: Tue Mar 22 19:47:00 2022 -0700 GEODE-10048: Add framework for Redis events and BLPOP command (#7408) * GEODE-10048: Add framework for Redis events and BLPOP command This commit adds a simple eventing framework to be used by blocking commands as well as keyspace event notification (still to be implemented). The main components are: - EventListener: an interface to be immplemented by anything wishing to receive events. Currently only implemented for blocking commands in the form of BlockingCommandListener. - EventDistributor: the component to which listeners are registered and where events are received and distributed. A single EventDistributor exists in the system and is associated with each ExecutionHandlerContext. - Event: not implemented as a separate class but logically consists of the command (RedisCommandType) and key (RedisKey). When a blocking command receives a relevant event the command is resubmitted into the Netty pipeline. This also means that something could happen (another command) that causes the blocking command to re-block and not complete. This is also what happens with native Redis. For example: - BLPOP 0 A executes and blocks - LPUSH A some-value - Before LPUSH fires an event, LPOP A is received but needs to wait to acquire the lock on A - LPUSH fires an event which the BLPOP listener receives and resubmits BLPOP into the pipeline - Once LPUSH completes, LPOP is next and removes A - BLPOP A runs and ends up blocking again because there is nothing to pop from A --- .../list/BLPopNativeRedisAcceptanceTest.java | 41 .../commands/executor/list/BLPopDUnitTest.java | 120 .../list/AbstractBLPopIntegrationTest.java | 201 +++ .../executor/list/BLPopIntegrationTest.java| 37 .../server/AbstractHitsMissesIntegrationTest.java | 6 + .../eventing/BlockingCommandListenerTest.java | 182 ++ .../internal/eventing/EventDistributorTest.java| 213 + .../apache/geode/codeAnalysis/excludedClasses.txt | 23 +-- .../geode/redis/internal/GeodeRedisServer.java | 12 +- .../geode/redis/internal/RedisConstants.java | 2 + .../geode/redis/internal/commands/Command.java | 21 +- .../redis/internal/commands/RedisCommandType.java | 3 + .../internal/commands/executor/RedisResponse.java | 12 ++ .../commands/executor/list/BLPopExecutor.java | 61 ++ .../commands/executor/list/LPushExecutor.java | 5 +- .../commands/executor/list/RPushExecutor.java | 2 +- .../geode/redis/internal/data/NullRedisList.java | 17 +- .../geode/redis/internal/data/RedisList.java | 50 - .../internal/eventing/BlockingCommandListener.java | 123 .../redis/internal/eventing/EventDistributor.java | 105 ++ .../redis/internal/eventing/EventListener.java | 62 ++ .../redis/internal/eventing/EventResponse.java | 34 .../apache/geode/redis/internal/netty/Client.java | 6 +- .../apache/geode/redis/internal/netty/Coder.java | 6 + .../internal/netty/ExecutionHandlerContext.java| 46 +++-- .../redis/internal/netty/NettyRedisServer.java | 8 +- .../redis/internal/netty/StringBytesGlossary.java | 6 + .../redis/internal/services/RegionProvider.java| 4 +- .../netty/ExecutionHandlerContextTest.java | 2 +- 29 files changed, 1344 insertions(+), 66 deletions(-) diff --git a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/BLPopNativeRedisAcceptanceTest.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/BLPopNativeRedisAcceptanceTest.java new file mode 100755 index 000..2c54bdd --- /dev/null +++ b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/BLPopNativeRedisAcceptanceTest.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/L
[geode] branch develop updated (c77f262 -> d44df37)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from c77f262 GEODE-9948: Implement LINSERT Command (#7392) add d44df37 GEODE-10138: Add Versioning Support for Radish LPUSH (#7459) No new revisions were added by this update. Summary of changes: .../apache/geode/redis/internal/data/RedisList.java | 8 ++-- .../apache/geode/redis/internal/data/RedisSet.java | 21 + .../redis/internal/data/delta/AddByteArrays.java| 8 +--- .../geode/redis/internal/data/delta/DeltaType.java | 2 +- 4 files changed, 25 insertions(+), 14 deletions(-)
[geode] branch develop updated (d67aba9 -> e83107c)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from d67aba9 GEODE-10105: when stopping gw sender, for pending events set possible… (#7422) add e83107c GEODE-9951: Add support for Radish RPOP command (#7418) No new revisions were added by this update. Summary of changes: .../tools_modules/geode_for_redis.html.md.erb | 26 geode-for-redis/README.md | 1 + ...est.java => RPopNativeRedisAcceptanceTest.java} | 3 +- .../commands/executor/list/LPopDUnitTest.java | 50 +++--- .../{LPopDUnitTest.java => RPopDUnitTest.java} | 76 ++ .../executor/list/AbstractLPopIntegrationTest.java | 12 ++-- ...nTest.java => AbstractRPopIntegrationTest.java} | 70 +++- ...tegrationTest.java => RPopIntegrationTest.java} | 8 +-- .../server/AbstractHitsMissesIntegrationTest.java | 5 ++ .../executor/server/CommandIntegrationTest.java| 4 ++ .../redis/internal/commands/RedisCommandType.java | 2 + .../list/{LPopExecutor.java => RPopExecutor.java} | 6 +- .../geode/redis/internal/data/NullRedisList.java | 5 ++ .../geode/redis/internal/data/RedisList.java | 40 +--- .../geode/redis/internal/data/delta/DeltaType.java | 2 +- .../internal/data/delta/RemoveElementsByIndex.java | 3 +- 16 files changed, 173 insertions(+), 140 deletions(-) copy geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/{LLenNativeRedisAcceptanceTest.java => RPopNativeRedisAcceptanceTest.java} (94%) mode change 100755 => 100644 copy geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/list/{LPopDUnitTest.java => RPopDUnitTest.java} (71%) copy geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/{AbstractLPopIntegrationTest.java => AbstractRPopIntegrationTest.java} (60%) mode change 100755 => 100644 copy geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/{LPopIntegrationTest.java => RPopIntegrationTest.java} (88%) mode change 100755 => 100644 copy geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/list/{LPopExecutor.java => RPopExecutor.java} (94%) mode change 100755 => 100644
[geode] branch develop updated (e9a5243 -> 199132e)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from e9a5243 GEODE-9642: Wait for colocation completed at partitioned region initialization (#6909) add 199132e GEODE-9954: Implement Radish RPUSH command (#7417) No new revisions were added by this update. Summary of changes: .../tools_modules/geode_for_redis.html.md.erb | 59 +++--- geode-for-redis/README.md | 1 + ...st.java => RPushNativeRedisAcceptanceTest.java} | 2 +- .../commands/executor/key/RenameDUnitTest.java | 17 +- .../commands/executor/list/LPushDUnitTest.java | 3 +- .../commands/executor/list/RPushDUnitTest.java | 213 + ...Test.java => AbstractRPushIntegrationTest.java} | 79 +++- ...egrationTest.java => RPushIntegrationTest.java} | 2 +- .../server/AbstractHitsMissesIntegrationTest.java | 5 + .../redis/internal/commands/RedisCommandType.java | 3 + .../{LPushExecutor.java => RPushExecutor.java} | 4 +- .../redis/internal/data/AbstractRedisData.java | 11 ++ .../geode/redis/internal/data/NullRedisList.java | 17 +- .../geode/redis/internal/data/RedisList.java | 51 +++-- .../{AddByteArrays.java => AddByteArraysTail.java} | 16 +- .../geode/redis/internal/data/delta/DeltaType.java | 1 + .../geode/redis/internal/data/RedisListTest.java | 4 +- 17 files changed, 361 insertions(+), 127 deletions(-) copy geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/{LPushNativeRedisAcceptanceTest.java => RPushNativeRedisAcceptanceTest.java} (95%) create mode 100644 geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/list/RPushDUnitTest.java copy geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/{AbstractLPushIntegrationTest.java => AbstractRPushIntegrationTest.java} (57%) copy geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/{LPushIntegrationTest.java => RPushIntegrationTest.java} (94%) copy geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/list/{LPushExecutor.java => RPushExecutor.java} (94%) copy geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/delta/{AddByteArrays.java => AddByteArraysTail.java} (87%)
[geode] branch develop updated (8610ee7 -> 09cd192)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 8610ee7 GEODE-10103: Retrieve full region path names (#7419) add 09cd192 GEODE-10108: Add version field to AbstractRedisData and deltas (#7429) No new revisions were added by this update. Summary of changes: .../test/dunit/rules/RedisClusterStartupRule.java | 50 ++ .../commands/executor/string/StringsDUnitTest.java | 107 +++-- .../geode/redis/internal/data/DeltaDUnitTest.java | 9 +- .../codeAnalysis/sanctionedDataSerializables.txt | 5 +- .../redis/internal/data/AbstractRedisData.java | 30 +- .../geode/redis/internal/data/RedisString.java | 8 +- .../data/delta/AddByteArrayDoublePairs.java| 9 +- .../internal/data/delta/AddByteArrayPairs.java | 9 +- .../redis/internal/data/delta/AddByteArrays.java | 11 ++- .../redis/internal/data/delta/AppendByteArray.java | 12 ++- .../geode/redis/internal/data/delta/DeltaInfo.java | 28 +- .../geode/redis/internal/data/delta/DeltaType.java | 18 +++- .../internal/data/delta/RemoveByteArrays.java | 11 ++- .../internal/data/delta/RemoveElementsByIndex.java | 17 ++-- .../data/delta/ReplaceByteArrayAtOffset.java | 8 +- .../data/delta/ReplaceByteArrayDoublePairs.java| 9 +- .../internal/data/delta/ReplaceByteArrays.java | 9 +- .../internal/data/delta/ReplaceByteAtOffset.java | 9 +- .../redis/internal/data/delta/SetByteArray.java| 9 +- .../data/delta/SetByteArrayAndTimestamp.java | 10 +- .../redis/internal/data/delta/SetTimestamp.java| 9 +- .../sanctioned-geode-for-redis-serializables.txt | 2 +- 22 files changed, 289 insertions(+), 100 deletions(-)
[geode] branch develop updated: GEODE-9950: Add Radish LRANGE command (#7389)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 2cd5d82 GEODE-9950: Add Radish LRANGE command (#7389) 2cd5d82 is described below commit 2cd5d8271357b76e76c584577ae0c214cc5cdc16 Author: Kris10 AuthorDate: Mon Mar 7 08:39:34 2022 -0800 GEODE-9950: Add Radish LRANGE command (#7389) This implements a version of the Redis LRANGE command, which is used for list data types. Associated tests were also added. Given a key, it returns a list of elements in the range (inclusive) for the specified start index and stop index. Both the start and stop indexes are zero based, which starts at the head of the list. Negative indexes start at the tail of the list. LINDEX was modified to use a new method created in this commit. The method converts negative indexes to the corresponding positive index. --- .../tools_modules/geode_for_redis.html.md.erb | 8 +- geode-for-redis/README.md | 1 + .../list/LRangeNativeRedisAcceptanceTest.java} | 42 ++--- .../list/AbstractLRangeIntegrationTest.java| 186 + .../executor/list/LRangeIntegrationTest.java} | 44 + .../server/AbstractHitsMissesIntegrationTest.java | 9 +- .../redis/internal/commands/RedisCommandType.java | 2 + .../commands/executor/list/LRangeExecutor.java | 48 ++ .../geode/redis/internal/data/NullRedisList.java | 6 + .../geode/redis/internal/data/RedisList.java | 76 - 10 files changed, 343 insertions(+), 79 deletions(-) diff --git a/geode-docs/tools_modules/geode_for_redis.html.md.erb b/geode-docs/tools_modules/geode_for_redis.html.md.erb index dce2066..f75daf2 100644 --- a/geode-docs/tools_modules/geode_for_redis.html.md.erb +++ b/geode-docs/tools_modules/geode_for_redis.html.md.erb @@ -188,10 +188,10 @@ Could not connect to Redis at 127.0.0.1:6379: Connection refused | HSETNX | HSTRLEN | HVALS | INCR | | INCRBY | INCRBYFLOAT | INFO **[4]** | KEYS | | LINDEX | LLEN | LOLWUT | LPOP | -| LPUSH | LPUSHX | MGET | MSET | -| MSETNX | PERSIST | PEXPIRE | PEXPIREAT | -| PING | PSETEX | PSUBSCRIBE | PTTL | -| PUBLISH PUBSUB | PUNSUBSCRIBE | RENAME | +| LPUSH | LPUSHX | LRANGE | MGET | +| MSET | MSETNX | PERSIST | PEXPIRE | +| PEXPIREAT | PING | PSETEX | PSUBSCRIBE | +| PTTL | PUBLISH PUBSUB | PUNSUBSCRIBE | RENAME | | RENAMENX | RESTORE | SADD | SCARD | | SDIFF | SDIFFSTORE | SET | SETEX | | SETNX | SETRANGE | SINTER | SINTERSTORE | diff --git a/geode-for-redis/README.md b/geode-for-redis/README.md index 2c954e9..7cd1531 100644 --- a/geode-for-redis/README.md +++ b/geode-for-redis/README.md @@ -183,6 +183,7 @@ Geode for Redis implements a subset of the full Redis command set. - INFO 2 - KEYS - LINDEX +- LRANGE - MGET - MSET - MSETNX diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisList.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/LRangeNativeRedisAcceptanceTest.java old mode 100644 new mode 100755 similarity index 52% copy from geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisList.java copy to geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/LRangeNativeRedisAcceptanceTest.java index 65006eb..6e4b27f --- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisList.java +++ b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/LRangeNativeRedisAcceptanceTest.java @@ -11,48 +11,26 @@ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. - * */ +package org.apache.geode.redis.internal.commands.executor.list; -package org.apache.geode.redis.internal.data; - -import java.util.List; +import org.junit.ClassRule; -import org.apache.geode.cache.Region; +import org.apache.geode.redis.NativeRedisClusterTestRule; -class NullRedisList extends RedisList { +public class LRangeNativeRedisAcceptanceTest extends AbstractLRangeIntegrationTest { - NullRedisList() { -super(); - } + @ClassRule + public static NativeRedisClusterTestRule redis = new NativeRedisClusterTestRule(); @Override - public boolean isNull() { -return true; + public int getPort() { +return redis.getExposedPorts().get(0); } @Override - public long lpush(List elementsToAdd, Region region, RedisKey key, - final boolean onlyIfExists) { -if (onlyIfExists) { - return 0; -} - -RedisList newList = new RedisList(); -for (byte[] element : elementsToAdd) { - newList.elementPu
[geode] branch develop updated (dc1f1ab -> 438a4d4)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from dc1f1ab Initial commit add 438a4d4 GEODE-9949: Implement Radish LPUSHX command (#7397) No new revisions were added by this update. Summary of changes: .../tools_modules/geode_for_redis.html.md.erb | 34 +++ ...t.java => LPushxNativeRedisAcceptanceTest.java} | 2 +- .../list/AbstractLPushIntegrationTest.java | 5 ++- ...est.java => AbstractLPushxIntegrationTest.java} | 50 ++ ...grationTest.java => LPushxIntegrationTest.java} | 2 +- .../server/AbstractHitsMissesIntegrationTest.java | 5 +++ .../redis/internal/commands/RedisCommandType.java | 3 ++ .../commands/executor/list/LPushExecutor.java | 13 -- .../LPushXExecutor.java} | 9 ++-- .../geode/redis/internal/data/NullRedisList.java | 7 ++- .../geode/redis/internal/data/RedisList.java | 7 ++- 11 files changed, 87 insertions(+), 50 deletions(-) copy geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/{LLenNativeRedisAcceptanceTest.java => LPushxNativeRedisAcceptanceTest.java} (93%) copy geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/{AbstractLPushIntegrationTest.java => AbstractLPushxIntegrationTest.java} (66%) copy geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/{LIndexIntegrationTest.java => LPushxIntegrationTest.java} (94%) copy geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/{key/PExpireAtExecutor.java => list/LPushXExecutor.java} (83%)
[geode] branch develop updated (45cbe7f -> b729702)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 45cbe7f GEODE-10063: Correctly set primary queue connection. (#7382) add b729702 GEODE-10083: Fix RedisProxy to correctly process MOVED response (#7394) No new revisions were added by this update. Summary of changes: .../geode/redis/internal/proxy/MovedResponseHandler.java | 10 -- .../redis/internal/proxy/RedisProxyInboundHandler.java | 14 +- .../redis/internal/proxy/RedisProxyOutboundHandler.java| 10 -- 3 files changed, 21 insertions(+), 13 deletions(-)
[geode] branch develop updated (e191407 -> 1fc35af)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from e191407 GEODE-10072: Restore japicmp report (#7383) add 1fc35af GEODE-9947: Add Radish LINDEX command (#7380) No new revisions were added by this update. Summary of changes: .../tools_modules/geode_for_redis.html.md.erb | 3 +- geode-for-redis/README.md | 1 + ...t.java => LIndexNativeRedisAcceptanceTest.java} | 3 +- .../list/AbstractLIndexIntegrationTest.java| 145 + ...grationTest.java => LIndexIntegrationTest.java} | 3 +- .../server/AbstractHitsMissesIntegrationTest.java | 5 + .../redis/internal/commands/RedisCommandType.java | 5 +- .../LIndexExecutor.java} | 34 ++--- .../geode/redis/internal/data/RedisList.java | 18 +++ 9 files changed, 194 insertions(+), 23 deletions(-) copy geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/{LLenNativeRedisAcceptanceTest.java => LIndexNativeRedisAcceptanceTest.java} (93%) create mode 100755 geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/AbstractLIndexIntegrationTest.java copy geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/{LLenIntegrationTest.java => LIndexIntegrationTest.java} (93%) copy geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/{string/DecrByExecutor.java => list/LIndexExecutor.java} (68%) mode change 100755 => 100644
[geode-benchmarks] branch develop updated: Fix Jedis version to the version defined by benchmarks
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git The following commit(s) were added to refs/heads/develop by this push: new d1ea34e Fix Jedis version to the version defined by benchmarks d1ea34e is described below commit d1ea34e37f8759643e26c429aaf4e2b8ec3247bb Author: Jens Deppe AuthorDate: Fri Feb 18 10:18:32 2022 -0800 Fix Jedis version to the version defined by benchmarks - Develop has moved to Jedis 4.1.1 which requires code changes here. Since benchmark runs against the 'baseline' and develop both just use benchmarks at develop the benchmark code cannot be updated until the baseline is moved beyond the Jedis 4.1.1 change. --- geode-benchmarks/build.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/geode-benchmarks/build.gradle b/geode-benchmarks/build.gradle index 53280be..5aed353 100644 --- a/geode-benchmarks/build.gradle +++ b/geode-benchmarks/build.gradle @@ -59,7 +59,9 @@ dependencies { geodeVersion = configurations.geodeVersionResolver.resolvedConfiguration.resolvedArtifacts.find {it.name == 'geode-core'}.moduleVersion.id.version logger.info("Building with Geode ${geodeVersion}.") - implementation platform("org.apache.geode:geode-all-bom:${geodeVersion}") + implementation platform("org.apache.geode:geode-all-bom:${geodeVersion}") { +exclude group: 'redis.clients' + } implementation(project(':harness'))
[geode] branch develop updated: GEODE-9998: Upgrade Jedis client from 3.6.3 to 4.1.1 (#7340)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 9305169 GEODE-9998: Upgrade Jedis client from 3.6.3 to 4.1.1 (#7340) 9305169 is described below commit 93051691eb5bda1277e901d04c554aa95419f9df Author: Eric Zoerner AuthorDate: Thu Feb 17 14:18:02 2022 -0800 GEODE-9998: Upgrade Jedis client from 3.6.3 to 4.1.1 (#7340) --- .../src/test/resources/expected-pom.xml| 2 +- .../gradle/plugins/DependencyConstraints.groovy| 2 +- .../apache/geode/redis/mocks/MockSubscriber.java | 23 +--- .../geode/redis/UserExpirationDUnitTest.java | 3 +- .../key/AbstractRenameRedirectionsDUnitTest.java | 2 +- .../commands/executor/key/RenameDUnitTest.java | 2 +- .../sortedset/ZAddIncrOptionDUnitTest.java | 8 +- .../commands/executor/sortedset/ZRemDUnitTest.java | 6 +- .../sortedset/ZRemRangeByLexDUnitTest.java | 6 +- .../sortedset/ZRemRangeByRankDUnitTest.java| 24 +++- .../sortedset/ZRemRangeByScoreDUnitTest.java | 6 +- .../auth/AuthWhileServersRestartDUnitTest.java | 7 +- .../StringsKillMultipleServersDUnitTest.java | 9 +- .../AbstractCommandPipeliningIntegrationTest.java | 14 ++- .../cluster/AbstractClusterIntegrationTest.java| 4 +- .../executor/cluster/ClusterIntegrationTest.java | 2 +- .../connection/AbstractEchoIntegrationTest.java| 8 +- .../hash/AbstractHScanIntegrationTest.java | 16 +-- .../hash/AbstractHashesIntegrationTest.java| 2 +- .../key/AbstractExistsIntegrationTest.java | 6 +- .../key/AbstractExpireIntegrationTest.java | 3 +- .../key/AbstractPersistIntegrationTest.java| 3 +- .../executor/key/AbstractScanIntegrationTest.java | 4 +- .../commands/executor/key/ScanIntegrationTest.java | 4 +- .../pubsub/AbstractSubCommandsIntegrationTest.java | 64 +-- .../AbstractSubscriptionsIntegrationTest.java | 6 +- .../server/AbstractHitsMissesIntegrationTest.java | 4 +- .../server/AbstractInfoIntegrationTest.java| 2 +- .../server/AbstractSlowlogIntegrationTest.java | 2 +- .../executor/server/ShutdownIntegrationTest.java | 12 +- .../executor/set/AbstractSScanIntegrationTest.java | 12 +- .../AbstractZInterStoreIntegrationTest.java| 123 +++-- .../sortedset/AbstractZPopMaxIntegrationTest.java | 2 +- .../sortedset/AbstractZPopMinIntegrationTest.java | 2 +- .../AbstractZRangeByScoreIntegrationTest.java | 2 +- .../sortedset/AbstractZRangeIntegrationTest.java | 6 +- .../AbstractZRevRangeByScoreIntegrationTest.java | 8 +- .../AbstractZRevRangeIntegrationTest.java | 7 +- .../sortedset/AbstractZScanIntegrationTest.java| 14 +-- .../AbstractZUnionStoreIntegrationTest.java| 75 ++--- .../string/AbstractBitOpIntegrationTest.java | 2 +- .../string/AbstractBitPosIntegrationTest.java | 2 +- 42 files changed, 254 insertions(+), 257 deletions(-) diff --git a/boms/geode-all-bom/src/test/resources/expected-pom.xml b/boms/geode-all-bom/src/test/resources/expected-pom.xml index 927e660..09bd9b3 100644 --- a/boms/geode-all-bom/src/test/resources/expected-pom.xml +++ b/boms/geode-all-bom/src/test/resources/expected-pom.xml @@ -460,7 +460,7 @@ redis.clients jedis -3.6.3 +4.1.1 xerces diff --git a/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy b/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy index 2633533..9041707 100644 --- a/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy +++ b/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy @@ -172,7 +172,7 @@ class DependencyConstraints implements Plugin { api(group: 'org.springframework.shell', name: 'spring-shell', version: get('springshell.version')) api(group: 'org.testcontainers', name: 'testcontainers', version: '1.15.3') api(group: 'pl.pragmatists', name: 'JUnitParams', version: '1.1.0') -api(group: 'redis.clients', name: 'jedis', version: '3.6.3') +api(group: 'redis.clients', name: 'jedis', version: '4.1.1') api(group: 'xerces', name: 'xercesImpl', version: '2.12.0') api(group: 'xml-apis', name: 'xml-apis', version: '1.4.01') api(group: 'org.junit-pioneer', name: 'junit-pioneer', version: '1.5.0') diff --git a/geode-for-redis/src/commonTest/java/org/apache/geode/redis/mocks/MockSubscriber.java b/geode-for-redis/src/commonTest/java/org/apache/geode/redis/mocks/MockSubscriber.java index e0549e9..bdd2592 100644 --- a/geode-for-redis/src/commonTest/java/org/apache/geode/redis
[geode] branch develop updated (5f79b21 -> 9ef20d9)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 5f79b21 GEODE-10057: Correct geode-for-redis docs (#7370) add 9ef20d9 GEODE-10034: Organize Geode For Redis Stats By Category (#7363) No new revisions were added by this update. Summary of changes: .../statistics/GeodeRedisStatsIntegrationTest.java | 57 + .../geode/redis/internal/GeodeRedisServer.java | 24 +-- .../redis/internal/statistics/GeodeRedisStats.java | 236 +++-- 3 files changed, 184 insertions(+), 133 deletions(-) create mode 100644 geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/statistics/GeodeRedisStatsIntegrationTest.java
[geode] branch develop updated (a98197b -> fc3f991)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from a98197b GEODE-9990: turn DiskAccessException into CacheClosedException (#7334) add fc3f991 GEODE-10032: Add Category to RedisCommandType (#7354) No new revisions were added by this update. Summary of changes: .../executor/server/CommandIntegrationTest.java| 15 +- .../apache/geode/codeAnalysis/excludedClasses.txt | 1 + .../geode/redis/internal/RedisConstants.java | 4 +- .../redis/internal/commands/RedisCommandType.java | 409 + ...ndExecutor.java => CommandCommandExecutor.java} | 16 +- 5 files changed, 277 insertions(+), 168 deletions(-) rename geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/server/{COMMANDCommandExecutor.java => CommandCommandExecutor.java} (85%)
[geode] branch support/1.15 updated: GEODE-9994 Make Redis RENAME atomic (#7328)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/support/1.15 by this push: new bff8082 GEODE-9994 Make Redis RENAME atomic (#7328) bff8082 is described below commit bff808245ab59e71a13e393a6301af444393abc4 Author: Eric Zoerner AuthorDate: Wed Feb 2 13:34:19 2022 -0800 GEODE-9994 Make Redis RENAME atomic (#7328) - change verification to allow for erroneous client retries - change error logging to warning level to prevent false negative test failure due to log (cherry picked from commit 6413c33d6b0050a1ebe7e88f9ea20295ab780cab) --- .../commands/executor/key/RenameDUnitTest.java | 117 + .../executor/key/AbstractRenameExecutor.java | 4 +- 2 files changed, 101 insertions(+), 20 deletions(-) diff --git a/geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/key/RenameDUnitTest.java b/geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/key/RenameDUnitTest.java index 73092a9..02dba47 100644 --- a/geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/key/RenameDUnitTest.java +++ b/geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/key/RenameDUnitTest.java @@ -15,6 +15,7 @@ package org.apache.geode.redis.internal.commands.executor.key; +import static org.apache.geode.distributed.ConfigurationProperties.GEODE_FOR_REDIS_PORT; import static org.apache.geode.test.dunit.rules.RedisClusterStartupRule.BIND_ADDRESS; import static org.apache.geode.test.dunit.rules.RedisClusterStartupRule.REDIS_CLIENT_TIMEOUT; import static org.assertj.core.api.Assertions.assertThat; @@ -33,6 +34,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicBoolean; +import org.apache.logging.log4j.Logger; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; @@ -43,16 +45,22 @@ import redis.clients.jedis.HostAndPort; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisCluster; +import org.apache.geode.cache.control.RebalanceFactory; +import org.apache.geode.cache.control.ResourceManager; +import org.apache.geode.internal.AvailablePortHelper; +import org.apache.geode.logging.internal.log4j.api.LogService; import org.apache.geode.redis.internal.RedisConstants; import org.apache.geode.redis.internal.data.RedisKey; import org.apache.geode.redis.internal.services.locking.LockingStripedCoordinator; import org.apache.geode.redis.internal.services.locking.StripedCoordinator; import org.apache.geode.test.awaitility.GeodeAwaitility; +import org.apache.geode.test.dunit.rules.ClusterStartupRule; import org.apache.geode.test.dunit.rules.MemberVM; import org.apache.geode.test.dunit.rules.RedisClusterStartupRule; import org.apache.geode.test.junit.rules.ExecutorServiceRule; public class RenameDUnitTest { + private static final Logger logger = LogService.getLogger(); @ClassRule public static RedisClusterStartupRule clusterStartUp = new RedisClusterStartupRule(3); @@ -61,14 +69,23 @@ public class RenameDUnitTest { public ExecutorServiceRule executor = new ExecutorServiceRule(); private static JedisCluster jedisCluster; - private static MemberVM locator; + private static MemberVM server1; + private static int locatorPort; + private static int server3Port; @BeforeClass public static void setup() { -locator = clusterStartUp.startLocatorVM(0); -clusterStartUp.startRedisVM(1, locator.getPort()); -clusterStartUp.startRedisVM(2, locator.getPort()); -clusterStartUp.startRedisVM(3, locator.getPort()); +final MemberVM locator = clusterStartUp.startLocatorVM(0); +locatorPort = locator.getPort(); +server1 = clusterStartUp.startRedisVM(1, locatorPort); +clusterStartUp.startRedisVM(2, locatorPort); + +server3Port = AvailablePortHelper.getRandomAvailableTCPPort(); +final String finalRedisPort = Integer.toString(server3Port); +final int finalLocatorPort = locatorPort; +clusterStartUp.startRedisVM(3, x -> x +.withProperty(GEODE_FOR_REDIS_PORT, finalRedisPort) +.withConnectionToLocator(finalLocatorPort)); int redisServerPort1 = clusterStartUp.getRedisPort(1); jedisCluster = @@ -211,6 +228,48 @@ public class RenameDUnitTest { } @Test + public void givenCrashDuringRename_thenDoesNotLeaveInconsistencies() throws Exception { +final AtomicBoolean running = new AtomicBoolean(true); + +final List hashtags = new ArrayList<>(); +hashtags.add(clusterStartUp.getKeyOnServer("rename", 1)); +hashtags.add(clusterStartUp.getKeyOnServer("rename", 2)); +hashtags.add(clusterStart
[geode] branch develop updated (064fe00 -> 6413c33)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 064fe00 GEODE-: Update the Geode for Redis documentation (#7326) add 6413c33 GEODE-9994 Make Redis RENAME atomic (#7328) No new revisions were added by this update. Summary of changes: .../commands/executor/key/RenameDUnitTest.java | 117 + .../executor/key/AbstractRenameExecutor.java | 4 +- 2 files changed, 101 insertions(+), 20 deletions(-)
[geode] 02/02: GEODE-9995: Use ephemeral ports to avoid port in use issues (#7329)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git commit 55396d4650f5214b27982b43ea7b59d05a23ba55 Author: Jens Deppe AuthorDate: Mon Jan 31 12:04:15 2022 -0800 GEODE-9995: Use ephemeral ports to avoid port in use issues (#7329) (cherry picked from commit 00ccce2a652e6fe21b8af8a162cff35ab47f036c) --- ...eRedisServerStartupUsingGfshAcceptanceTest.java | 28 +++--- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/GeodeRedisServerStartupUsingGfshAcceptanceTest.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/GeodeRedisServerStartupUsingGfshAcceptanceTest.java index 6ce72a5..1377510 100644 --- a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/GeodeRedisServerStartupUsingGfshAcceptanceTest.java +++ b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/GeodeRedisServerStartupUsingGfshAcceptanceTest.java @@ -108,8 +108,8 @@ public class GeodeRedisServerStartupUsingGfshAcceptanceTest { @Test public void gfshStartsRedisServer_whenRedisEnabled() { -String command = -"start server --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_ENABLED + "=true"; +String command = "start server --server-port=0 " ++ "--J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_ENABLED + "=true"; gfshRule.execute(command); try (Jedis jedis = new Jedis(BIND_ADDRESS, 6379)) { @@ -120,9 +120,9 @@ public class GeodeRedisServerStartupUsingGfshAcceptanceTest { @Test public void gfshStartsRedisServer_whenCustomPort() { int port = AvailablePortHelper.getRandomAvailableTCPPort(); -String command = -"start server --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_ENABLED + "=true" -+ " --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_PORT + "=" + port; +String command = "start server --server-port=0 " ++ "--J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_ENABLED + "=true" ++ " --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_PORT + "=" + port; gfshRule.execute(command); @@ -135,11 +135,11 @@ public class GeodeRedisServerStartupUsingGfshAcceptanceTest { public void gfshStartsRedisServer_whenCustomPortAndBindAddress() { int port = AvailablePortHelper.getRandomAvailableTCPPort(); String anyLocal = LocalHostUtil.getAnyLocalAddress().getHostAddress(); -String command = -"start server --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_ENABLED + "=true" -+ " --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_PORT + "=" + port -+ " --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_BIND_ADDRESS + "=" -+ anyLocal; +String command = "start server --server-port=0 " ++ "--J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_ENABLED + "=true" ++ " --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_PORT + "=" + port ++ " --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_BIND_ADDRESS + "=" ++ anyLocal; gfshRule.execute(command); @@ -152,10 +152,10 @@ public class GeodeRedisServerStartupUsingGfshAcceptanceTest { public void gfshDoesNotStartRedisServer_whenNotRedisEnabled() { int port = AvailablePortHelper.getRandomAvailableTCPPort(); String anyLocal = LocalHostUtil.getAnyLocalAddress().getHostAddress(); -String command = -"start server --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_PORT + "=" + port -+ " --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_BIND_ADDRESS + "=" -+ anyLocal; +String command = "start server --server-port=0 " ++ "--J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_PORT + "=" + port ++ " --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_BIND_ADDRESS + "=" ++ anyLocal; gfshRule.execute(command);
[geode] 01/02: GEODE-9958: Add gfsh-specific tests for Radish startup (#7297)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git commit 9f021cf6f6216f9a8db6d395b07b9b74745cf75d Author: Jens Deppe AuthorDate: Fri Jan 21 19:57:42 2022 -0800 GEODE-9958: Add gfsh-specific tests for Radish startup (#7297) (cherry picked from commit 77945531fafd566a0cbca7d05b5347b8ea299efc) --- .../GeodeRedisServerStartupAcceptanceTest.java | 5 -- ...eRedisServerStartupUsingGfshAcceptanceTest.java | 65 ++ 2 files changed, 65 insertions(+), 5 deletions(-) diff --git a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/GeodeRedisServerStartupAcceptanceTest.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/GeodeRedisServerStartupAcceptanceTest.java index f16214c..523e63c 100644 --- a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/GeodeRedisServerStartupAcceptanceTest.java +++ b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/GeodeRedisServerStartupAcceptanceTest.java @@ -28,7 +28,6 @@ import java.net.BindException; import java.net.InetSocketAddress; import java.net.ServerSocket; -import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -43,16 +42,12 @@ import org.apache.geode.test.dunit.rules.ClusterStartupRule; import org.apache.geode.test.dunit.rules.MemberVM; import org.apache.geode.test.dunit.rules.RedisClusterStartupRule; import org.apache.geode.test.junit.categories.IgnoreInRepeatTestTasks; -import org.apache.geode.test.junit.rules.GfshCommandRule; public class GeodeRedisServerStartupAcceptanceTest { @Rule public RedisClusterStartupRule cluster = new RedisClusterStartupRule(); - @ClassRule - public static GfshCommandRule gfsh = new GfshCommandRule(); - @Category(IgnoreInRepeatTestTasks.class) @Test public void startupOnDefaultPort() { diff --git a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/GeodeRedisServerStartupUsingGfshAcceptanceTest.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/GeodeRedisServerStartupUsingGfshAcceptanceTest.java index 5827ccb..6ce72a5 100644 --- a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/GeodeRedisServerStartupUsingGfshAcceptanceTest.java +++ b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/GeodeRedisServerStartupUsingGfshAcceptanceTest.java @@ -15,7 +15,9 @@ package org.apache.geode.redis.internal.commands.executor; +import static org.apache.geode.test.dunit.rules.RedisClusterStartupRule.BIND_ADDRESS; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.io.IOException; import java.net.InetSocketAddress; @@ -23,8 +25,12 @@ import java.net.ServerSocket; import org.junit.Rule; import org.junit.Test; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.exceptions.JedisConnectionException; +import org.apache.geode.distributed.ConfigurationProperties; import org.apache.geode.internal.AvailablePortHelper; +import org.apache.geode.internal.inet.LocalHostUtil; import org.apache.geode.test.junit.rules.gfsh.GfshExecution; import org.apache.geode.test.junit.rules.gfsh.GfshRule; import org.apache.geode.test.junit.rules.gfsh.GfshScript; @@ -99,4 +105,63 @@ public class GeodeRedisServerStartupUsingGfshAcceptanceTest { assertThat(execution.getOutputText()).containsIgnoringCase( "The geode-for-redis-bind-address 1.1.1.1 is not a valid address for this machine"); } + + @Test + public void gfshStartsRedisServer_whenRedisEnabled() { +String command = +"start server --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_ENABLED + "=true"; +gfshRule.execute(command); + +try (Jedis jedis = new Jedis(BIND_ADDRESS, 6379)) { + assertThat(jedis.ping()).isEqualTo("PONG"); +} + } + + @Test + public void gfshStartsRedisServer_whenCustomPort() { +int port = AvailablePortHelper.getRandomAvailableTCPPort(); +String command = +"start server --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_ENABLED + "=true" ++ " --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_PORT + "=" + port; + +gfshRule.execute(command); + +try (Jedis jedis = new Jedis(BIND_ADDRESS, port)) { + assertThat(jedis.ping()).isEqualTo("PONG"); +} + } + + @Test + public void gfshStartsRedisServer_whenCustomPortAndBindAddress() { +int port = AvailablePortHelper.getRandomAvailableTCPPort(); +String anyLocal = LocalHostUtil.getAnyLocalAddress().getHostAddress(); +String command = +
[geode] branch support/1.15 updated (3f56bd3 -> 55396d4)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git. from 3f56bd3 GEODE-9835: Add SSCAN to Redis supported commands (#7278) new 9f021cf GEODE-9958: Add gfsh-specific tests for Radish startup (#7297) new 55396d4 GEODE-9995: Use ephemeral ports to avoid port in use issues (#7329) The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../GeodeRedisServerStartupAcceptanceTest.java | 5 -- ...eRedisServerStartupUsingGfshAcceptanceTest.java | 65 ++ 2 files changed, 65 insertions(+), 5 deletions(-)
[geode] branch develop updated (2db94b7 -> 00ccce2)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 2db94b7 Adding a script which performs validation of a release candidate add 00ccce2 GEODE-9995: Use ephemeral ports to avoid port in use issues (#7329) No new revisions were added by this update. Summary of changes: ...eRedisServerStartupUsingGfshAcceptanceTest.java | 28 +++--- 1 file changed, 14 insertions(+), 14 deletions(-)
[geode] 09/09: GEODE-9830: SINTERSTORE Command Support (#7302)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git commit 0331eeeb0895167680e3d3f876bf05b457fec5aa Author: Kris10 AuthorDate: Thu Jan 27 12:40:53 2022 -0800 GEODE-9830: SINTERSTORE Command Support (#7302) (cherry picked from commit 32e32af84a2727b3589d5940546ccc655a40e69d) --- geode-for-redis/README.md | 1 + .../set/SInterStoreNativeRedisAcceptanceTest.java} | 20 ++- .../server/AbstractHitsMissesIntegrationTest.java | 12 +- .../set/AbstractSInterIntegrationTest.java | 140 + ...ava => AbstractSInterStoreIntegrationTest.java} | 127 +++ .../set/AbstractSUnionStoreIntegrationTest.java| 2 +- .../executor/set/SInterStoreIntegrationTest.java} | 18 +-- .../redis/internal/commands/RedisCommandType.java | 4 +- .../commands/executor/set/SDiffExecutor.java | 17 +- .../commands/executor/set/SDiffStoreExecutor.java | 14 +- .../commands/executor/set/SInterExecutor.java | 16 +- .../commands/executor/set/SInterStoreExecutor.java | 13 +- .../commands/executor/set/SUnionExecutor.java | 16 +- .../commands/executor/set/SUnionStoreExecutor.java | 13 +- .../commands/executor/set/SetOpExecutor.java | 173 +++-- .../apache/geode/redis/internal/data/RedisSet.java | 51 +++--- 16 files changed, 196 insertions(+), 441 deletions(-) diff --git a/geode-for-redis/README.md b/geode-for-redis/README.md index 592b129..183d148 100644 --- a/geode-for-redis/README.md +++ b/geode-for-redis/README.md @@ -203,6 +203,7 @@ Geode for Redis implements a subset of the full Redis command set. - SDIFF - SDIFFSTORE - SINTER +- SINTERSTORE - SISMEMBER - SET - SETEX diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/set/SDiffExecutor.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/set/SInterStoreNativeRedisAcceptanceTest.java similarity index 69% copy from geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/set/SDiffExecutor.java copy to geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/set/SInterStoreNativeRedisAcceptanceTest.java index 1021b86..b19232a 100755 --- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/set/SDiffExecutor.java +++ b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/set/SInterStoreNativeRedisAcceptanceTest.java @@ -14,18 +14,24 @@ */ package org.apache.geode.redis.internal.commands.executor.set; -import java.util.Set; -public class SDiffExecutor extends SetOpExecutor { +import org.junit.ClassRule; + +import org.apache.geode.redis.NativeRedisClusterTestRule; + +public class SInterStoreNativeRedisAcceptanceTest extends AbstractSInterStoreIntegrationTest { + + @ClassRule + public static NativeRedisClusterTestRule redis = new NativeRedisClusterTestRule(); @Override - protected boolean doSetOp(Set resultSet, Set nextSet) { -resultSet.removeAll(nextSet); -return resultSet.isEmpty(); + public int getPort() { +return redis.getExposedPorts().get(0); } @Override - protected boolean isStorage() { -return false; + public void flushAll() { +redis.flushAll(); } + } diff --git a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java index 23735d9..0933ed6 100644 --- a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java +++ b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java @@ -395,6 +395,12 @@ public abstract class AbstractHitsMissesIntegrationTest implements RedisIntegrat } @Test + public void testSinterstore() { +runMultiKeyCommandAndAssertNoStatUpdates(SET_KEY, +(k1, k2) -> jedis.sinterstore(HASHTAG + "dest", k1, k2)); + } + + @Test public void testSismember() { runCommandAndAssertHitsAndMisses(SET_KEY, k -> jedis.sismember(k, "member")); } @@ -565,12 +571,6 @@ public abstract class AbstractHitsMissesIntegrationTest implements RedisIntegrat runCommandAndAssertHitsAndMisses(SET_KEY, k -> jedis.sscan(k, "0")); } - @Test - public void testSinterstore() { -runMultiKeyCommandAndAssertNoStatUpdates(SET_KEY, -(k1, k2) -> jedis.sinterstore(HASHTAG + "dest", k1, k2)); - } - /* Helper Methods */ private void runCommandAndAssertHitsA
[geode] 08/09: GEODE-9883 Update Geode for Redis docs file (#7274)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git commit 9b8a768aa059ef1a08b8574d87f90a91d7409276 Author: Eric Zoerner AuthorDate: Wed Jan 26 16:05:17 2022 -0800 GEODE-9883 Update Geode for Redis docs file (#7274) Co-authored-by: Dave Barnes (cherry picked from commit 1eeccabe35466883611803ed2516145564c4cfa3) --- .../source/subnavs/geode-subnav.erb| 24 +- .../tools_modules/geode_for_redis.html.md.erb | 294 +++-- 2 files changed, 158 insertions(+), 160 deletions(-) diff --git a/geode-book/master_middleman/source/subnavs/geode-subnav.erb b/geode-book/master_middleman/source/subnavs/geode-subnav.erb index 094959b..372a42a 100644 --- a/geode-book/master_middleman/source/subnavs/geode-subnav.erb +++ b/geode-book/master_middleman/source/subnavs/geode-subnav.erb @@ -2105,28 +2105,8 @@ limitations under the License. - -<%=vars.product_name%> for Redis - - -Using <%=vars.product_name%> for Redis - - -Supported Redis Commands - - -Advantages of <%=vars.product_name%> over Redis - - -Expiration Accuracy - - - High Availability Model - - - Loss of Connections - - + +Geode for Redis Gemcached diff --git a/geode-docs/tools_modules/geode_for_redis.html.md.erb b/geode-docs/tools_modules/geode_for_redis.html.md.erb index 475fc7d..482d817 100644 --- a/geode-docs/tools_modules/geode_for_redis.html.md.erb +++ b/geode-docs/tools_modules/geode_for_redis.html.md.erb @@ -25,215 +25,233 @@ optional password authentication. -## Using <%=vars.product_name%> for Redis +## Using <%=vars.product_name%> for Redis The <%=vars.product_name%> cluster must have at least one server that is set up to handle the incoming Redis commands. -Use gfsh to start at least one server with a command of the form: +Prerequisites for running the examples: -```pre -start server \ - --name= \ - --locators= \ - --J=-Dgemfire.geode-for-redis-enabled=true \ - --J=-Dgemfire.geode-for-redis-port= \ - --J=-Dgemfire.geode-for-redis-bind-address= -``` - -If the gemfire property `geode-for-redis-enabled`, is set to `true`, a <%=vars.product_name%> -server with <%=vars.product_name%> for Redis will be started. +1. **Install <%=vars.product_name%>** +Using the instructions in the `README.md` file in the root of the <%=vars.product_name%> checkout directory, build and install <%=vars.product_name%>. +2. **Install the Redis CLI** +Follow installation instructions at https://redis.io/download -Replace `` with the name of your server. +Use `gfsh` to start a locator for managing a <%=vars.product_name%> cluster: -Replace `` with your locator port. +```commandLine +gfsh> start locator +``` -Replace `` with the port that the <%=vars.product_name%> server - listens on for Redis commands. The typical port used with a cluster compatible with Redis is 6379. +Use `gfsh` to start at least one server with a command of the form: -Replace `` with the address of the server host. +```commandLine +gfsh> start server --J=-Dgemfire.geode-for-redis-enabled=true --J=-Dgemfire.geode-for-redis-port=6379 +``` -Replace `` with the password clients use to authenticate. +More information about the options when starting a server is given in the section [Start Server Options](#redis-start-server-options) below. -To confirm the server is listening, run: +To confirm the server is listening, in a separate terminal run: -``` pre -redis-cli -h -p -a ping +```commandLine +$ redis-cli -c ping ``` -Replace ``,``, and `` with the same values as the server. +The `-c` option enables cluster mode in the redis-cli, which is necessary since +<%=vars.product_name%> for Redis runs as a Redis Cluster. If the server is functioning properly, you should see a response of `PONG`. -## Supported Redis Commands +### Add an additional server +If you’re interested in testing <%=vars.product_name%> scalability, in gfsh run the `start server` command again. -<%=vars.product_nam
[geode] 07/09: GEODE-9922: Move Redis cross-slot checking to RegionProvider (#7295)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git commit ebd17de286f5e12945c239ad6dfc9fd658ed7d8b Author: Donal Evans AuthorDate: Fri Jan 21 17:54:03 2022 -0800 GEODE-9922: Move Redis cross-slot checking to RegionProvider (#7295) * GEODE-9922: Move Redis cross-slot checking to RegionProvider - Move duplicated logic for determining if Keys are in different slots from various Executors to RegionProvider - Removed manual checks for if the key is local, as this is performed as part of locking the primary bucket - Created RedisCrossSlotException class - Added unit tests for new method in RegionProvider - Refactor SetOpExecutor to also lock the destination key for *STORE commands - Add missing test cases for cross-slot errors - Correct some tests for cross-slot behaviour that were inadvertantly testing the Jedis client's response rather than the Geode for Redis server - Changed name format for constants in AbstractSMoveIntegrationTest - Modify patch file to ensure tcl tests use keys with the same slot Authored-by: Donal Evans (cherry picked from commit 7b0a88dbee36c6eb51513715af943f80ea6d93f9) --- .../resources/0001-configure-redis-tests.patch | 340 - .../key/AbstractRenameIntegrationTest.java | 15 +- .../key/AbstractRenameNXIntegrationTest.java | 12 + .../executor/set/AbstractSDiffIntegrationTest.java | 15 +- .../set/AbstractSDiffStoreIntegrationTest.java | 15 +- .../set/AbstractSInterIntegrationTest.java | 14 +- .../executor/set/AbstractSMoveIntegrationTest.java | 165 +- .../set/AbstractSUnionIntegrationTest.java | 10 +- .../set/AbstractSUnionStoreIntegrationTest.java| 8 +- .../string/AbstractMSetIntegrationTest.java| 3 +- .../string/AbstractMSetNXIntegrationTest.java | 3 +- .../apache/geode/codeAnalysis/excludedClasses.txt | 1 + .../geode/redis/internal/RedisConstants.java | 2 - .../executor/key/AbstractRenameExecutor.java | 5 - .../commands/executor/set/SMoveExecutor.java | 9 - .../commands/executor/set/SetOpExecutor.java | 22 +- .../executor/sortedset/ZInterStoreExecutor.java| 2 +- .../executor/sortedset/ZStoreExecutor.java | 14 +- .../executor/sortedset/ZUnionStoreExecutor.java| 2 +- .../executor/string/AbstractMSetExecutor.java | 8 +- .../internal/data/RedisCrossSlotException.java | 30 ++ .../internal/netty/ExecutionHandlerContext.java| 3 + .../redis/internal/services/RegionProvider.java| 20 +- .../internal/services/RegionProviderTest.java | 74 + 24 files changed, 635 insertions(+), 157 deletions(-) diff --git a/geode-for-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch b/geode-for-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch index 88e1318..f9952bd 100644 --- a/geode-for-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch +++ b/geode-for-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch @@ -111,7 +111,7 @@ index f5da728e8..13985dce2 100644 test {Once AUTH succeeded we can actually send commands to the server} { diff --git a/tests/unit/dump.tcl b/tests/unit/dump.tcl -index 4c4e5d075..18bb694f2 100644 +index 4c4e5d075..e465300f4 100644 --- a/tests/unit/dump.tcl +++ b/tests/unit/dump.tcl @@ -41,34 +41,35 @@ start_server {tags {"dump"}} { @@ -162,7 +162,7 @@ index 4c4e5d075..18bb694f2 100644 +#assert {$idle >= 1000 && $idle <= 1010} +#r get foo +#} {bar} -+# ++# +#test {RESTORE can set LFU} { +#r set foo bar +#set encoded [r dump foo] @@ -1337,7 +1337,7 @@ index d2c679d32..6d17de48b 100644 # The following test can only be executed if we don't use Valgrind, and if # we are using x86_64 architecture, because: diff --git a/tests/unit/type/set.tcl b/tests/unit/type/set.tcl -index 7b467f1c4..21f0721c4 100644 +index 7b467f1c4..0c5ca1753 100644 --- a/tests/unit/type/set.tcl +++ b/tests/unit/type/set.tcl @@ -34,8 +34,8 @@ start_server { @@ -1360,15 +1360,341 @@ index 7b467f1c4..21f0721c4 100644 assert_encoding intset myintset assert_encoding hashtable mylargeintset assert_encoding hashtable myhashset -@@ -157,7 +157,7 @@ start_server { +@@ -113,19 +113,19 @@ start_server { + + foreach {type} {hashtable intset} { + for {set i 1} {$i <= 5} {incr i} { +-r del [format "set%d" $i] ++r del [format "{tag}set%d" $i] + } + for {set i 0} {$i < 200} {incr i} { +-r sadd set1 $i +-r sadd set2 [expr $i+195] ++r sadd "{tag}set1" $i ++r sadd "{tag}
[geode] 06/09: update redis svg to use new module name (#7288)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git commit 731fcd0bb5a1ca29a78f5b7dbe07450ccc563c5f Author: Hale Bales AuthorDate: Fri Jan 21 15:31:49 2022 -0800 update redis svg to use new module name (#7288) (cherry picked from commit 66eb3f93aa44613a355515ee7d8e0bb36775d932) --- geode-docs/images_svg/geode_for_redis.svg | 206 +++--- 1 file changed, 188 insertions(+), 18 deletions(-) diff --git a/geode-docs/images_svg/geode_for_redis.svg b/geode-docs/images_svg/geode_for_redis.svg index f983cf8..26efc38 100644 --- a/geode-docs/images_svg/geode_for_redis.svg +++ b/geode-docs/images_svg/geode_for_redis.svg @@ -1,19 +1,189 @@ -http://www.w3.org/2000/svg; xmlns:xlink="http://www.w3.org/1999/xlink;> - - - - - - - - - - - - - +http://www.inkscape.org/namespaces/inkscape; + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd; + xmlns:xlink="http://www.w3.org/1999/xlink; + xmlns="http://www.w3.org/2000/svg; + xmlns:svg="http://www.w3.org/2000/svg;> + + + + + + + + + + + + +Geode for Redis + + + + + + + + + + + Geode for Redis
[geode] 05/09: GEODE-9885: Handle duplicated appends in Redis StringsDUnitTest (#7290)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git commit 9166cb44ec2854c8c5d501334476f0d6dfe9d258 Author: Donal Evans AuthorDate: Fri Jan 21 15:28:10 2022 -0800 GEODE-9885: Handle duplicated appends in Redis StringsDUnitTest (#7290) * GEODE-9885: Handle duplicated appends in Redis StringsDUnitTest - The Jedis client automatically retries when a bucket is moved during an APPEND operation, which can lead to the append being duplicated. Add error handling to the test to check if unexpected append values are duplicates of the previous append and if so, ignore the AssertionError - Add missing synchronization around in-place array modification in RedisString.applyReplaceByteArrayAtOffsetDelta() method - Remove unnecessarily overridden method from NullRedisSet Authored-by: Donal Evans (cherry picked from commit b8dd86b846083a59ffe1aa56b489df60f4d75d39) --- .../commands/executor/string/StringsDUnitTest.java | 71 +- .../geode/redis/internal/data/NullRedisString.java | 5 -- .../geode/redis/internal/data/RedisString.java | 6 +- 3 files changed, 47 insertions(+), 35 deletions(-) diff --git a/geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/string/StringsDUnitTest.java b/geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/string/StringsDUnitTest.java index 2a4479a..a8f8ff4 100644 --- a/geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/string/StringsDUnitTest.java +++ b/geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/string/StringsDUnitTest.java @@ -30,7 +30,6 @@ import java.util.function.Consumer; import org.junit.After; import org.junit.AfterClass; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Rule; @@ -57,14 +56,13 @@ public class StringsDUnitTest { private static final int NUM_ITERATIONS = 1000; private static JedisCluster jedisCluster; - private static MemberVM locator; - @BeforeClass public static void classSetup() { -locator = clusterStartUp.startLocatorVM(0); -clusterStartUp.startRedisVM(1, locator.getPort()); -clusterStartUp.startRedisVM(2, locator.getPort()); -clusterStartUp.startRedisVM(3, locator.getPort()); +MemberVM locator = clusterStartUp.startLocatorVM(0); +int locatorPort = locator.getPort(); +clusterStartUp.startRedisVM(1, locatorPort); +clusterStartUp.startRedisVM(2, locatorPort); +clusterStartUp.startRedisVM(3, locatorPort); int redisServerPort1 = clusterStartUp.getRedisPort(1); jedisCluster = @@ -263,9 +261,9 @@ public class StringsDUnitTest { hashtags.add(clusterStartUp.getKeyOnServer("append", 2)); hashtags.add(clusterStartUp.getKeyOnServer("append", 3)); -Runnable task1 = () -> appendPerformAndVerify(1, 1, hashtags.get(0), running); -Runnable task2 = () -> appendPerformAndVerify(2, 1, hashtags.get(1), running); -Runnable task3 = () -> appendPerformAndVerify(3, 1, hashtags.get(2), running); +Runnable task1 = () -> appendPerformAndVerify(1, hashtags.get(0), running); +Runnable task2 = () -> appendPerformAndVerify(2, hashtags.get(1), running); +Runnable task3 = () -> appendPerformAndVerify(3, hashtags.get(2), running); Future future1 = executor.runAsync(task1); Future future2 = executor.runAsync(task2); @@ -276,11 +274,6 @@ public class StringsDUnitTest { GeodeAwaitility.await().during(Duration.ofMillis(200)).until(() -> true); } -for (int i = 0; i < 100 && running.get(); i++) { - clusterStartUp.moveBucketForKey(hashtags.get(i % hashtags.size())); - GeodeAwaitility.await().during(Duration.ofMillis(200)).until(() -> true); -} - running.set(false); future1.get(); @@ -288,12 +281,11 @@ public class StringsDUnitTest { future3.get(); } - private void appendPerformAndVerify(int index, int minimumIterations, String hashtag, - AtomicBoolean isRunning) { + private void appendPerformAndVerify(int index, String hashtag, AtomicBoolean isRunning) { String key = "{" + hashtag + "}-key-" + index; int iterationCount = 0; -while (iterationCount < minimumIterations || isRunning.get()) { +while (isRunning.get()) { String appendString = "-" + key + "-" + iterationCount + "-"; try { jedisCluster.append(key, appendString); @@ -301,23 +293,46 @@ public class StringsDUnitTest { isRunning.set(false); throw new RuntimeException("Exception performing APPEND " + appendString, ex); } - itera
[geode] 03/09: GEODE-9837: SUNIONSTORE Command Support (#7284)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git commit 0ade491c33f55176d7ea7fa9d07fa028e9857c90 Author: Kris10 AuthorDate: Thu Jan 20 14:11:41 2022 -0800 GEODE-9837: SUNIONSTORE Command Support (#7284) (cherry picked from commit 3a36962edfcd30aa3afa3a50813c63bfc155f699) --- .../tools_modules/geode_for_redis.html.md.erb | 1 + geode-for-redis/README.md | 1 + .../set/SUnionStoreNativeRedisAcceptanceTest.java | 36 +++ .../server/AbstractHitsMissesIntegrationTest.java | 12 +- .../set/AbstractSUnionIntegrationTest.java | 141 .../set/AbstractSUnionStoreIntegrationTest.java| 242 + .../executor/set/SUnionStoreIntegrationTest.java | 31 +++ .../redis/internal/commands/RedisCommandType.java | 4 +- .../commands/executor/set/SetOpExecutor.java | 16 +- .../apache/geode/redis/internal/data/RedisSet.java | 18 +- 10 files changed, 344 insertions(+), 158 deletions(-) diff --git a/geode-docs/tools_modules/geode_for_redis.html.md.erb b/geode-docs/tools_modules/geode_for_redis.html.md.erb index 9451dc7..748ddf8 100644 --- a/geode-docs/tools_modules/geode_for_redis.html.md.erb +++ b/geode-docs/tools_modules/geode_for_redis.html.md.erb @@ -125,6 +125,7 @@ If the server is functioning properly, you should see a response of `PONG`. - STRLEN - SUBSCRIBE - SUNION + - SUNIONSTORE - TTL - TYPE - UNSUBSCRIBE diff --git a/geode-for-redis/README.md b/geode-for-redis/README.md index 2162229..fa392d9 100644 --- a/geode-for-redis/README.md +++ b/geode-for-redis/README.md @@ -215,6 +215,7 @@ Geode for Redis implements a subset of the full Redis command set. - STRLEN - SUBSCRIBE - SUNION +- SUNIONSTORE - TTL - TYPE - UNSUBSCRIBE diff --git a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/set/SUnionStoreNativeRedisAcceptanceTest.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/set/SUnionStoreNativeRedisAcceptanceTest.java new file mode 100644 index 000..8f63afa --- /dev/null +++ b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/set/SUnionStoreNativeRedisAcceptanceTest.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.redis.internal.commands.executor.set; + +import org.junit.ClassRule; + +import org.apache.geode.redis.NativeRedisClusterTestRule; + +public class SUnionStoreNativeRedisAcceptanceTest extends AbstractSUnionStoreIntegrationTest { + + @ClassRule + public static NativeRedisClusterTestRule redis = new NativeRedisClusterTestRule(); + + @Override + public int getPort() { +return redis.getExposedPorts().get(0); + } + + @Override + public void flushAll() { +redis.flushAll(); + } + +} diff --git a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java index 1c9a0da..5923e07 100644 --- a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java +++ b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java @@ -419,6 +419,12 @@ public abstract class AbstractHitsMissesIntegrationTest implements RedisIntegrat runMultiKeyCommandAndAssertHitsAndMisses(SET_KEY, (k1, k2) -> jedis.sunion(k1, k2)); } + @Test + public void testSunionstore() { +runMultiKeyCommandAndAssertNoStatUpdates(SET_KEY, +(k1, k2) -> jedis.sunionstore(HASHTAG + "dest", k1, k2)); + } + /* Hash related commands */ @Test public void testHset() { @@ -565,12 +571,6 @@ public abstract class AbstractHitsMissesIntegrationTest implements RedisIntegrat (k1, k2) -> jed
[geode] 04/09: GEODE-9834: SRANDMEMBER Command Support (#7228)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git commit d4563383d0e8dbbd8f67f28d3367664c5c8f518b Author: Kris10 AuthorDate: Fri Jan 21 10:14:07 2022 -0800 GEODE-9834: SRANDMEMBER Command Support (#7228) (cherry picked from commit a53c6da8dad75c8953de7e7ceb4bbfa545e5f405) --- .../tools_modules/geode_for_redis.html.md.erb | 1 + geode-for-redis/README.md | 1 + .../set/SRandMemberNativeRedisAcceptanceTest.java | 34 + .../server/AbstractHitsMissesIntegrationTest.java | 10 +- .../set/AbstractSRandMemberIntegrationTest.java| 165 + .../executor/set/AbstractSetsIntegrationTest.java | 49 -- .../executor/set/SRandMemberIntegrationTest.java | 29 .../redis/internal/commands/RedisCommandType.java | 4 +- .../commands/executor/set/SRandMemberExecutor.java | 50 +-- ...dMemberExecutor.java => SetRandomExecutor.java} | 52 --- .../geode/redis/internal/data/NullRedisSet.java| 2 +- .../apache/geode/redis/internal/data/RedisSet.java | 85 ++- .../SizeableObjectOpenCustomHashSet.java | 8 + 13 files changed, 330 insertions(+), 160 deletions(-) diff --git a/geode-docs/tools_modules/geode_for_redis.html.md.erb b/geode-docs/tools_modules/geode_for_redis.html.md.erb index 748ddf8..475fc7d 100644 --- a/geode-docs/tools_modules/geode_for_redis.html.md.erb +++ b/geode-docs/tools_modules/geode_for_redis.html.md.erb @@ -121,6 +121,7 @@ If the server is functioning properly, you should see a response of `PONG`. - SLOWLOG **[3]** - SMEMBERS - SMOVE + - SRANDMEMBER - SREM - STRLEN - SUBSCRIBE diff --git a/geode-for-redis/README.md b/geode-for-redis/README.md index fa392d9..592b129 100644 --- a/geode-for-redis/README.md +++ b/geode-for-redis/README.md @@ -211,6 +211,7 @@ Geode for Redis implements a subset of the full Redis command set. - SLOWLOG 3 - SMEMBERS - SMOVE +- SRANDMEMBER - SREM - STRLEN - SUBSCRIBE diff --git a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/set/SRandMemberNativeRedisAcceptanceTest.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/set/SRandMemberNativeRedisAcceptanceTest.java new file mode 100644 index 000..dcab8c0 --- /dev/null +++ b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/set/SRandMemberNativeRedisAcceptanceTest.java @@ -0,0 +1,34 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.redis.internal.commands.executor.set; + +import org.junit.ClassRule; + +import org.apache.geode.redis.NativeRedisClusterTestRule; + +public class SRandMemberNativeRedisAcceptanceTest extends AbstractSRandMemberIntegrationTest { + @ClassRule + public static NativeRedisClusterTestRule redis = new NativeRedisClusterTestRule(); + + @Override + public int getPort() { +return redis.getExposedPorts().get(0); + } + + @Override + public void flushAll() { +redis.flushAll(); + } +} diff --git a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java index 5923e07..23735d9 100644 --- a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java +++ b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java @@ -410,6 +410,11 @@ public abstract class AbstractHitsMissesIntegrationTest implements RedisIntegrat } @Test + public void testSrandmember() { +runCommandAndAssertHitsAndMisses(SET_KEY, k -> jedis.srandmember(k)); + } + + @Test public void testSrem() { runCommandAndAssertNoStatUpdates(SET_KEY, k -> jedis.srem(k, "member")); } @@
[geode] 01/09: Revert "GEODE-9883 Update Geode for Redis docs file (#7274)"
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git commit 08d2006cac31be6bf97cc30f3edd63eacc241a39 Author: Jens Deppe AuthorDate: Fri Jan 28 09:38:42 2022 -0800 Revert "GEODE-9883 Update Geode for Redis docs file (#7274)" This reverts commit 49367309e65b5b9710cac0646fe950173af2e1bc. --- .../source/subnavs/geode-subnav.erb| 24 +- .../tools_modules/geode_for_redis.html.md.erb | 292 ++--- 2 files changed, 158 insertions(+), 158 deletions(-) diff --git a/geode-book/master_middleman/source/subnavs/geode-subnav.erb b/geode-book/master_middleman/source/subnavs/geode-subnav.erb index 372a42a..094959b 100644 --- a/geode-book/master_middleman/source/subnavs/geode-subnav.erb +++ b/geode-book/master_middleman/source/subnavs/geode-subnav.erb @@ -2105,8 +2105,28 @@ limitations under the License. - -Geode for Redis + +<%=vars.product_name%> for Redis + + +Using <%=vars.product_name%> for Redis + + +Supported Redis Commands + + +Advantages of <%=vars.product_name%> over Redis + + +Expiration Accuracy + + + High Availability Model + + + Loss of Connections + + Gemcached diff --git a/geode-docs/tools_modules/geode_for_redis.html.md.erb b/geode-docs/tools_modules/geode_for_redis.html.md.erb index 482d817..9451dc7 100644 --- a/geode-docs/tools_modules/geode_for_redis.html.md.erb +++ b/geode-docs/tools_modules/geode_for_redis.html.md.erb @@ -25,233 +25,213 @@ optional password authentication. -## Using <%=vars.product_name%> for Redis +## Using <%=vars.product_name%> for Redis The <%=vars.product_name%> cluster must have at least one server that is set up to handle the incoming Redis commands. -Prerequisites for running the examples: +Use gfsh to start at least one server with a command of the form: -1. **Install <%=vars.product_name%>** -Using the instructions in the `README.md` file in the root of the <%=vars.product_name%> checkout directory, build and install <%=vars.product_name%>. -2. **Install the Redis CLI** -Follow installation instructions at https://redis.io/download +```pre +start server \ + --name= \ + --locators= \ + --J=-Dgemfire.geode-for-redis-enabled=true \ + --J=-Dgemfire.geode-for-redis-port= \ + --J=-Dgemfire.geode-for-redis-bind-address= +``` -Use `gfsh` to start a locator for managing a <%=vars.product_name%> cluster: +If the gemfire property `geode-for-redis-enabled`, is set to `true`, a <%=vars.product_name%> +server with <%=vars.product_name%> for Redis will be started. -```commandLine -gfsh> start locator -``` +Replace `` with the name of your server. -Use `gfsh` to start at least one server with a command of the form: +Replace `` with your locator port. -```commandLine -gfsh> start server --J=-Dgemfire.geode-for-redis-enabled=true --J=-Dgemfire.geode-for-redis-port=6379 -``` +Replace `` with the port that the <%=vars.product_name%> server + listens on for Redis commands. The typical port used with a cluster compatible with Redis is 6379. -More information about the options when starting a server is given in the section [Start Server Options](#redis-start-server-options) below. +Replace `` with the address of the server host. -To confirm the server is listening, in a separate terminal run: +Replace `` with the password clients use to authenticate. -```commandLine -$ redis-cli -c ping +To confirm the server is listening, run: + +``` pre +redis-cli -h -p -a ping ``` -The `-c` option enables cluster mode in the redis-cli, which is necessary since -<%=vars.product_name%> for Redis runs as a Redis Cluster. +Replace ``,``, and `` with the same values as the server. If the server is functioning properly, you should see a response of `PONG`. -### Add an additional server -If you’re interested in testing <%=vars.product_name%> scalability, in gfsh run the `start server` command again. +## Supported Redis Commands -However, there are two ports that must be uniq
[geode] 02/09: GEODE-9977: Remove defunct RedisCommandSupportLevel.INTERNAL type (#7283)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git commit d1d5e1e7c09f89a81cdaed6d4478d2f8cd121a41 Author: Donal Evans AuthorDate: Thu Jan 20 08:53:14 2022 -0800 GEODE-9977: Remove defunct RedisCommandSupportLevel.INTERNAL type (#7283) Authored-by: Donal Evans (cherry picked from commit b349cb8b33fb0c93c0a3ea6a2f6c32bd33b51319) --- .../geode/redis/internal/commands/RedisCommandSupportLevel.java | 3 +-- .../org/apache/geode/redis/internal/commands/RedisCommandType.java | 6 -- .../internal/commands/executor/server/COMMANDCommandExecutor.java | 3 +-- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/RedisCommandSupportLevel.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/RedisCommandSupportLevel.java index a8f6796..15caf12 100644 --- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/RedisCommandSupportLevel.java +++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/RedisCommandSupportLevel.java @@ -19,6 +19,5 @@ package org.apache.geode.redis.internal.commands; public enum RedisCommandSupportLevel { SUPPORTED, UNSUPPORTED, - UNKNOWN, - INTERNAL + UNKNOWN } diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/RedisCommandType.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/RedisCommandType.java index acf335f..3a461de 100755 --- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/RedisCommandType.java +++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/RedisCommandType.java @@ -16,7 +16,6 @@ package org.apache.geode.redis.internal.commands; import static org.apache.geode.redis.internal.RedisConstants.ERROR_SYNTAX; -import static org.apache.geode.redis.internal.commands.RedisCommandSupportLevel.INTERNAL; import static org.apache.geode.redis.internal.commands.RedisCommandSupportLevel.SUPPORTED; import static org.apache.geode.redis.internal.commands.RedisCommandSupportLevel.UNSUPPORTED; import static org.apache.geode.redis.internal.commands.RedisCommandType.Flag.ADMIN; @@ -447,11 +446,6 @@ public enum RedisCommandType { return supportLevel == UNSUPPORTED; } - - public boolean isInternal() { -return supportLevel == INTERNAL; - } - public boolean isUnknown() { return supportLevel == RedisCommandSupportLevel.UNKNOWN; } diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/server/COMMANDCommandExecutor.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/server/COMMANDCommandExecutor.java index 1557d92..b5950a8 100644 --- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/server/COMMANDCommandExecutor.java +++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/server/COMMANDCommandExecutor.java @@ -62,8 +62,7 @@ public class COMMANDCommandExecutor implements CommandExecutor { List response = new ArrayList<>(); for (RedisCommandType type : RedisCommandType.values()) { - if (type.isInternal() - || type.isUnknown() + if (type.isUnknown() || (type.isUnsupported() && !context.allowUnsupportedCommands()) || type == RedisCommandType.QUIT) { continue;
[geode] branch support/1.15 updated (0271f6a -> 0331eee)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch support/1.15 in repository https://gitbox.apache.org/repos/asf/geode.git. from 0271f6a GEODE-8616: Refactoring the test to remove deprecated APIs (#7301) new 08d2006 Revert "GEODE-9883 Update Geode for Redis docs file (#7274)" new d1d5e1e GEODE-9977: Remove defunct RedisCommandSupportLevel.INTERNAL type (#7283) new 0ade491 GEODE-9837: SUNIONSTORE Command Support (#7284) new d456338 GEODE-9834: SRANDMEMBER Command Support (#7228) new 9166cb4 GEODE-9885: Handle duplicated appends in Redis StringsDUnitTest (#7290) new 731fcd0 update redis svg to use new module name (#7288) new ebd17de GEODE-9922: Move Redis cross-slot checking to RegionProvider (#7295) new 9b8a768 GEODE-9883 Update Geode for Redis docs file (#7274) new 0331eee GEODE-9830: SINTERSTORE Command Support (#7302) The 9 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: geode-docs/images_svg/geode_for_redis.svg | 206 +++-- geode-for-redis/README.md | 3 + ...a => SInterStoreNativeRedisAcceptanceTest.java} | 2 +- ...a => SRandMemberNativeRedisAcceptanceTest.java} | 2 +- ...a => SUnionStoreNativeRedisAcceptanceTest.java} | 2 +- .../resources/0001-configure-redis-tests.patch | 340 - .../commands/executor/string/StringsDUnitTest.java | 71 +++-- .../key/AbstractRenameIntegrationTest.java | 15 +- .../key/AbstractRenameNXIntegrationTest.java | 12 + .../server/AbstractHitsMissesIntegrationTest.java | 34 +-- .../executor/set/AbstractSDiffIntegrationTest.java | 15 +- .../set/AbstractSDiffStoreIntegrationTest.java | 15 +- .../set/AbstractSInterIntegrationTest.java | 148 + .../set/AbstractSInterStoreIntegrationTest.java| 237 ++ .../executor/set/AbstractSMoveIntegrationTest.java | 165 +- .../set/AbstractSRandMemberIntegrationTest.java| 165 ++ .../set/AbstractSUnionIntegrationTest.java | 151 + .../set/AbstractSUnionStoreIntegrationTest.java| 244 +++ .../executor/set/AbstractSetsIntegrationTest.java | 49 --- ...onTest.java => SInterStoreIntegrationTest.java} | 2 +- ...onTest.java => SRandMemberIntegrationTest.java} | 2 +- ...onTest.java => SUnionStoreIntegrationTest.java} | 2 +- .../string/AbstractMSetIntegrationTest.java| 3 +- .../string/AbstractMSetNXIntegrationTest.java | 3 +- .../apache/geode/codeAnalysis/excludedClasses.txt | 1 + .../geode/redis/internal/RedisConstants.java | 2 - .../commands/RedisCommandSupportLevel.java | 3 +- .../redis/internal/commands/RedisCommandType.java | 18 +- .../executor/key/AbstractRenameExecutor.java | 5 - .../executor/server/COMMANDCommandExecutor.java| 3 +- .../commands/executor/set/SDiffExecutor.java | 17 +- .../commands/executor/set/SDiffStoreExecutor.java | 14 +- .../commands/executor/set/SInterExecutor.java | 16 +- .../commands/executor/set/SInterStoreExecutor.java | 13 +- .../commands/executor/set/SMoveExecutor.java | 9 - .../commands/executor/set/SRandMemberExecutor.java | 50 +-- .../commands/executor/set/SUnionExecutor.java | 16 +- .../commands/executor/set/SUnionStoreExecutor.java | 13 +- .../commands/executor/set/SetOpExecutor.java | 167 ++ ...dMemberExecutor.java => SetRandomExecutor.java} | 52 ++-- .../executor/sortedset/ZInterStoreExecutor.java| 2 +- .../executor/sortedset/ZStoreExecutor.java | 14 +- .../executor/sortedset/ZUnionStoreExecutor.java| 2 +- .../executor/string/AbstractMSetExecutor.java | 8 +- .../geode/redis/internal/data/NullRedisSet.java| 2 +- .../geode/redis/internal/data/NullRedisString.java | 5 - ...Exception.java => RedisCrossSlotException.java} | 12 +- .../apache/geode/redis/internal/data/RedisSet.java | 142 + .../geode/redis/internal/data/RedisString.java | 6 +- .../SizeableObjectOpenCustomHashSet.java | 8 + .../internal/netty/ExecutionHandlerContext.java| 3 + .../redis/internal/services/RegionProvider.java| 20 +- .../internal/services/RegionProviderTest.java | 74 + 53 files changed, 1710 insertions(+), 875 deletions(-) copy geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/set/{SMoveNativeRedisAcceptanceTest.java => SInterStoreNativeRedisAcceptanceTest.java} (92%) copy geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/set/{SCardNativeRedisAcceptanceTest.java => S
[geode] branch develop updated (32e32af -> e0c4b9c)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 32e32af GEODE-9830: SINTERSTORE Command Support (#7302) add e0c4b9c GEODE-9988: Log full exception when JNDI binding fails during cache creation (#7304) No new revisions were added by this update. Summary of changes: geode-core/src/main/java/org/apache/geode/internal/jndi/JNDIInvoker.java | 1 + 1 file changed, 1 insertion(+)
[geode] 01/01: Initial commit
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch feature/redis-lists-interview in repository https://gitbox.apache.org/repos/asf/geode.git commit bd96ca2d5f60946279c63690b6892c08ae7ca713 Author: Jens Deppe AuthorDate: Tue Jan 25 06:47:22 2022 -0800 Initial commit --- .../list/RedisListNativeRedisAcceptanceTest.java} | 30 +++--- .../list/AbstractRedisListIntegrationTest.java | 46 +++ .../executor/list/RedisListIntegrationTest.java} | 22 --- .../geode/redis/internal/GeodeRedisService.java| 2 + .../redis/internal/commands/RedisCommandType.java | 9 +++ .../commands/executor/list/LLenExecutor.java | 38 .../commands/executor/list/LPopExecutor.java | 43 ++ .../commands/executor/list/LPushExecutor.java | 42 + .../internal/data/NullRedisDataStructures.java | 1 + ...RedisDataStructures.java => NullRedisList.java} | 18 -- .../geode/redis/internal/data/RedisDataType.java | 2 + .../geode/redis/internal/data/RedisList.java | 68 ++ .../internal/netty/ExecutionHandlerContext.java| 11 +++- .../serialization/DataSerializableFixedID.java | 1 + 14 files changed, 311 insertions(+), 22 deletions(-) diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisDataStructures.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/RedisListNativeRedisAcceptanceTest.java similarity index 61% copy from geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisDataStructures.java copy to geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/RedisListNativeRedisAcceptanceTest.java index e0e750e..9de54ea 100644 --- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisDataStructures.java +++ b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/list/RedisListNativeRedisAcceptanceTest.java @@ -12,12 +12,26 @@ * or implied. See the License for the specific language governing permissions and limitations under * the License. */ -package org.apache.geode.redis.internal.data; - -public class NullRedisDataStructures { - public static final NullRedisString NULL_REDIS_STRING = new NullRedisString(); - public static final NullRedisSet NULL_REDIS_SET = new NullRedisSet(); - public static final NullRedisSortedSet NULL_REDIS_SORTED_SET = new NullRedisSortedSet(); - public static final NullRedisHash NULL_REDIS_HASH = new NullRedisHash(); - public static final NullRedisData NULL_REDIS_DATA = new NullRedisData(); +package org.apache.geode.redis.internal.commands.executor.list; + + +import org.junit.ClassRule; + +import org.apache.geode.redis.NativeRedisClusterTestRule; + +public class RedisListNativeRedisAcceptanceTest extends AbstractRedisListIntegrationTest { + + @ClassRule + public static NativeRedisClusterTestRule redis = new NativeRedisClusterTestRule(); + + @Override + public int getPort() { +return redis.getExposedPorts().get(0); + } + + @Override + public void flushAll() { +redis.flushAll(); + } + } diff --git a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/AbstractRedisListIntegrationTest.java b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/AbstractRedisListIntegrationTest.java new file mode 100644 index 000..446016f --- /dev/null +++ b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/AbstractRedisListIntegrationTest.java @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.redis.internal.commands.executor.list; + +import static org.apache.geode.test.dunit.rules.RedisClusterStartupRule.BIND_ADDRESS; +import static org.apache.geode.test.dunit.rules.RedisClusterStartupRule.REDIS_CLIENT_TIMEOUT; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import redis.clients.jedis.HostAndPort; +import redis.clients.jedis.
[geode] branch feature/redis-lists-interview created (now bd96ca2)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch feature/redis-lists-interview in repository https://gitbox.apache.org/repos/asf/geode.git. at bd96ca2 Initial commit This branch includes the following new commits: new bd96ca2 Initial commit The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
[geode] branch develop updated: GEODE-9958: Add gfsh-specific tests for Radish startup (#7297)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 7794553 GEODE-9958: Add gfsh-specific tests for Radish startup (#7297) 7794553 is described below commit 77945531fafd566a0cbca7d05b5347b8ea299efc Author: Jens Deppe AuthorDate: Fri Jan 21 19:57:42 2022 -0800 GEODE-9958: Add gfsh-specific tests for Radish startup (#7297) --- .../GeodeRedisServerStartupAcceptanceTest.java | 5 -- ...eRedisServerStartupUsingGfshAcceptanceTest.java | 65 ++ 2 files changed, 65 insertions(+), 5 deletions(-) diff --git a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/GeodeRedisServerStartupAcceptanceTest.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/GeodeRedisServerStartupAcceptanceTest.java index f16214c..523e63c 100644 --- a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/GeodeRedisServerStartupAcceptanceTest.java +++ b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/GeodeRedisServerStartupAcceptanceTest.java @@ -28,7 +28,6 @@ import java.net.BindException; import java.net.InetSocketAddress; import java.net.ServerSocket; -import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -43,16 +42,12 @@ import org.apache.geode.test.dunit.rules.ClusterStartupRule; import org.apache.geode.test.dunit.rules.MemberVM; import org.apache.geode.test.dunit.rules.RedisClusterStartupRule; import org.apache.geode.test.junit.categories.IgnoreInRepeatTestTasks; -import org.apache.geode.test.junit.rules.GfshCommandRule; public class GeodeRedisServerStartupAcceptanceTest { @Rule public RedisClusterStartupRule cluster = new RedisClusterStartupRule(); - @ClassRule - public static GfshCommandRule gfsh = new GfshCommandRule(); - @Category(IgnoreInRepeatTestTasks.class) @Test public void startupOnDefaultPort() { diff --git a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/GeodeRedisServerStartupUsingGfshAcceptanceTest.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/GeodeRedisServerStartupUsingGfshAcceptanceTest.java index 5827ccb..6ce72a5 100644 --- a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/GeodeRedisServerStartupUsingGfshAcceptanceTest.java +++ b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/GeodeRedisServerStartupUsingGfshAcceptanceTest.java @@ -15,7 +15,9 @@ package org.apache.geode.redis.internal.commands.executor; +import static org.apache.geode.test.dunit.rules.RedisClusterStartupRule.BIND_ADDRESS; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.io.IOException; import java.net.InetSocketAddress; @@ -23,8 +25,12 @@ import java.net.ServerSocket; import org.junit.Rule; import org.junit.Test; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.exceptions.JedisConnectionException; +import org.apache.geode.distributed.ConfigurationProperties; import org.apache.geode.internal.AvailablePortHelper; +import org.apache.geode.internal.inet.LocalHostUtil; import org.apache.geode.test.junit.rules.gfsh.GfshExecution; import org.apache.geode.test.junit.rules.gfsh.GfshRule; import org.apache.geode.test.junit.rules.gfsh.GfshScript; @@ -99,4 +105,63 @@ public class GeodeRedisServerStartupUsingGfshAcceptanceTest { assertThat(execution.getOutputText()).containsIgnoringCase( "The geode-for-redis-bind-address 1.1.1.1 is not a valid address for this machine"); } + + @Test + public void gfshStartsRedisServer_whenRedisEnabled() { +String command = +"start server --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_ENABLED + "=true"; +gfshRule.execute(command); + +try (Jedis jedis = new Jedis(BIND_ADDRESS, 6379)) { + assertThat(jedis.ping()).isEqualTo("PONG"); +} + } + + @Test + public void gfshStartsRedisServer_whenCustomPort() { +int port = AvailablePortHelper.getRandomAvailableTCPPort(); +String command = +"start server --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_ENABLED + "=true" ++ " --J=-Dgemfire." + ConfigurationProperties.GEODE_FOR_REDIS_PORT + "=" + port; + +gfshRule.execute(command); + +try (Jedis jedis = new Jedis(BIND_ADDRESS, port)) { + assertThat(jedis.ping()).isEqualTo("PONG"); +} + } + + @Test + public void gfshStartsRedisServer_whenCustomPortAndBindAddress() { +int port = AvailablePortHelper.getRandomAvailableTCPPort(); +
[geode] branch develop updated (a2ed241 -> a53c6da)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from a2ed241 add 1.13.7 to old versions on develop (#7292) add a53c6da GEODE-9834: SRANDMEMBER Command Support (#7228) No new revisions were added by this update. Summary of changes: .../tools_modules/geode_for_redis.html.md.erb | 1 + geode-for-redis/README.md | 1 + ...a => SRandMemberNativeRedisAcceptanceTest.java} | 2 +- .../server/AbstractHitsMissesIntegrationTest.java | 10 +- .../set/AbstractSRandMemberIntegrationTest.java| 165 + .../executor/set/AbstractSetsIntegrationTest.java | 49 -- ...onTest.java => SRandMemberIntegrationTest.java} | 2 +- .../redis/internal/commands/RedisCommandType.java | 4 +- .../commands/executor/set/SRandMemberExecutor.java | 50 +-- ...dMemberExecutor.java => SetRandomExecutor.java} | 52 --- .../geode/redis/internal/data/NullRedisSet.java| 2 +- .../apache/geode/redis/internal/data/RedisSet.java | 85 ++- .../SizeableObjectOpenCustomHashSet.java | 8 + 13 files changed, 269 insertions(+), 162 deletions(-) copy geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/set/{SCardNativeRedisAcceptanceTest.java => SRandMemberNativeRedisAcceptanceTest.java} (92%) create mode 100644 geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/set/AbstractSRandMemberIntegrationTest.java copy geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/set/{SCardIntegrationTest.java => SRandMemberIntegrationTest.java} (92%) copy geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/set/{SRandMemberExecutor.java => SetRandomExecutor.java} (59%) mode change 100755 => 100644
[geode] branch develop updated (7978abf -> 6b20445)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 7978abf GEODE-9758: Add internal serial filter API (#7217) add 6b20445 GEODE-9962: Update redis INFO command for cluster mode responses (#7273) No new revisions were added by this update. Summary of changes: .../executor/server/InfoNativeRedisAcceptanceTest.java | 6 +++--- .../executor/server/AbstractInfoIntegrationTest.java | 14 +++--- .../commands/executor/server/InfoIntegrationTest.java | 2 +- .../internal/commands/executor/server/InfoExecutor.java| 6 +++--- 4 files changed, 18 insertions(+), 10 deletions(-)
[geode] branch develop updated (2b03244 -> 93fdccc)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 2b03244 GEODE-9944: Handle a race when HARegionQueue is not initialized yet. (#7259) add 93fdccc GEODE-9937: Add convenience methods to FileWatchingX509Extended*Manager (#7251) No new revisions were added by this update. Summary of changes: .../FileWatchingX509ExtendedKeyManager.java| 24 -- .../FileWatchingX509ExtendedTrustManager.java | 24 -- 2 files changed, 36 insertions(+), 12 deletions(-)
[geode] branch develop updated (97601eb -> f23c23d)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 97601eb GEODE-9819: fix durable client socket leak add f23c23d GEODE-9691: Fix flaky ZRemDUnitTest (#7239) No new revisions were added by this update. Summary of changes: .../commands/executor/sortedset/ZRemDUnitTest.java | 73 +++--- 1 file changed, 50 insertions(+), 23 deletions(-)
[geode] branch develop updated (237d3ac -> 68f074d)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 237d3ac GEODE-9911: Allow ExecutorServiceRule to name threads (#7231) add 68f074d Enable tests again (#7233) No new revisions were added by this update. Summary of changes: .../executor/hash/HashesAndCrashesDUnitTest.java | 260 +++-- 1 file changed, 136 insertions(+), 124 deletions(-)
[geode] branch develop updated (5c76706 -> 237d3ac)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 5c76706 GEODE-9912: Add unique identifier to DUnit log lines (#7232) add 237d3ac GEODE-9911: Allow ExecutorServiceRule to name threads (#7231) No new revisions were added by this update. Summary of changes: .../test/junit/rules/ExecutorServiceRule.java | 35 ++ 1 file changed, 29 insertions(+), 6 deletions(-)
[geode] branch develop updated (87b1007 -> 5c76706)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 87b1007 Revert "GEODE-9854: Orphaned .drf file causing memory leak (#7145)" (#7209) add 5c76706 GEODE-9912: Add unique identifier to DUnit log lines (#7232) No new revisions were added by this update. Summary of changes: .../java/org/apache/geode/test/dunit/internal/ProcessManager.java | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-)
[geode] branch develop updated (3b2595a -> 0aced7f)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 3b2595a GEODE-9850: resolve the flaky test in getting the oldest tombstone (#7198) add 0aced7f GEODE-9810: More robust waiting for native Redis cluster to start (#7192) No new revisions were added by this update. Summary of changes: .../apache/geode/redis/NativeRedisClusterTest.java | 41 --- .../java/org/apache/geode/redis/ClusterNodes.java | 5 +-- .../geode/redis/NativeRedisClusterTestRule.java| 46 +- 3 files changed, 74 insertions(+), 18 deletions(-)
[geode] branch develop updated (9359388 -> da16195)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 9359388 GEODE-9148: prevent expiration reschedules (#6514) add da16195 GEODE-9899: Fix synchronization for RedisSet (#7201) No new revisions were added by this update. Summary of changes: .../apache/geode/redis/internal/data/RedisSet.java | 10 ++-- .../geode/redis/internal/data/RedisSetTest.java| 70 ++ 2 files changed, 75 insertions(+), 5 deletions(-)
[geode] branch support/1.14 updated: GEODE-9877: Use ServerSocket to create interfering port (#7182)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.14 in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/support/1.14 by this push: new e3ab8ca GEODE-9877: Use ServerSocket to create interfering port (#7182) e3ab8ca is described below commit e3ab8cae9bbf4518416bef4ecba99792bfc25224 Author: Jens Deppe AuthorDate: Sat Dec 11 22:39:41 2021 -0800 GEODE-9877: Use ServerSocket to create interfering port (#7182) - This is a manual backport of 310c647da6 since there are a lot of conflicts when cherry picking and the fix is quite trivial.
[geode] branch develop updated (3b133c3 -> 310c647)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 3b133c3 GEODE-9882: User Guide, Micrometer section, fix product_name typo (#7181) add 310c647 GEODE-9877: Use ServerSocket to create interfering port (#7180) No new revisions were added by this update. Summary of changes: ...pDUnitTest.java => GeodeRedisServerStartupAcceptanceTest.java} | 7 --- ...t.java => GeodeRedisServerStartupUsingGfshAcceptanceTest.java} | 8 2 files changed, 8 insertions(+), 7 deletions(-) rename geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/{GeodeRedisServerStartupDUnitTest.java => GeodeRedisServerStartupAcceptanceTest.java} (98%) rename geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/{GeodeRedisServerStartUpAcceptanceTest.java => GeodeRedisServerStartupUsingGfshAcceptanceTest.java} (93%)
[geode] branch develop updated (db64b49 -> c65f048)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from db64b49 GEODE-9758: Move SanctionedSerializables to filter package (#7165) add c65f048 GEODE-9871: Improve Radish test for network KB/s verification (#7170) No new revisions were added by this update. Summary of changes: .../AbstractRedisInfoStatsIntegrationTest.java | 68 +- 1 file changed, 28 insertions(+), 40 deletions(-)
[geode] branch develop updated: GEODE-9831: support SISMEMBER support command (#7164)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new d093b73 GEODE-9831: support SISMEMBER support command (#7164) d093b73 is described below commit d093b73cafeeb7b40e9156f3a3a85bb706881a98 Author: Kris10 AuthorDate: Wed Dec 8 08:34:06 2021 -0800 GEODE-9831: support SISMEMBER support command (#7164) * Update geode-docs/tools_modules/geode_for_redis.html.md.erb --- .../tools_modules/geode_for_redis.html.md.erb | 1 + geode-for-redis/README.md | 1 + .../server/AbstractHitsMissesIntegrationTest.java | 10 +-- .../set/AbstractSIsMemberIntegrationTest.java | 78 ++ .../redis/internal/commands/RedisCommandType.java | 2 +- 5 files changed, 57 insertions(+), 35 deletions(-) diff --git a/geode-docs/tools_modules/geode_for_redis.html.md.erb b/geode-docs/tools_modules/geode_for_redis.html.md.erb index 91c6c16..06d9d8d 100644 --- a/geode-docs/tools_modules/geode_for_redis.html.md.erb +++ b/geode-docs/tools_modules/geode_for_redis.html.md.erb @@ -113,6 +113,7 @@ If the server is functioning properly, you should see a response of `PONG`. - SADD - SCARD - SDIFF + - SISMEMBER - SET - SETNX - SLOWLOG **[3]** diff --git a/geode-for-redis/README.md b/geode-for-redis/README.md index 82d452e..1f4d70f 100644 --- a/geode-for-redis/README.md +++ b/geode-for-redis/README.md @@ -199,6 +199,7 @@ Geode for Redis implements a subset of the full Redis command set. - SADD - SCARD - SDIFF +- SISMEMBER - SET - SETEX - SETNX diff --git a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java index 511e9fc..0dc3084 100644 --- a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java +++ b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractHitsMissesIntegrationTest.java @@ -384,6 +384,11 @@ public abstract class AbstractHitsMissesIntegrationTest implements RedisIntegrat } @Test + public void testSismember() { +runCommandAndAssertHitsAndMisses(SET_KEY, k -> jedis.sismember(k, "member")); + } + + @Test public void testSmembers() { runCommandAndAssertHitsAndMisses(SET_KEY, k -> jedis.smembers(k)); } @@ -524,11 +529,6 @@ public abstract class AbstractHitsMissesIntegrationTest implements RedisIntegrat } @Test - public void testSismember() { -runCommandAndAssertHitsAndMisses(SET_KEY, k -> jedis.sismember(k, "member")); - } - - @Test public void testSrandmember() { runCommandAndAssertHitsAndMisses(SET_KEY, k -> jedis.srandmember(k)); } diff --git a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/set/AbstractSIsMemberIntegrationTest.java b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/set/AbstractSIsMemberIntegrationTest.java index 2b1b2b7..2a62305 100755 --- a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/set/AbstractSIsMemberIntegrationTest.java +++ b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/set/AbstractSIsMemberIntegrationTest.java @@ -15,10 +15,11 @@ package org.apache.geode.redis.internal.commands.executor.set; import static org.apache.geode.redis.RedisCommandArgumentsTestHelper.assertExactNumberOfArgs; +import static org.apache.geode.redis.internal.RedisConstants.ERROR_WRONG_TYPE; +import static org.apache.geode.test.dunit.rules.RedisClusterStartupRule.BIND_ADDRESS; +import static org.apache.geode.test.dunit.rules.RedisClusterStartupRule.REDIS_CLIENT_TIMEOUT; import static org.assertj.core.api.Assertions.assertThat; - -import java.util.HashSet; -import java.util.Set; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import org.junit.After; import org.junit.Before; @@ -27,19 +28,16 @@ import redis.clients.jedis.HostAndPort; import redis.clients.jedis.JedisCluster; import redis.clients.jedis.Protocol; -import org.apache.geode.management.internal.cli.util.ThreePhraseGenerator; import org.apache.geode.redis.RedisIntegrationTest; -import org.apache.geode.test.awaitility.GeodeAwaitility; public abstract class AbstractSIsMemberIntegrationTest implements RedisIntegrationTest { private JedisCluster jedis; - private static final ThreePhraseGenerator generator = new ThreePhraseGenerator(); - private static final int REDIS_CLIENT_TIMEOUT = - Math.toIntExact(Geode
[geode] branch develop updated (20242c6 -> 588e26a)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 20242c6 GEODE-9865: Decrement the count if the connection is unsuccessful (#7159) add 588e26a GEODE-9866: Improvements to AbstractRedisMemoryStatsIntegrationTest (#7168) No new revisions were added by this update. Summary of changes: .../AbstractRedisMemoryStatsIntegrationTest.java | 36 ++ 1 file changed, 17 insertions(+), 19 deletions(-)
[geode] branch develop updated (673d447 -> 4f573ec)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 673d447 GEODE-9863: Point redis benchmarks at geode-for-redis-benchmark-baseline branch (#7154) add 4f573ec GEODE-9866: Call System.gc before Radish tests query memory info (#7156) No new revisions were added by this update. Summary of changes: .../AppendMemoryNativeRedisAcceptanceTest.java | 30 -- .../org/apache/geode/redis/RedisTestHelper.java| 3 + .../AbstractAppendMemoryIntegrationTest.java | 69 -- .../string/AppendMemoryIntegrationTest.java| 29 - 4 files changed, 3 insertions(+), 128 deletions(-) delete mode 100644 geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/commands/executor/string/AppendMemoryNativeRedisAcceptanceTest.java delete mode 100644 geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/string/AbstractAppendMemoryIntegrationTest.java delete mode 100644 geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/string/AppendMemoryIntegrationTest.java
[geode] branch develop updated (a24fceb -> 673d447)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from a24fceb GEODE-9396: Translate Old Member IP to Name for Endpoint ID (#7119) add 673d447 GEODE-9863: Point redis benchmarks at geode-for-redis-benchmark-baseline branch (#7154) No new revisions were added by this update. Summary of changes: ci/pipelines/shared/jinja.variables.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
[geode-benchmarks] branch develop updated: Revert "GEODE-9862: protect from jgit6.0.0 when building older Geodes for benchmarks"
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git The following commit(s) were added to refs/heads/develop by this push: new 8bdfeb6 Revert "GEODE-9862: protect from jgit6.0.0 when building older Geodes for benchmarks" 8bdfeb6 is described below commit 8bdfeb6790ffd1af5cfe6bba6392ee594824ea3d Author: Jens Deppe AuthorDate: Tue Nov 30 15:08:37 2021 -0800 Revert "GEODE-9862: protect from jgit6.0.0 when building older Geodes for benchmarks" This reverts commit caa17e273b04eabf13b66a014042b73f97e457d0. --- infrastructure/scripts/aws/run_tests.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/infrastructure/scripts/aws/run_tests.sh b/infrastructure/scripts/aws/run_tests.sh index 64f1233..9617658 100755 --- a/infrastructure/scripts/aws/run_tests.sh +++ b/infrastructure/scripts/aws/run_tests.sh @@ -171,7 +171,6 @@ if [[ -z "${VERSION}" ]]; then || remoteShell rm -rf geode '&&' git clone "${REPO}" geode fi remoteShell "cd geode && git checkout \"${BRANCH}\" && [ \"\$(git rev-parse --abbrev-ref --symbolic-full-name HEAD)\" == \"HEAD\" ] || git reset --hard \"origin/${BRANCH}\"" - remoteShell "cd geode && echo \"dependencies { runtimeOnly('org.eclipse.jgit:org.eclipse.jgit:5.13.0.202109080827-r') }\" >> ./buildSrc/build.gradle" set +e for i in {1..5}; do
[geode] branch geode-for-redis-benchmark-baseline created (now fd3396a)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch geode-for-redis-benchmark-baseline in repository https://gitbox.apache.org/repos/asf/geode.git. at fd3396a GEODE-9862: pin Gradle use of jgit (#7152) This branch includes the following new commits: new fd3396a GEODE-9862: pin Gradle use of jgit (#7152) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
[geode] 01/01: GEODE-9862: pin Gradle use of jgit (#7152)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch geode-for-redis-benchmark-baseline in repository https://gitbox.apache.org/repos/asf/geode.git commit fd3396a114b65ac74161a24610a3160c55b4ff8e Author: Robert Houghton AuthorDate: Mon Nov 29 16:12:07 2021 -0800 GEODE-9862: pin Gradle use of jgit (#7152) * dependency of grgit used in GemFireVersion.properties Authored-by: Robert Houghton (cherry picked from commit 5d89d4f6e6ded010d05434e76d7baed6c7e9db28) --- buildSrc/build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 5116d5b..70e4d46 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -38,6 +38,9 @@ dependencies { implementation('me.champeau.gradle:japicmp-gradle-plugin:0.3.0') implementation('junit:junit:4.13.2') + // Pin jgit to 5.13.0 to fix grgit having open dependencies on jgit, which rolled to java 11 with version 6. + runtimeOnly('org.eclipse.jgit:org.eclipse.jgit:5.13.0.202109080827-r') + testAnnotationProcessor(this.project) }
[geode] branch develop updated (e69590e -> 2b523e1)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from e69590e GEODE-9669: Improve reporting of Radish mem_fragmentation_ratio (#7127) add 2b523e1 GEODE-9855: Radish authentication during HA test (#7146) No new revisions were added by this update. Summary of changes: .../test/dunit/rules/SerializableFunction.java | 7 ++ .../test/dunit/rules/RedisClusterStartupRule.java | 18 ++- .../auth/AuthWhileServersRestartDUnitTest.java | 130 + 3 files changed, 153 insertions(+), 2 deletions(-) create mode 100644 geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/executor/auth/AuthWhileServersRestartDUnitTest.java
[geode] branch develop updated: GEODE-9669: Improve reporting of Radish mem_fragmentation_ratio (#7127)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new e69590e GEODE-9669: Improve reporting of Radish mem_fragmentation_ratio (#7127) e69590e is described below commit e69590e1061c0184385c1b2305f7593b1ec3f01a Author: Jens Deppe AuthorDate: Tue Nov 30 05:13:35 2021 -0800 GEODE-9669: Improve reporting of Radish mem_fragmentation_ratio (#7127) - For this implementation, this value is the ratio of total amount of memory available to the JVM (Java heap) vs. the amount of memory used by the JVM. --- .../AbstractRedisInfoStatsIntegrationTest.java | 2 -- .../AbstractAppendMemoryIntegrationTest.java | 16 + .../commands/executor/server/InfoExecutor.java | 38 +- 3 files changed, 40 insertions(+), 16 deletions(-) diff --git a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractRedisInfoStatsIntegrationTest.java b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractRedisInfoStatsIntegrationTest.java index 480619f..30c1edc 100644 --- a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractRedisInfoStatsIntegrationTest.java +++ b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/server/AbstractRedisInfoStatsIntegrationTest.java @@ -28,7 +28,6 @@ import org.assertj.core.data.Offset; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; import redis.clients.jedis.Jedis; @@ -142,7 +141,6 @@ public abstract class AbstractRedisInfoStatsIntegrationTest implements RedisInte assertThat(Long.valueOf(getInfo(jedis).get(USED_MEMORY))).isGreaterThan(0); } - @Ignore("tracked by GEODE-9669") // currently we return 1.0 @Test public void memFragmentation_shouldBeGreaterThanOne() { for (int i = 0; i < 1; i++) { diff --git a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/string/AbstractAppendMemoryIntegrationTest.java b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/string/AbstractAppendMemoryIntegrationTest.java index 05bea0b..e1e44e9 100644 --- a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/string/AbstractAppendMemoryIntegrationTest.java +++ b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/string/AbstractAppendMemoryIntegrationTest.java @@ -16,6 +16,7 @@ package org.apache.geode.redis.internal.commands.executor.string; import static org.assertj.core.api.Assertions.assertThat; +import java.time.Duration; import java.util.Map; import org.junit.After; @@ -45,21 +46,24 @@ public abstract class AbstractAppendMemoryIntegrationTest implements RedisIntegr @Test public void testAppend_actuallyIncreasesBucketSize() { -int listSize = 1000; +int listSize = 100_000; String key = "key"; -Map info = RedisTestHelper.getInfo(jedis); -Long previousMemValue = Long.valueOf(info.get("used_memory")); +System.gc(); +Long startingMemValue = getUsedMemory(jedis); jedis.set(key, "initial"); for (int i = 0; i < listSize; i++) { jedis.append(key, "morestuff"); } -info = RedisTestHelper.getInfo(jedis); -Long finalMemValue = Long.valueOf(info.get("used_memory")); + GeodeAwaitility.await().atMost(Duration.ofSeconds(20)).pollInterval(Duration.ofSeconds(1)) +.untilAsserted(() -> assertThat(getUsedMemory(jedis)).isGreaterThan(startingMemValue)); + } -assertThat(finalMemValue).isGreaterThan(previousMemValue); + private Long getUsedMemory(Jedis jedis) { +Map info = RedisTestHelper.getInfo(jedis); +return Long.valueOf(info.get("used_memory")); } } diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/server/InfoExecutor.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/server/InfoExecutor.java index 2a3c420..08192df 100644 --- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/server/InfoExecutor.java +++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/server/InfoExecutor.java @@ -31,7 +31,6 @@ import java.text.DecimalFormat; import java.util.Arrays; import java.util.List; -import org.apache.geode.internal.cache.PartitionedRegion; import org.apache.geode.redis.internal.commands.Command; import org.apache.geode.redis.internal.commands.executor.CommandExecutor; import
[geode] branch develop updated (f56d60a -> b0d05cf)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from f56d60a GEODE-9838: Log key info for deserialization issue while index update (#7136) add b0d05cf GEODE-9812: Add Radish tests that kills multiple servers (#7115) No new revisions were added by this update. Summary of changes: .../StringsKillMultipleServersDUnitTest.java | 115 + 1 file changed, 115 insertions(+) create mode 100644 geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/executor/string/StringsKillMultipleServersDUnitTest.java
[geode] branch develop updated (f61e32f -> 5ec6a66)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from f61e32f GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (#7122) add 5ec6a66 GEODE-1537: Re-order ephemeral port acquisition to fix flaky DurableRegistrationDUnitTest (#7111) No new revisions were added by this update. Summary of changes: .../tier/sockets/DurableRegistrationDUnitTest.java | 24 -- 1 file changed, 8 insertions(+), 16 deletions(-)
[geode] branch develop updated (1fac184 -> 477a3dc)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 1fac184 GEODE-9803: turning on security debug log in the test and add more debug logging (#7117) add 477a3dc GEODE-9821: Remove use of local docker-compose from Radish native tests (#7125) No new revisions were added by this update. Summary of changes: .../java/org/apache/geode/redis/NativeRedisClusterTestRule.java| 3 --- 1 file changed, 3 deletions(-)
[geode] branch develop updated (9675cf8 -> 0ac9c8a)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 9675cf8 GEODE-6588: Use System.lineSeparator() add 0ac9c8a GEODE-9090: Do not log non-printable characters when debug logging from ManagementLoggingFilter (#7110) No new revisions were added by this update. Summary of changes: .../geode/management/internal/rest/ManagementLoggingFilter.java | 8 1 file changed, 8 insertions(+)
[geode] branch wip/corrupt-client updated: Export file apparently wants to be called *.gfd.
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch wip/corrupt-client in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/wip/corrupt-client by this push: new 898748a Export file apparently wants to be called *.gfd. 898748a is described below commit 898748a3528a19f711038aaeb5d44318e7262f5f Author: Jens Deppe AuthorDate: Sat Nov 13 16:31:16 2021 -0800 Export file apparently wants to be called *.gfd. - Ensure fn is compatible with 9.8. --- .../org/apache/geode/ExportLocalDataFunction.java | 49 ++ .../geode/pdx/CorruptPdxClientServerDUnitTest.java | 30 +++-- .../apache/geode/pdx/internal/PdxWriterImpl.java | 1 + 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/geode-core/src/distributedTest/java/org/apache/geode/ExportLocalDataFunction.java b/geode-core/src/distributedTest/java/org/apache/geode/ExportLocalDataFunction.java index 3aac1c2..d7c1044 100644 --- a/geode-core/src/distributedTest/java/org/apache/geode/ExportLocalDataFunction.java +++ b/geode-core/src/distributedTest/java/org/apache/geode/ExportLocalDataFunction.java @@ -22,11 +22,7 @@ import java.util.Arrays; import java.util.Map; import java.util.Properties; -import org.apache.logging.log4j.Logger; - -import org.apache.geode.LogWriter; import org.apache.geode.cache.Cache; -import org.apache.geode.cache.CacheFactory; import org.apache.geode.cache.Declarable; import org.apache.geode.cache.Region; import org.apache.geode.cache.execute.Function; @@ -40,49 +36,48 @@ import org.apache.geode.cache.snapshot.SnapshotOptions.SnapshotFormat; import org.apache.geode.internal.cache.CachedDeserializable; import org.apache.geode.internal.cache.EntrySnapshot; import org.apache.geode.internal.cache.RegionEntry; -import org.apache.geode.logging.internal.log4j.api.LogService; -public class ExportLocalDataFunction implements Function, Declarable { +public class ExportLocalDataFunction implements Function, Declarable { private static final long serialVersionUID = 4380042210718815441L; - private static final Logger logger = LogService.getLogger(); - public ExportLocalDataFunction() { - } + public ExportLocalDataFunction() {} - public void execute(final FunctionContext context) { -logger.info("DEBUG: Executing ExportLocalDataFunction on {}", context.getMemberName()); + public void execute(final FunctionContext context) { +final Cache cache = context.getCache(); +final LogWriter logger = cache.getLogger(); -// Get file name parameter -final String fileName = context.getArguments(); +logger.info("EXPORT: Executing ExportLocalDataFunction on " + cache.getName()); -if (fileName == null) { - throw new IllegalArgumentException(getId() + " requires an export filename as parameter"); +Object[] arguments = context.getArguments(); +String directoryName = null; +if (arguments != null && arguments.length > 0) { + directoryName = (String) arguments[0]; } -final Cache cache = context.getCache(); -final String memberName = cache.getName(); -final LogWriter logger = cache.getLogger(); +final String memberName = context.getMemberName(); // Get local data set final RegionFunctionContext rfc = (RegionFunctionContext) context; final Region localData = PartitionRegionHelper.getLocalDataForContext(rfc); // Create the file -final File file = new File(fileName); +final String fileName = +"server_" + memberName + "_region_" + localData.getName() + "_snapshot.gfd"; +final File file = new File(directoryName, fileName); // Export local data set final RegionSnapshotService service = localData.getSnapshotService(); try { - logger.warning( + logger.warning("EXPORT: " + currentThread().getName() + ": Exporting " + localData.size() + " entries in region " - + localData.getName() + " to file " + file.getAbsolutePath() + " started"); + + localData.getName() + " to file " + file.getAbsolutePath() + " started"); final SnapshotOptions options = service.createOptions(); options.setFilter(getRejectingFilter(localData, logger)); service.save(file, SnapshotFormat.GEMFIRE, options); - logger.warning( + logger.warning("EXPORT: " + currentThread().getName() + ": Exporting " + localData.size() + " entries in region " - + localData.getName() + " to file " + file.getAbsolutePath() + " completed"); + + localData.getName() + " to file " + file.getAbsolutePath() + " completed"); } catch (Exception e) { context.getResultSende
[geode] branch wip/corrupt-client updated: Parameterize fn with the file name
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch wip/corrupt-client in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/wip/corrupt-client by this push: new 6e6ae32 Parameterize fn with the file name 6e6ae32 is described below commit 6e6ae3222bb70352584c86594611d4faf82faebd Author: Jens Deppe AuthorDate: Sat Nov 13 14:53:24 2021 -0800 Parameterize fn with the file name --- .../org/apache/geode/ExportLocalDataFunction.java | 80 +++--- .../geode/pdx/CorruptPdxClientServerDUnitTest.java | 4 +- 2 files changed, 12 insertions(+), 72 deletions(-) diff --git a/geode-core/src/distributedTest/java/org/apache/geode/ExportLocalDataFunction.java b/geode-core/src/distributedTest/java/org/apache/geode/ExportLocalDataFunction.java index 9a22ccc..3aac1c2 100644 --- a/geode-core/src/distributedTest/java/org/apache/geode/ExportLocalDataFunction.java +++ b/geode-core/src/distributedTest/java/org/apache/geode/ExportLocalDataFunction.java @@ -44,20 +44,22 @@ import org.apache.geode.logging.internal.log4j.api.LogService; public class ExportLocalDataFunction implements Function, Declarable { + private static final long serialVersionUID = 4380042210718815441L; private static final Logger logger = LogService.getLogger(); - private static final byte DSCODE_DATA_SERIALIZABLE = 45; - private static final byte DSCODE_SERIALIZABLE = 44; - private static final byte DSCODE_PDX = 93; public ExportLocalDataFunction() { } public void execute(final FunctionContext context) { -// Get directory name - logger.info("DEBUG: Executing ExportLocalDataFunction on {}", context.getMemberName()); -final String directoryName = context.getArguments(); +// Get file name parameter +final String fileName = context.getArguments(); + +if (fileName == null) { + throw new IllegalArgumentException(getId() + " requires an export filename as parameter"); +} + final Cache cache = context.getCache(); final String memberName = cache.getName(); final LogWriter logger = cache.getLogger(); @@ -67,9 +69,7 @@ public class ExportLocalDataFunction implements Function, Declarable { final Region localData = PartitionRegionHelper.getLocalDataForContext(rfc); // Create the file -final String fileName = -"server_" + memberName + "_region_" + localData.getName() + "_snapshot.gfd"; -final File file = new File(directoryName, fileName); +final File file = new File(fileName); // Export local data set final RegionSnapshotService service = localData.getSnapshotService(); @@ -79,7 +79,6 @@ public class ExportLocalDataFunction implements Function, Declarable { + localData.getName() + " to file " + file.getAbsolutePath() + " started"); final SnapshotOptions options = service.createOptions(); options.setFilter(getRejectingFilter(localData, logger)); - // options.setFilter(getReserializingFilter(localData, logger)); service.save(file, SnapshotFormat.GEMFIRE, options); logger.warning( currentThread().getName() + ": Exporting " + localData.size() + " entries in region " @@ -110,67 +109,6 @@ public class ExportLocalDataFunction implements Function, Declarable { }; } - private SnapshotFilter getReserializingFilter(final Region localData, - final LogWriter logger) { -return new SnapshotFilter() { - public boolean accept(Map.Entry entry) { -boolean accept = true; -try { - //noinspection ResultOfMethodCallIgnored - entry.getValue(); -} catch (Exception e) { - final byte[] valueBytes = getValueBytes(entry); - logger.warning("Caught the following exception attempting to deserialize value region=" - + localData.getName() + "; key=" + entry.getKey() + "; valueLength=" - + valueBytes.length - + "; value=" + Arrays.toString(valueBytes) + ":", e); - logger.warning( - "Attempting to deserialize as DataSerializable value region=" + localData.getName() - + "; key=" + entry.getKey()); - accept = - attemptToDeserialize(entry, valueBytes, logger, "DataSerializable", - DSCODE_DATA_SERIALIZABLE); - if (!accept) { -logger.warning( -"Attempting to deserialize as Serializable value region=" + localData.getName() -+ "; key=" -+ entry.getKey()); -accept = -attemptToDeserialize(entry, valueBytes, logger, "Serializab
[geode] branch wip/corrupt-client updated: Add ExportLocalDataFunction and run it from the DUnit test
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch wip/corrupt-client in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/wip/corrupt-client by this push: new bc07734 Add ExportLocalDataFunction and run it from the DUnit test bc07734 is described below commit bc07734bced6fe15432afdfa9a1763301f18a022 Author: Jens Deppe AuthorDate: Sat Nov 13 14:37:54 2021 -0800 Add ExportLocalDataFunction and run it from the DUnit test --- .../org/apache/geode/ExportLocalDataFunction.java | 208 + .../geode/pdx/CorruptPdxClientServerDUnitTest.java | 22 ++- 2 files changed, 226 insertions(+), 4 deletions(-) diff --git a/geode-core/src/distributedTest/java/org/apache/geode/ExportLocalDataFunction.java b/geode-core/src/distributedTest/java/org/apache/geode/ExportLocalDataFunction.java new file mode 100644 index 000..9a22ccc --- /dev/null +++ b/geode-core/src/distributedTest/java/org/apache/geode/ExportLocalDataFunction.java @@ -0,0 +1,208 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package org.apache.geode; + +import static java.lang.Thread.currentThread; + +import java.io.File; +import java.util.Arrays; +import java.util.Map; +import java.util.Properties; + +import org.apache.logging.log4j.Logger; + +import org.apache.geode.LogWriter; +import org.apache.geode.cache.Cache; +import org.apache.geode.cache.CacheFactory; +import org.apache.geode.cache.Declarable; +import org.apache.geode.cache.Region; +import org.apache.geode.cache.execute.Function; +import org.apache.geode.cache.execute.FunctionContext; +import org.apache.geode.cache.execute.RegionFunctionContext; +import org.apache.geode.cache.partition.PartitionRegionHelper; +import org.apache.geode.cache.snapshot.RegionSnapshotService; +import org.apache.geode.cache.snapshot.SnapshotFilter; +import org.apache.geode.cache.snapshot.SnapshotOptions; +import org.apache.geode.cache.snapshot.SnapshotOptions.SnapshotFormat; +import org.apache.geode.internal.cache.CachedDeserializable; +import org.apache.geode.internal.cache.EntrySnapshot; +import org.apache.geode.internal.cache.RegionEntry; +import org.apache.geode.logging.internal.log4j.api.LogService; + +public class ExportLocalDataFunction implements Function, Declarable { + + private static final Logger logger = LogService.getLogger(); + private static final byte DSCODE_DATA_SERIALIZABLE = 45; + private static final byte DSCODE_SERIALIZABLE = 44; + private static final byte DSCODE_PDX = 93; + + public ExportLocalDataFunction() { + } + + public void execute(final FunctionContext context) { +// Get directory name + +logger.info("DEBUG: Executing ExportLocalDataFunction on {}", context.getMemberName()); + +final String directoryName = context.getArguments(); +final Cache cache = context.getCache(); +final String memberName = cache.getName(); +final LogWriter logger = cache.getLogger(); + +// Get local data set +final RegionFunctionContext rfc = (RegionFunctionContext) context; +final Region localData = PartitionRegionHelper.getLocalDataForContext(rfc); + +// Create the file +final String fileName = +"server_" + memberName + "_region_" + localData.getName() + "_snapshot.gfd"; +final File file = new File(directoryName, fileName); + +// Export local data set +final RegionSnapshotService service = localData.getSnapshotService(); +try { + logger.warning( + currentThread().getName() + ": Exporting " + localData.size() + " entries in region " + + localData.getName() + " to file " + file.getAbsolutePath() + " started"); + final SnapshotOptions options = service.createOptions(); + options.setFilter(getRejectingFilter(localData, logger)); + // options.setFilter(getReserializingFilter(localData, logger)); + service.save(file, SnapshotFormat.GEMFIRE, options); + logger.warning( + currentThread().getName() + ": Exporting " + localData.size() + " entries in region "
[geode] branch develop updated (4c43c53 -> 7f4bf62)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 4c43c53 GEODE-9774: Clear networkHop variable at function execution exit (#7051) add 7f4bf62 GEODE-9778: Bump netty from 4.1.67.Final to 4.1.70.Final (#7075) No new revisions were added by this update. Summary of changes: boms/geode-all-bom/src/test/resources/expected-pom.xml| 15 ++- .../geode/gradle/plugins/DependencyConstraints.groovy | 6 +- dev-tools/release/license_review.sh | 2 +- .../src/integrationTest/resources/assembly_content.txt| 9 +++-- .../integrationTest/resources/dependency_classpath.txt| 15 ++- .../src/integrationTest/resources/expected_jars.txt | 9 +++-- geode-for-redis/build.gradle | 5 - geode-for-redis/src/test/resources/expected-pom.xml | 2 +- 8 files changed, 45 insertions(+), 18 deletions(-)
[geode] branch develop updated: GEODE-9794: Radish PassiveExpirationManager can throw NPE (#7072)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 835167a GEODE-9794: Radish PassiveExpirationManager can throw NPE (#7072) 835167a is described below commit 835167a58b329ce8ba51265b288e72ac264e9976 Author: Jens Deppe AuthorDate: Wed Nov 3 16:37:53 2021 -0700 GEODE-9794: Radish PassiveExpirationManager can throw NPE (#7072) --- .../java/org/apache/geode/redis/internal/PassiveExpirationManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/PassiveExpirationManager.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/PassiveExpirationManager.java index 4e5bdf6..805b77b 100644 --- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/PassiveExpirationManager.java +++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/PassiveExpirationManager.java @@ -63,7 +63,8 @@ public class PassiveExpirationManager { PartitionRegionHelper.getLocalPrimaryData(regionProvider.getLocalDataRegion()); for (Map.Entry entry : localPrimaryData.entrySet()) { try { - if (entry.getValue().hasExpired(now)) { + RedisData value = entry.getValue(); + if (value != null && value.hasExpired(now)) { // pttl will do its own check using active expiration and expire the key if needed if (-2 == internalPttl(regionProvider, entry.getKey())) {
[geode-benchmarks] branch debug-netty-latest updated: Fix concourse script issue
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch debug-netty-latest in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git The following commit(s) were added to refs/heads/debug-netty-latest by this push: new eb4f0be Fix concourse script issue eb4f0be is described below commit eb4f0be4ccd5775353845331ac1b63c37015a36d Author: Jens Deppe AuthorDate: Wed Nov 3 16:21:36 2021 -0700 Fix concourse script issue --- gradlew | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradlew b/gradlew index de155c6..df0aa1e 100755 --- a/gradlew +++ b/gradlew @@ -92,13 +92,13 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then -if [ -x "$JAVA_HOME/jre/sh/java" ] ; then +if [ -f "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" else JAVACMD="$JAVA_HOME/bin/java" fi -if [ ! -x "$JAVACMD" ] ; then +if [ ! -f "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME Please set the JAVA_HOME variable in your environment to match the
[geode-benchmarks] branch debug-netty-latest created (now 6f9b9c8)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch debug-netty-latest in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git. at 6f9b9c8 GEODE-9291 Benchmarks for sorted sets (#158) No new revisions were added by this update.
[geode] branch develop updated: GEODE-9646: Update native redis tests to consistently use version 6.2.6 (#7019)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new 22577d7 GEODE-9646: Update native redis tests to consistently use version 6.2.6 (#7019) 22577d7 is described below commit 22577d73fba46ee4724c1d17e8b7d228c622907a Author: Jens Deppe AuthorDate: Fri Oct 29 05:29:38 2021 -0700 GEODE-9646: Update native redis tests to consistently use version 6.2.6 (#7019) --- .../connection/AuthNativeRedisAcceptanceTest.java | 10 +++--- .../MemoryOverheadNativeRedisAcceptanceTest.java | 2 +- .../java/org/apache/geode/NativeRedisTestRule.java | 2 +- .../geode/redis/internal/proxy/RedisProxy.java | 2 +- .../internal/proxy/RedisProxyInboundHandler.java | 13 +++- .../commonTest/resources/redis-cluster-compose.yml | 14 .../executor/AbstractUnknownIntegrationTest.java | 37 -- .../internal/executor/UnknownIntegrationTest.java | 14 .../pubsub/AbstractSubCommandsIntegrationTest.java | 8 +++-- .../AbstractSubscriptionsIntegrationTest.java | 3 +- .../server/AbstractInfoIntegrationTest.java| 11 +-- .../executor/server/CommandIntegrationTest.java| 2 +- .../executor/server/InfoIntegrationTest.java | 12 +++ .../executor/set/AbstractSPopIntegrationTest.java | 4 +-- .../AbstractZInterStoreIntegrationTest.java| 4 +-- .../AbstractZUnionStoreIntegrationTest.java| 4 +-- .../geode/redis/internal/RedisConstants.java | 10 -- .../internal/executor/pubsub/PubSubExecutor.java | 2 +- .../redis/internal/executor/set/SPopExecutor.java | 4 +-- .../executor/sortedset/ZInterStoreExecutor.java| 7 .../executor/sortedset/ZStoreExecutor.java | 6 ++-- .../executor/sortedset/ZUnionStoreExecutor.java| 8 + .../internal/netty/ExecutionHandlerContext.java| 4 ++- .../pubsub/AbstractSubscriptionManager.java| 4 +++ .../apache/geode/redis/internal/pubsub/PubSub.java | 2 +- .../geode/redis/internal/pubsub/PubSubImpl.java| 4 +-- .../geode/redis/internal/pubsub/Subscriptions.java | 7 27 files changed, 136 insertions(+), 64 deletions(-) diff --git a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/executor/connection/AuthNativeRedisAcceptanceTest.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/executor/connection/AuthNativeRedisAcceptanceTest.java index 2be4be8..c17401c 100644 --- a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/executor/connection/AuthNativeRedisAcceptanceTest.java +++ b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/executor/connection/AuthNativeRedisAcceptanceTest.java @@ -15,6 +15,7 @@ package org.apache.geode.redis.internal.executor.connection; +import static org.apache.geode.NativeRedisTestRule.DEFAULT_REDIS_IMAGE; import static org.apache.geode.test.dunit.rules.RedisClusterStartupRule.REDIS_CLIENT_TIMEOUT; import org.junit.After; @@ -27,8 +28,6 @@ import org.apache.geode.test.junit.rules.IgnoreOnWindowsRule; public class AuthNativeRedisAcceptanceTest extends AbstractAuthIntegrationTest { - private static final String REDIS_DOCKER_IMAGE = "redis:6.2.6"; - // Docker compose does not work on windows in CI. Ignore this test on windows // Using a RuleChain to make sure we ignore the test before the rule comes into play @ClassRule @@ -59,16 +58,15 @@ public class AuthNativeRedisAcceptanceTest extends AbstractAuthIntegrationTest { @Override public void setupCacheWithSecurity(boolean needsWritePermission) { -redisContainer = -new GenericContainer<>(REDIS_DOCKER_IMAGE).withExposedPorts(6379) -.withCommand("redis-server --requirepass " + getPassword()); +redisContainer = new GenericContainer<>(DEFAULT_REDIS_IMAGE).withExposedPorts(6379) +.withCommand("redis-server --requirepass " + getPassword()); redisContainer.start(); jedis = new Jedis("localhost", redisContainer.getFirstMappedPort(), REDIS_CLIENT_TIMEOUT); } @Override public void setupCacheWithoutSecurity() { -redisContainer = new GenericContainer<>(REDIS_DOCKER_IMAGE).withExposedPorts(6379); +redisContainer = new GenericContainer<>(DEFAULT_REDIS_IMAGE).withExposedPorts(6379); redisContainer.start(); jedis = new Jedis("localhost", redisContainer.getFirstMappedPort(), REDIS_CLIENT_TIMEOUT); } diff --git a/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/executor/hash/MemoryOverheadNativeRedisAcceptanceTest.java b/geode-for-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/executor/hash/MemoryOverheadNativeRedisAcceptanceTest.java index 698a52e..1ddbb1c 10
[geode] branch develop updated (dae7b82 -> b4deab0)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from dae7b82 GEODE-9684: Add unit test coverage for RedisMemberInfoRetrievalFunction (#7053) add b4deab0 Revert "GEODE-9767: Bump netty from 4.1.67.Final to 4.1.69.Final (#7031)" (#7061) No new revisions were added by this update. Summary of changes: .../src/test/resources/expected-pom.xml| 27 +- .../gradle/plugins/DependencyConstraints.groovy| 6 + dev-tools/release/license_review.sh| 2 +- .../integrationTest/resources/assembly_content.txt | 9 ++-- .../resources/dependency_classpath.txt | 15 .../integrationTest/resources/expected_jars.txt| 9 ++-- geode-for-redis/build.gradle | 5 +--- .../src/test/resources/expected-pom.xml| 2 +- 8 files changed, 24 insertions(+), 51 deletions(-)
[geode] branch develop updated (7340352 -> e0c33cd)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 7340352 [GEODE-9775] Add heavy-lifter environment variables. (#7052) add e0c33cd GEODE-9757: Ensure that tx cache ops always add CachedDeserializable entries (#7022) No new revisions were added by this update. Summary of changes: ...va => TestDeltaSerializableSizeableObject.java} | 53 +- .../TransactionCommitOnFarSideDistributedTest.java | 18 .../apache/geode/internal/cache/BucketRegion.java | 60 +++ .../apache/geode/internal/cache/TXEntryState.java | 2 +- .../geode/internal/cache/BucketRegionTest.java | 113 + .../string/AbstractMSetIntegrationTest.java| 10 ++ 6 files changed, 227 insertions(+), 29 deletions(-) copy geode-core/src/distributedTest/java/org/apache/geode/internal/cache/{SerializableMonth.java => TestDeltaSerializableSizeableObject.java} (57%)
[geode-benchmarks] branch develop updated: GEODE-9773: Update Radish region name
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git The following commit(s) were added to refs/heads/develop by this push: new db2a063 GEODE-9773: Update Radish region name db2a063 is described below commit db2a063db226bcbb8cd24f757a10cff85472bc50 Author: Jens Deppe AuthorDate: Tue Oct 26 12:41:39 2021 -0700 GEODE-9773: Update Radish region name --- .../main/java/org/apache/geode/benchmark/redis/tasks/InitRegion.java| 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/InitRegion.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/InitRegion.java index 8210c7a..63cfaf2 100644 --- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/InitRegion.java +++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/InitRegion.java @@ -28,7 +28,7 @@ import org.apache.geode.perftest.TestContext; public class InitRegion implements Task { - public static final String REDIS_DATA_REGION = "REDIS_DATA"; + public static final String REDIS_DATA_REGION = "GEODE_FOR_REDIS"; @Override public void run(final TestContext context) throws Exception {
[geode] branch develop updated (636bea3 -> 4398bec)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 636bea3 GEODE-9713: Support thread count in ExecutorService rules (#7002) add 4398bec GEODE-9676: Limit array and string sizes for unauthenticated Radish connections (#6994) No new revisions were added by this update. Summary of changes: .../connection/AuthNativeRedisAcceptanceTest.java | 2 +- .../resources/0001-configure-redis-tests.patch | 37 +- .../connection/AbstractAuthIntegrationTest.java| 144 + .../geode/redis/internal/GeodeRedisServer.java | 4 +- .../geode/redis/internal/RedisConstants.java | 4 + .../internal/executor/connection/AuthExecutor.java | 10 +- .../redis/internal/netty/ByteToCommandDecoder.java | 39 +- .../internal/netty/ExecutionHandlerContext.java| 23 +++- .../redis/internal/netty/NettyRedisServer.java | 8 +- .../netty/RedisCommandParserException.java | 2 +- .../internal/services/RedisSecurityService.java| 68 ++ .../executor/connection/AuthExecutorTest.java | 10 +- .../services/RedisSecurityServiceTest.java | 91 + 13 files changed, 371 insertions(+), 71 deletions(-) create mode 100644 geode-for-redis/src/main/java/org/apache/geode/redis/internal/services/RedisSecurityService.java create mode 100644 geode-for-redis/src/test/java/org/apache/geode/redis/internal/services/RedisSecurityServiceTest.java
[geode] branch develop updated (a21df0b -> 3860c2f)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from a21df0b GEODE-9720: remove *FunctionExecutor classes (#6977) add 3860c2f GEODE-9604: Use AvailablePortHelper in MSetDUnitTest (#7011) No new revisions were added by this update. Summary of changes: .../internal/executor/string/MSetDUnitTest.java| 28 -- 1 file changed, 21 insertions(+), 7 deletions(-)
[geode] branch develop updated: GEODE-9660: ConcurrentLoopingThreads should not run action in case of thread exceptions (#6993)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/develop by this push: new fa82bc8 GEODE-9660: ConcurrentLoopingThreads should not run action in case of thread exceptions (#6993) fa82bc8 is described below commit fa82bc871821c78818e518b7ce84a1286e6abe28 Author: Jens Deppe AuthorDate: Thu Oct 14 05:36:23 2021 -0700 GEODE-9660: ConcurrentLoopingThreads should not run action in case of thread exceptions (#6993) --- .../geode/redis/ConcurrentLoopingThreads.java | 9 +- .../geode/redis/ConcurrentLoopingThreadsTest.java | 148 + .../key/AbstractRenameIntegrationTest.java | 15 +-- 3 files changed, 152 insertions(+), 20 deletions(-) diff --git a/geode-for-redis/src/commonTest/java/org/apache/geode/redis/ConcurrentLoopingThreads.java b/geode-for-redis/src/commonTest/java/org/apache/geode/redis/ConcurrentLoopingThreads.java index b1ec0af..21a0cc1 100644 --- a/geode-for-redis/src/commonTest/java/org/apache/geode/redis/ConcurrentLoopingThreads.java +++ b/geode-for-redis/src/commonTest/java/org/apache/geode/redis/ConcurrentLoopingThreads.java @@ -165,12 +165,9 @@ public class ConcurrentLoopingThreads { waitForBarrier(); } for (int i = 0; i < iterationCount && running.get(); i++) { -try { - runnable.accept(i); -} finally { - if (lockstep) { -waitForBarrier(); - } +runnable.accept(i); +if (lockstep) { + waitForBarrier(); } } } diff --git a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/ConcurrentLoopingThreadsTest.java b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/ConcurrentLoopingThreadsTest.java new file mode 100644 index 000..f80a92c --- /dev/null +++ b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/ConcurrentLoopingThreadsTest.java @@ -0,0 +1,148 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package org.apache.geode.redis; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + +public class ConcurrentLoopingThreadsTest { + + @Test + public void withIterations_actionDoesNotRunWhenThreadsThrowExceptions() { +AtomicBoolean actionRan = new AtomicBoolean(false); +AtomicInteger count = new AtomicInteger(0); + +assertThatThrownBy(() -> new ConcurrentLoopingThreads(10, +i -> count.incrementAndGet(), +i -> { + throw new RuntimeException("BANG"); +}) +.runWithAction(() -> actionRan.set(true))) +.isInstanceOf(RuntimeException.class); + +assertThat(count.get()).as("Expecting good thread to run once").isEqualTo(1); +assertThat(actionRan.get()).as("action should not run").isFalse(); + } + + @Test + public void withSignal_actionDoesNotRunWhenThreadsThrowExceptions() { +AtomicBoolean actionRan = new AtomicBoolean(false); +AtomicBoolean running = new AtomicBoolean(true); +AtomicInteger count = new AtomicInteger(0); + +assertThatThrownBy(() -> new ConcurrentLoopingThreads(running, +i -> count.incrementAndGet(), +i -> { + throw new RuntimeException("BANG"); +}) +.runWithAction(() -> actionRan.set(true))) +.isInstanceOf(RuntimeException.class); + +assertThat(count.get()).as("Expecting good thread to run once").isEqualTo(1); +assertThat(actionRan.get()).as("action should not run").isFalse(); + } + + @Test + public void withIterations_threadFailure_shouldStopAllOtherThreads() { +AtomicInteger count = new AtomicInteger(0); + +assertThatThrownBy(() -> new ConcurrentLoopingThreads(10, +i -> count.incrementAndGet(), +i -> { + throw new Runtime
[geode] branch develop updated (4497428 -> 567460f)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 4497428 GEODE-9731: Fix flaky PubSubIntegrationTest (#6991) add 567460f GEODE-9627: Add service provider interface to register DataSerializableFixedIDs (#6891) No new revisions were added by this update. Summary of changes: ...ackwardCompatibilitySerializationDUnitTest.java | 27 +- .../org/apache/geode/internal/DSFIDFactory.java| 876 ++--- .../geode/internal/InternalDataSerializer.java | 13 + .../internal/functions/CliFunctionResult.java | 9 +- .../geode/internal/offheap/DataTypeJUnitTest.java | 14 +- .../geode/ClusterCommunicationsDUnitTest.java | 48 +- .../key/AbstractDumpRestoreIntegrationTest.java| 23 - .../server/AbstractHitsMissesIntegrationTest.java | 11 - .../geode/redis/internal/GeodeRedisService.java| 48 +- .../org.apache.geode.internal.cache.CacheService | 15 + ...erialization.DataSerializableFixedIdRegistrant} | 2 +- .../geode/redis/internal/data/RedisHashTest.java | 10 - .../redis/internal/data/RedisKeyJUnitTest.java | 9 - .../geode/redis/internal/data/RedisSetTest.java| 10 - .../redis/internal/data/RedisSortedSetTest.java| 10 - .../geode/redis/internal/data/RedisStringTest.java | 10 - .../cache/lucene/internal/LuceneServiceImpl.java | 49 +- ...serialization.DataSerializableFixedIdRegistrant | 2 +- .../LuceneIndexCreationProfileJUnitTest.java | 1 - .../internal/StringQueryProviderJUnitTest.java | 1 - .../internal/distributed/EntryScoreJUnitTest.java | 2 - .../LuceneQueryFunctionContextJUnitTest.java | 3 - .../distributed/TopEntriesCollectorJUnitTest.java | 3 - .../internal/distributed/TopEntriesJUnitTest.java | 2 - .../internal/filesystem/ChunkKeyJUnitTest.java | 2 - .../lucene/internal/filesystem/FileJUnitTest.java | 2 - .../internal/results/PageResultsJUnitTest.java | 5 - ...lyzeMembershipSerializablesIntegrationTest.java | 7 +- .../membership/gms/GMSMemberDataJUnitTest.java | 1 - .../membership/gms/GMSMembershipJUnitTest.java | 3 +- .../membership/gms/MembershipIntegrationTest.java | 1 + .../gms/locator/GMSLocatorIntegrationTest.java | 1 - .../gms/messenger/JGroupsMessengerJUnitTest.java | 2 +- .../gms/MembershipLocatorBuilderImpl.java | 1 - .../internal/membership/gms/Services.java | 47 +- .../internal/serialization/DSFIDSerializer.java| 9 +- ...java => DataSerializableFixedIdRegistrant.java} | 16 +- java => DataSerializableFixedIdRegistrar.java} | 11 +- .../internal/DSFIDSerializerImpl.java | 23 +- .../internal/SerializationContextImpl.java | 3 +- .../internal/DSFIDSerializerImplTest.java | 44 ++ .../internal/tcpserver/HostAndPortTest.java| 6 +- .../internal/client/locator/WANFactoryImpl.java| 47 +- ...erialization.DataSerializableFixedIdRegistrant} | 1 + 44 files changed, 689 insertions(+), 741 deletions(-) copy geode-for-redis/src/{acceptanceTest/resources/testcontainers.properties => main/resources/META-INF/services/org.apache.geode.internal.serialization.DataSerializableFixedIdRegistrant} (93%) copy geode-for-redis/src/acceptanceTest/resources/testcontainers.properties => geode-lucene/src/main/resources/META-INF/services/org.apache.geode.internal.serialization.DataSerializableFixedIdRegistrant (93%) copy geode-serialization/src/main/java/org/apache/geode/internal/serialization/{SerializationSanctionedSerializablesService.java => DataSerializableFixedIdRegistrant.java} (70%) copy geode-serialization/src/main/java/org/apache/geode/internal/serialization/{UnknownVersion.java => DataSerializableFixedIdRegistrar.java} (72%) create mode 100644 geode-serialization/src/test/java/org/apache/geode/internal/serialization/internal/DSFIDSerializerImplTest.java copy geode-wan/src/main/resources/META-INF/services/{org.apache.geode.internal.cache.wan.spi.WANFactory => org.apache.geode.internal.serialization.DataSerializableFixedIdRegistrant} (99%)
[geode] branch develop updated (00f92b6 -> 4497428)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 00f92b6 GEODE-9677: After provider sends ImageReply, requester could finish e… (#6992) add 4497428 GEODE-9731: Fix flaky PubSubIntegrationTest (#6991) No new revisions were added by this update. Summary of changes: .../redis/internal/executor/pubsub/AbstractPubSubIntegrationTest.java | 2 ++ 1 file changed, 2 insertions(+)
[geode] branch support/1.14 updated: GEODE-9672: Disable native redis multibulk test (#6941)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a commit to branch support/1.14 in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/support/1.14 by this push: new e868ba3 GEODE-9672: Disable native redis multibulk test (#6941) e868ba3 is described below commit e868ba3dc3d42bde67aaeb99c6b45440a13afbd6 Author: Jens Deppe AuthorDate: Wed Oct 6 08:18:44 2021 -0700 GEODE-9672: Disable native redis multibulk test (#6941) - This is a manual packport of the original fix --- .../resources/0001-configure-redis-tests.patch | 97 +- 1 file changed, 57 insertions(+), 40 deletions(-) diff --git a/geode-apis-compatible-with-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch b/geode-apis-compatible-with-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch index e83bf1d..533a2c3 100644 --- a/geode-apis-compatible-with-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch +++ b/geode-apis-compatible-with-redis/src/acceptanceTest/resources/0001-configure-redis-tests.patch @@ -1,22 +1,3 @@ -From 15b752b4d129d4f303d033f0e6e63871355388cc Mon Sep 17 00:00:00 2001 -From: Hale Bales -Date: Wed, 22 Jul 2020 16:55:20 -0400 -Subject: [PATCH] configure redis tests - -change redis tests for compatibility with geode redis - tests/support/server.tcl | 7 +- - tests/support/test.tcl | 4 +- - tests/test_helper.tcl | 11 +- - tests/unit/auth.tcl| 13 +- - tests/unit/expire.tcl | 104 +++--- - tests/unit/pubsub.tcl | 336 +++-- - tests/unit/quit.tcl| 5 +- - tests/unit/type/hash.tcl | 52 +++ - tests/unit/type/set.tcl| 8 +- - tests/unit/type/string.tcl | 42 +++--- - 10 files changed, 294 insertions(+), 288 deletions(-) - diff --git a/tests/support/server.tcl b/tests/support/server.tcl index 5578f1fd6..55c0a5253 100644 --- a/tests/support/server.tcl @@ -93,7 +74,7 @@ index 8978631e0..33c10eb15 100644 } elseif {$opt eq {--port}} { set ::port $arg diff --git a/tests/unit/auth.tcl b/tests/unit/auth.tcl -index 633cda95c..03857205d 100644 +index f5da728e8..c8b40385f 100644 --- a/tests/unit/auth.tcl +++ b/tests/unit/auth.tcl @@ -1,9 +1,10 @@ @@ -113,8 +94,43 @@ index 633cda95c..03857205d 100644 start_server {tags {"auth"} overrides {requirepass foobar}} { test {AUTH fails when a wrong password is given} { +@@ -25,19 +26,19 @@ start_server {tags {"auth"} overrides {requirepass foobar}} { + r incr foo + } {101} + +-test {For unauthenticated clients multibulk and bulk length are limited} { +-set rr [redis [srv "host"] [srv "port"] 0] +-$rr write "*100\r\n" +-$rr flush +-catch {[$rr read]} e +-assert_match {*unauthenticated multibulk length*} $e +-$rr close +- +-set rr [redis [srv "host"] [srv "port"] 0] +-$rr write "*1\r\n\$1\r\n" +-$rr flush +-catch {[$rr read]} e +-assert_match {*unauthenticated bulk length*} $e +-$rr close +-} ++#test {For unauthenticated clients multibulk and bulk length are limited} { ++#set rr [redis [srv "host"] [srv "port"] 0] ++#$rr write "*100\r\n" ++#$rr flush ++#catch {[$rr read]} e ++#assert_match {*unauthenticated multibulk length*} $e ++#$rr close ++# ++#set rr [redis [srv "host"] [srv "port"] 0] ++#$rr write "*1\r\n\$1\r\n" ++#$rr flush ++#catch {[$rr read]} e ++#assert_match {*unauthenticated bulk length*} $e ++#$rr close ++#} + } diff --git a/tests/unit/expire.tcl b/tests/unit/expire.tcl -index de24eabed..aeeb1da7f 100644 +index de24eabed..6b37389de 100644 --- a/tests/unit/expire.tcl +++ b/tests/unit/expire.tcl @@ -7,7 +7,7 @@ start_server {tags {"expire"}} { @@ -162,7 +178,10 @@ index de24eabed..aeeb1da7f 100644 test {PERSIST returns 0 against non existing or non volatile keys} { r set x foo -@@ -149,44 +149,44 @@ start_server {tags {"expire"}} { +@@ -146,47 +146,47 @@ start_server {tags {"expire"}} { + list [r ttl x] [r pttl x] + } {-2 -2} + -test {Redis should actively expire keys incrementally} { -r flushdb -r psetex key1 500 a @@ -176,20 +195,7 @@ index de24eabed..aeeb1da7f 100644 -set size2 [r dbsize] -list $size1 $size2 -} {3 0} -+#test {Redis should actively expire keys incrementally} { -+#r flushdb -+#r psetex key1 500 a -+#r psetex key2 500 a -+#r psetex key3 500 a -+#set size1 [r dbsize] -+## Redis expires random keys ten times eve
[geode] branch develop updated (d5995b5 -> 3f3dfdb)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from d5995b5 GEODE-9662: increase acceptance test timeout (#6940) add 3f3dfdb GEODE-9623: Radish COMMAND command should return simple strings (#6937) No new revisions were added by this update. Summary of changes: .../proxy/ClusterNodesResponseProcessor.java | 2 +- .../redis/internal/executor/AbstractExecutor.java | 2 +- .../redis/internal/executor/RedisResponse.java | 8 ++-- .../internal/executor/cluster/ClusterExecutor.java | 2 +- .../internal/executor/connection/PingExecutor.java | 2 +- .../internal/executor/hash/HGetAllExecutor.java| 2 +- .../internal/executor/hash/HKeysExecutor.java | 2 +- .../internal/executor/hash/HMGetExecutor.java | 2 +- .../internal/executor/hash/HValsExecutor.java | 2 +- .../internal/executor/pubsub/PubSubExecutor.java | 4 +- .../internal/executor/server/CommandExecutor.java | 2 +- .../internal/executor/set/SMembersExecutor.java| 2 +- .../redis/internal/executor/set/SPopExecutor.java | 2 +- .../internal/executor/set/SRandMemberExecutor.java | 2 +- .../executor/sortedset/AbstractZPopExecutor.java | 2 +- .../executor/sortedset/ZRangeByLexExecutor.java| 2 +- .../executor/sortedset/ZRangeByScoreExecutor.java | 2 +- .../executor/sortedset/ZRangeExecutor.java | 2 +- .../executor/sortedset/ZRevRangeByLexExecutor.java | 2 +- .../sortedset/ZRevRangeByScoreExecutor.java| 2 +- .../executor/sortedset/ZRevRangeExecutor.java | 2 +- .../apache/geode/redis/internal/netty/Coder.java | 47 -- 22 files changed, 51 insertions(+), 46 deletions(-)
[geode] branch develop updated (3448e82 -> 4e85e29)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 3448e82 GEODE-9623: Unsupported commands should not be returned by COMMAND when not enabled (#6933) add 4e85e29 GEODE-9587: Support MSETNX command (#6925) No new revisions were added by this update. Summary of changes: geode-apis-compatible-with-redis/README.md | 4 +- .../internal/executor/string/MSetDUnitTest.java| 7 +- .../{MSetDUnitTest.java => MSetNXDUnitTest.java} | 44 +++- .../string/AbstractMSetNXIntegrationTest.java | 122 + .../geode/redis/internal/RedisCommandType.java | 6 +- .../data/RedisStringCommandsFunctionExecutor.java | 14 ++- .../executor/key/AbstractRenameExecutor.java | 2 +- ...MSetExecutor.java => AbstractMSetExecutor.java} | 20 +++- .../internal/executor/string/MSetExecutor.java | 42 ++- .../internal/executor/string/MSetNXExecutor.java | 46 +++- .../executor/string/RedisStringCommands.java | 2 +- 11 files changed, 180 insertions(+), 129 deletions(-) copy geode-apis-compatible-with-redis/src/distributedTest/java/org/apache/geode/redis/internal/executor/string/{MSetDUnitTest.java => MSetNXDUnitTest.java} (78%) copy geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/executor/string/{MSetExecutor.java => AbstractMSetExecutor.java} (75%) mode change 100755 => 100644
[geode] branch develop updated (b73065f -> 3448e82)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from b73065f GEODE-9672: Disable native redis multibulk test (#6934) add 3448e82 GEODE-9623: Unsupported commands should not be returned by COMMAND when not enabled (#6933) No new revisions were added by this update. Summary of changes: .../executor/server/CommandIntegrationTest.java| 23 ++ .../internal/executor/server/CommandExecutor.java | 5 - 2 files changed, 27 insertions(+), 1 deletion(-)
[geode] branch develop updated (ab651eb -> 3c70fee)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from ab651eb GEODE-9625: Only serialize transaction metadata when grouping enabled. (#6892) add 3c70fee GEODE-8840: Support RENAMENX command (#6877) No new revisions were added by this update. Summary of changes: geode-apis-compatible-with-redis/README.md | 3 +- ...java => RenameNXNativeRedisAcceptanceTest.java} | 3 +- .../key/AbstractRenameIntegrationTest.java | 209 +++--- ...t.java => AbstractRenameNXIntegrationTest.java} | 234 + ...ationTest.java => RenameNXIntegrationTest.java} | 2 +- .../apache/geode/codeAnalysis/excludedClasses.txt | 2 +- .../geode/redis/internal/RedisCommandType.java | 3 + .../geode/redis/internal/RedisConstants.java | 2 +- .../redis/internal/data/AbstractRedisData.java | 20 +- .../geode/redis/internal/data/NullRedisData.java | 3 +- .../geode/redis/internal/data/RedisData.java | 3 +- .../data/RedisKeyCommandsFunctionExecutor.java | 4 +- ...Exception.java => RedisKeyExistsException.java} | 6 +- ...meExecutor.java => AbstractRenameExecutor.java} | 31 ++- .../internal/executor/key/RedisKeyCommands.java| 2 +- .../internal/executor/key/RenameExecutor.java | 47 ++--- .../{TypeExecutor.java => RenameNXExecutor.java} | 28 ++- .../internal/executor/key/RestoreExecutor.java | 8 +- 18 files changed, 379 insertions(+), 231 deletions(-) copy geode-apis-compatible-with-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/executor/key/{DelNativeRedisAcceptanceTest.java => RenameNXNativeRedisAcceptanceTest.java} (93%) mode change 100644 => 100755 copy geode-apis-compatible-with-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/key/{AbstractRenameIntegrationTest.java => AbstractRenameNXIntegrationTest.java} (57%) copy geode-apis-compatible-with-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/key/{ExpireAtIntegrationTest.java => RenameNXIntegrationTest.java} (94%) rename geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/data/{RedisRestoreKeyExistsException.java => RedisKeyExistsException.java} (86%) copy geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/executor/key/{RenameExecutor.java => AbstractRenameExecutor.java} (68%) copy geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/executor/key/{TypeExecutor.java => RenameNXExecutor.java} (63%) mode change 100755 => 100644
[geode] branch develop updated (28321af -> 5b78326)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 28321af GEODE-9516: add ZINTERSTORE command (#6861) add 5b78326 GEODE-9623: Add Radish COMMAND command (#6907) No new revisions were added by this update. Summary of changes: geode-apis-compatible-with-redis/build.gradle | 1 + .../java/org/apache/geode/NativeRedisTestRule.java | 9 +- .../executor/server/CommandIntegrationTest.java| 129 +++ .../apache/geode/codeAnalysis/excludedClasses.txt | 2 + .../geode/redis/internal/RedisCommandType.java | 370 + ...{FlushAllExecutor.java => CommandExecutor.java} | 38 ++- .../redis/internal/executor/set/SPopExecutor.java | 7 +- .../parameters/ClusterParameterRequirements.java | 29 +- .../parameters/EvenParameterRequirements.java | 51 --- .../parameters/ExactParameterRequirements.java | 34 -- .../parameters/MaximumParameterRequirements.java | 49 --- .../parameters/MinimumParameterRequirements.java | 35 -- .../parameters/MultipleParameterRequirements.java | 36 -- .../parameters/OddParameterRequirements.java | 50 --- .../geode/redis/internal/parameters/Parameter.java | 163 + .../internal/parameters/ParameterRequirements.java | 27 -- .../parameters/SlowlogParameterRequirements.java | 37 ++- .../parameters/SpopParameterRequirements.java | 35 -- .../UnspecifiedParameterRequirements.java | 27 -- ...de-apis-compatible-with-redis-serializables.txt | 1 - 20 files changed, 597 insertions(+), 533 deletions(-) create mode 100644 geode-apis-compatible-with-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/server/CommandIntegrationTest.java copy geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/executor/server/{FlushAllExecutor.java => CommandExecutor.java} (58%) mode change 100755 => 100644 delete mode 100644 geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/parameters/EvenParameterRequirements.java delete mode 100644 geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/parameters/ExactParameterRequirements.java delete mode 100644 geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/parameters/MaximumParameterRequirements.java delete mode 100644 geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/parameters/MinimumParameterRequirements.java delete mode 100644 geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/parameters/MultipleParameterRequirements.java delete mode 100644 geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/parameters/OddParameterRequirements.java create mode 100644 geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/parameters/Parameter.java delete mode 100644 geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/parameters/ParameterRequirements.java delete mode 100644 geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/parameters/SpopParameterRequirements.java delete mode 100644 geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/parameters/UnspecifiedParameterRequirements.java
[geode] branch develop updated (1d6eef3 -> db60e0e)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 1d6eef3 GEODE-4181: Migrate uses of JUnitParamsRunner (#6890) add db60e0e GEODE-8192: Make Radish MSET command atomic (#6862) No new revisions were added by this update. Summary of changes: .../resources/0001-configure-redis-tests.patch | 27 ++- .../geode/redis/ConcurrentLoopingThreads.java | 37 - .../test/dunit/rules/RedisClusterStartupRule.java | 64 --- .../internal/executor/key/RenameDUnitTest.java | 4 +- .../internal/executor/string/MSetDUnitTest.java| 184 + .../common/UnsupportedCommandsIntegrationTest.java | 13 +- .../key/AbstractRenameIntegrationTest.java | 8 +- .../server/AbstractHitsMissesIntegrationTest.java | 3 +- .../string/AbstractMSetIntegrationTest.java| 137 ++- .../LockingStripedCoordinatorIntegrationTest.java | 65 .../geode/redis/internal/GeodeRedisServer.java | 4 +- .../geode/redis/internal/RedisCommandType.java | 4 +- .../geode/redis/internal/RegionProvider.java | 51 +- .../data/RedisDataCommandsFunctionExecutor.java| 13 +- .../data/RedisKeyCommandsFunctionExecutor.java | 8 +- .../RedisSortedSetCommandsFunctionExecutor.java| 2 - .../data/RedisStringCommandsFunctionExecutor.java | 23 ++- .../internal/executor/string/MSetExecutor.java | 32 ++-- .../executor/string/RedisStringCommands.java | 2 + ...dinator.java => LockingStripedCoordinator.java} | 65 .../LockingStripedCoordinatorTest.java}| 26 ++- 21 files changed, 574 insertions(+), 198 deletions(-) create mode 100644 geode-apis-compatible-with-redis/src/distributedTest/java/org/apache/geode/redis/internal/executor/string/MSetDUnitTest.java create mode 100644 geode-apis-compatible-with-redis/src/integrationTest/java/org/apache/geode/redis/internal/services/LockingStripedCoordinatorIntegrationTest.java rename geode-apis-compatible-with-redis/src/main/java/org/apache/geode/redis/internal/services/{SynchronizedStripedCoordinator.java => LockingStripedCoordinator.java} (52%) rename geode-apis-compatible-with-redis/src/test/java/org/apache/geode/redis/internal/{executor/SynchronizedStripedCoordinatorTest.java => services/LockingStripedCoordinatorTest.java} (71%)