You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by jc...@apache.org on 2020/03/16 21:03:23 UTC

[geode] branch feature/GEODE-7681 updated (905edbc -> f350555)

This is an automated email from the ASF dual-hosted git repository.

jchen21 pushed a change to branch feature/GEODE-7681
in repository https://gitbox.apache.org/repos/asf/geode.git.


 discard 905edbc  Use Region.clear instead of Region.removeAll
 discard c992898  Initiate clear from both client and server
 discard c6097ce  WIP
 discard f1b053f  spotlessApply
 discard 1644704  Create partitioned region on all servers
 discard 4c16145  Add the one bucket case
 discard ee823f5  gradlew spotlessApply
 discard 5ccefac  GEODE-7681: Initial draft of performance dunit
     add 51a0c65  GEODE-7771: change getting cache in getLuceneIndex (#4702)
     add ca7ccbc  GEODE-7820: Avoid Unnecessary toArray Invocations (#4741)
     add dfa3326  GEODE-7829: DEFAULT_ACK_WAIT_THRESHOLD inadvertently changed from 15 to 51 (#4746)
     add c8198f1  Revert "GEODE-6536: Added retry in borrowConnection/single hop (#4719)" (#4749)
     add bf0012d  Feature/geode 6807 1 (#4711)
     add cceaa66  Revert fluent style API fix in ClientRegionFactory (#4748)
     add 0af6264  GEODE-7808: standardize on use of HostAndPort to form client-side connections (#4743)
     add d603b21  GEODE-7835: Correct doc typo of file name gfsecurity.properties (#4756)
     add 3ad4f17  GEODE-7839: add gfsh oauth token support (#4736)
     add bcd3655  GEODE-7819: Add debugging support to SerializableTemporaryFolder (#4740)
     add a61f951  GEODE-7421: deployment should use PUT instead of POST in REST request
     add 4b06a7a  Revert "GEODE-7808: standardize on use of HostAndPort to form client-side connections (#4743)" (#4761)
     add 2f6bf01  GEODE-7828: Convert backing store for Redis Hashes and Sets to single regions (#4745)
     add 2a3e09f  GEODE-7832: Remove Connection Semaphores (#4754)
     add b3af99e  GEODE-7752: Delete the extra GeodeClusterManagementServiceBuilder (#4760)
     add f15bbc7  GEODE-7421: use RequestParam instead of RequestPart to be compatible with all rest client (#4766)
     add a5c8e2b  GEODE-7842: Improve concurrent region creation (#4767)
     add 5c2b959  GEODE-7808: standardize on use of HostAndPort for creating connections (#4765)
     add 838e070  GEODE-7840: Redis pub/sub does not handle binary messages correctly (#4762)
     add b57456e  GEODE-7841 Add benchmarking scripts for Geode-Redis module (#4763)
     add ccb543f  GEODE-7683: introduce BR.cmnClearRegion
     add 43bd364  GEODE-7682: add PR.clear  API (#4755)
     new 1263b78  GEODE-7681: Initial draft of performance dunit
     new 583f6ca  gradlew spotlessApply
     new 7b6b848  Add the one bucket case
     new 9bedf5d  Create partitioned region on all servers
     new ba49218  spotlessApply
     new f1a210f  WIP
     new e16f47b  Initiate clear from both client and server
     new f350555  Use Region.clear instead of Region.removeAll

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (905edbc)
            \
             N -- N -- N   refs/heads/feature/GEODE-7681 (f350555)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 8 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:
 .../apache/geode/metrics/CacheCommonTagsTest.java  |   3 +-
 .../rest/ClientClusterManagementSSLTest.java       |   2 +-
 .../ClientClusterManagementServiceDunitTest.java   |   2 +-
 .../rest/ClusterManagementServiceOnServerTest.java |   2 +-
 .../rest/GeodeClientClusterManagementSSLTest.java  |   2 +-
 .../GeodeClientClusterManagementSecurityTest.java  |   2 +-
 .../internal/LocatorLoadBalancingDUnitTest.java    |   6 +-
 .../geode/cache30/ClientMembershipDUnitTest.java   |   3 -
 .../distributed/internal/ProduceDateMessages.java  |   2 +-
 ...ntServerTransactionFailoverDistributedTest.java |   2 +-
 .../internal/cache/DeltaPropagationDUnitTest.java  |  64 +-
 .../cache/PartitionedRegionClearDUnitTest.java     | 218 ++++++
 .../PartitionedRegionPersistentClearDUnitTest.java |  13 +-
 .../AutoConnectionSourceImplJUnitTest.java         |  28 +-
 .../pooling/ConnectionManagerImplTest.java         |  32 +-
 .../pooling/ConnectionManagerJUnitTest.java        |   6 +-
 .../distributed/LauncherIntegrationTestCase.java   |   3 +-
 .../geode/distributed/LocatorIntegrationTest.java  |   4 +-
 .../tcpserver/TCPClientSSLIntegrationTest.java     |  12 +-
 .../internal/tcpserver/TCPServerSSLJUnitTest.java  |   5 +-
 .../CacheDistributionAdvisorConcurrentTest.java    | 103 +++
 ...itionedRegionSingleNodeOperationsJUnitTest.java |  66 --
 .../net/ClientSocketFactoryIntegrationTest.java    |   4 +-
 .../internal/net/SSLSocketIntegrationTest.java     |  13 +-
 .../GemFireStatSamplerIntegrationTest.java         |   3 +-
 .../SimpleStatSamplerIntegrationTest.java          |   3 +-
 ...SSLSocketParameterExtensionIntegrationTest.java |  11 +-
 .../codeAnalysis/sanctionedDataSerializables.txt   |  10 +-
 .../internal/DistributionLocatorConfigImpl.java    |   8 +-
 .../admin/internal/DistributionLocatorImpl.java    |   3 +-
 .../admin/internal/ManagedEntityConfigImpl.java    |   3 +-
 .../jmx/internal/MX4JServerSocketFactory.java      |  10 +-
 .../geode/cache/client/ClientRegionFactory.java    |   2 +-
 .../client/internal/AutoConnectionSourceImpl.java  |  47 +-
 .../client/internal/ClientRegionFactoryImpl.java   |   3 +-
 .../cache/client/internal/ConnectionImpl.java      |   7 +-
 .../internal/ExplicitConnectionSourceImpl.java     |   2 +-
 .../cache/client/internal/OpExecutorImpl.java      |   2 +-
 .../geode/cache/client/internal/PoolImpl.java      |  32 +-
 .../client/internal/pooling/ConnectionManager.java |   5 +-
 .../internal/pooling/ConnectionManagerImpl.java    |  48 +-
 .../java/org/apache/geode/distributed/Locator.java |   3 +-
 .../apache/geode/distributed/LocatorLauncher.java  |   4 +-
 .../internal/ClusterDistributionManager.java       |  16 +-
 .../internal/ClusterOperationExecutors.java        |   8 -
 .../geode/distributed/internal/Distribution.java   |   9 +-
 .../distributed/internal/DistributionAdvisor.java  |  12 +-
 .../internal/DistributionConfigImpl.java           |   3 +-
 .../distributed/internal/DistributionImpl.java     |  22 +-
 .../distributed/internal/DistributionMessage.java  |  49 +-
 .../distributed/internal/direct/DirectChannel.java | 200 ++----
 .../membership/InternalDistributedMember.java      |  28 +-
 .../org/apache/geode/internal/AbstractConfig.java  |   2 +-
 .../org/apache/geode/internal/DSFIDFactory.java    |   5 +
 .../apache/geode/internal/DistributionLocator.java |   6 +-
 .../org/apache/geode/internal/SystemAdmin.java     |   9 +-
 .../geode/internal/admin/remote/AdminRequest.java  |  15 +-
 .../geode/internal/admin/remote/AdminResponse.java |  12 +-
 .../internal/admin/remote/CompactRequest.java      |   7 +-
 .../admin/remote/DistributionLocatorId.java        |  26 +-
 .../internal/admin/remote/ShutdownAllRequest.java  |   3 +-
 .../apache/geode/internal/cache/BucketRegion.java  |  38 +-
 .../internal/cache/CacheDistributionAdvisor.java   |  98 ++-
 .../internal/cache/DistributedCacheOperation.java  |   2 +-
 .../geode/internal/cache/DistributedRegion.java    |  39 +-
 .../geode/internal/cache/GemFireCacheImpl.java     |   8 +-
 .../apache/geode/internal/cache/LocalRegion.java   |  10 +
 .../geode/internal/cache/PartitionedRegion.java    | 214 +++++-
 .../geode/internal/cache/PoolFactoryImpl.java      |  79 +--
 .../geode/internal/cache/RegionEventImpl.java      |   5 +
 .../geode/internal/cache/StateFlushOperation.java  |   2 +-
 .../internal/cache/partitioned/ClearPRMessage.java | 316 +++++++++
 .../cache/partitioned/PartitionMessage.java        |   2 +-
 .../internal/cache/partitioned/PutMessage.java     |   3 +-
 .../apache/geode/internal/cache/properties.html    |  34 -
 .../internal/cache/tier/sockets/AcceptorImpl.java  |   5 +-
 .../cache/tier/sockets/CacheClientUpdater.java     |   4 +-
 .../tier/sockets/ProtobufServerConnection.java     |   2 +-
 .../internal/cache/tx/RemoteOperationMessage.java  |  13 +-
 .../internal/cache/wan/AbstractGatewaySender.java  |   2 +-
 .../internal/cache/xmlcache/CacheXmlGenerator.java |   4 +-
 .../internal/net/SCAdvancedSocketCreator.java      | 119 ++++
 .../geode/internal/net/SCClientSocketCreator.java  |  20 +-
 .../geode/internal/net/SCServerSocketCreator.java  | 109 +++
 .../apache/geode/internal/net/SocketCreator.java   | 361 +++-------
 .../security/shiro/JMXShiroAuthenticator.java      |   5 +-
 .../geode/internal/statistics/HostStatSampler.java |   3 +-
 .../internal/statistics/StatArchiveWriter.java     |   3 +-
 .../org/apache/geode/internal/tcp/Connection.java  |  84 +--
 .../org/apache/geode/internal/tcp/TCPConduit.java  |   7 +-
 .../ContextAwareSSLRMIClientSocketFactory.java     |   5 +-
 .../internal/JmxManagerLocatorRequest.java         |   8 +-
 .../geode/management/internal/ManagementAgent.java |   8 +-
 .../internal/api/GeodeConnectionConfig.java        |   4 +-
 .../GeodeClusterManagementServiceBuilder.java      |  41 --
 .../utils/ClusterConfigurationStatusRetriever.java |  11 +-
 .../geode/management/internal/i18n/CliStrings.java |   2 +
 .../internal/messages/CompactRequest.java          |   5 +-
 .../sanctioned-geode-core-serializables.txt        |   8 +-
 .../client/internal/OpExecutorImplJUnitTest.java   |   2 +-
 .../geode/cache/client/internal/PoolImplTest.java  |   4 +-
 .../distributed/internal/DistributionTest.java     |  32 +-
 .../internal/cache/BucketRegionJUnitTest.java      |  77 ++
 .../cache/CacheDistributionAdvisorTest.java        | 176 +++++
 .../geode/internal/cache/CacheServerImplTest.java  |   5 +
 .../internal/cache/DistributedRegionJUnitTest.java |  18 +
 .../cache/partitioned/ClearPRMessageTest.java      | 260 +++++++
 .../tier/sockets/CacheClientUpdaterJUnitTest.java  |   6 +-
 .../geode/internal/net/SocketCreatorJUnitTest.java |   8 +-
 .../apache/geode/internal/tcp/TCPConduitTest.java  |   3 +-
 .../cache/PutAllClientServerDistributedTest.java   |  15 +-
 .../cache/tier/sockets/DurableClientTestBase.java  |   3 +-
 .../cache/tier/sockets/DurableClientTestCase.java  |  11 +-
 .../gfsh/command-pages/connect.html.md.erb         |  19 +-
 .../tools_modules/pulse/pulse-auth.html.md.erb     |   2 +-
 .../cache/client/internal/LocatorTestBase.java     |  10 +-
 .../geode/test/junit/rules/GfshCommandRule.java    |   6 +
 .../internal/cli/commands/ConnectCommand.java      |  26 +-
 .../cli/functions/RegionCreateFunction.java        |  37 +-
 .../internal/cli/shell/JmxOperationInvoker.java    |   7 +-
 .../internal/cli/commands/ConnectCommandTest.java  |  52 ++
 .../functions/RegionCreateFunctionJUnitTest.java   |  75 ++
 ...SerializableTemporaryFolderIntegrationTest.java | 334 +++++++++
 .../serializable/SerializableTemporaryFolder.java  | 148 +++-
 .../geode/test/junit/runners/TestRunner.java       |  96 ++-
 .../SerializableTemporaryFolderTest.java           |  12 +-
 .../internal/distributed/LuceneQueryFunction.java  |   9 +-
 .../distributed/LuceneQueryFunctionJUnitTest.java  |   2 +-
 .../apache/geode/management/api/CommandType.java   |   1 +
 ...tTemplateClusterManagementServiceTransport.java |   9 +-
 .../configuration/AbstractConfiguration.java       |   6 +
 .../geode/management/configuration/Deployment.java |   6 +
 .../internal/ClientClusterManagementService.java   |   3 +-
 .../ClientClusterManagementServiceTest.java        |   1 +
 .../internal/membership/gms/GMSUtilTest.java       |  36 +-
 .../gms/membership/GMSJoinLeaveJUnitTest.java      |  12 +-
 .../internal/membership/api/MembershipConfig.java  |   2 +-
 .../internal/membership/gms/GMSUtil.java           |  14 +-
 .../membership/gms/MemberDataBuilderImpl.java      |   4 +-
 .../membership/gms/MemberIdentifierImpl.java       |   8 +-
 .../membership/gms/fd/GMSHealthMonitor.java        |   7 +-
 .../membership/gms/locator/GMSLocator.java         |  13 +-
 .../gms/locator/MembershipLocatorImpl.java         |   5 +-
 .../membership/gms/membership/GMSJoinLeave.java    |   9 +-
 .../acceptance/CacheConnectionIntegrationTest.java |   4 +-
 .../v1/acceptance/CacheOperationsJUnitTest.java    |   4 +-
 geode-redis/README.md                              |  71 ++
 geode-redis/build.gradle                           |   3 -
 ... AnalyzeRedisSerializablesIntegrationTest.java} |   2 +-
 ...AuthJUnitTest.java => AuthIntegrationTest.java} |   2 +-
 ...st.java => ConcurrentStartIntegrationTest.java} |   2 +-
 ...CoderTest.java => GeoCoderIntegrationTest.java} |   2 +-
 .../{GeoJUnitTest.java => GeoIntegrationTest.java} |  13 +-
 .../apache/geode/redis/HashesIntegrationTest.java  | 775 +++++++++++++++++++++
 .../org/apache/geode/redis/HashesJUnitTest.java    | 188 -----
 ...stsJUnitTest.java => ListsIntegrationTest.java} |   8 +-
 ...{PubSubTest.java => PubSubIntegrationTest.java} |  30 +-
 .../geode/redis/RedisServerIntegrationTest.java    |   4 +-
 ... => SetCommandNegativeCaseIntegrationTest.java} |   2 +-
 .../apache/geode/redis/SetsIntegrationTest.java    | 756 ++++++++++++++++++++
 .../java/org/apache/geode/redis/SetsJUnitTest.java | 243 -------
 ...nitTest.java => SortedSetsIntegrationTest.java} |   2 +-
 ...sJunitTest.java => StringsIntegrationTest.java} |   2 +-
 .../geode/redis/mocks/MockBinarySubscriber.java}   |  36 +-
 .../java/org/apache/geode/internal/hll/Bits.java   |   3 +-
 .../internal/hll/CardinalityMergeException.java    |   1 -
 .../org/apache/geode/internal/hll/HyperLogLog.java |   9 +-
 .../apache/geode/internal/hll/HyperLogLogPlus.java |   3 +-
 .../org/apache/geode/redis/GeodeRedisServer.java   |  46 +-
 .../geode/redis/internal/AbstractSubscription.java |   4 +-
 .../{Extendable.java => AutoCloseableLock.java}    |  25 +-
 .../geode/redis/internal/ByteArrayWrapper.java     |  25 +-
 .../geode/redis/internal/ByteToCommandDecoder.java |  58 +-
 .../geode/redis/internal/ChannelSubscription.java  |   2 +-
 .../org/apache/geode/redis/internal/Coder.java     |   5 +
 .../org/apache/geode/redis/internal/Command.java   |  27 +-
 .../apache/geode/redis/internal/DoubleWrapper.java |  15 +-
 .../redis/internal/ExecutionHandlerContext.java    |  71 +-
 .../org/apache/geode/redis/internal/Executor.java  |   2 -
 .../apache/geode/redis/internal/Extendable.java    |   2 -
 .../org/apache/geode/redis/internal/GeoCoder.java  |   3 +-
 .../geode/redis/internal/GeodeRedisService.java    |   3 +-
 .../apache/geode/redis/internal/KeyRegistrar.java  |   5 +-
 .../geode/redis/internal/PatternSubscription.java  |   2 +-
 .../org/apache/geode/redis/internal/PubSub.java    |   2 +-
 .../apache/geode/redis/internal/PubSubImpl.java    |  15 +-
 .../internal/RedisCommandParserException.java      |   2 -
 .../geode/redis/internal/RedisCommandType.java     |   7 +-
 .../geode/redis/internal/RedisConstants.java       |   2 +-
 .../apache/geode/redis/internal/RedisDataType.java |   5 +-
 .../internal/RedisDataTypeMismatchException.java   |   2 -
 .../geode/redis/internal/RedisLockService.java     |  93 +++
 .../redis/internal/RegionCreationException.java    |   6 +-
 .../geode/redis/internal/RegionProvider.java       | 113 ++-
 .../apache/geode/redis/internal/Subscription.java  |   4 +-
 .../redis/internal/executor/AbstractExecutor.java  |  42 +-
 .../geode/redis/internal/executor/DelExecutor.java |   6 +-
 .../redis/internal/executor/ExistsExecutor.java    |   5 +-
 .../redis/internal/executor/ExpireAtExecutor.java  |  13 +-
 .../redis/internal/executor/ExpireExecutor.java    |  14 +-
 .../redis/internal/executor/FlushAllExecutor.java  |   3 +-
 .../redis/internal/executor/KeysExecutor.java      |   8 +-
 .../redis/internal/executor/PersistExecutor.java   |   5 +-
 .../redis/internal/executor/ScanExecutor.java      |  12 +-
 .../geode/redis/internal/executor/TTLExecutor.java |   6 +-
 .../redis/internal/executor/TypeExecutor.java      |   5 +-
 .../redis/internal/executor/UnkownExecutor.java    |  23 +-
 .../redis/internal/executor/hash/HDelExecutor.java |  60 +-
 .../internal/executor/hash/HExistsExecutor.java    |  58 +-
 .../internal/executor/hash/HGetAllExecutor.java    |  57 +-
 .../redis/internal/executor/hash/HGetExecutor.java |  42 +-
 .../internal/executor/hash/HIncrByExecutor.java    | 120 ++--
 .../executor/hash/HIncrByFloatExecutor.java        | 102 ++-
 .../internal/executor/hash/HKeysExecutor.java      |  45 +-
 .../redis/internal/executor/hash/HLenExecutor.java |  43 +-
 .../internal/executor/hash/HMGetExecutor.java      |  31 +-
 .../internal/executor/hash/HMSetExecutor.java      |  59 +-
 .../internal/executor/hash/HScanExecutor.java      |  29 +-
 .../redis/internal/executor/hash/HSetExecutor.java |  80 ++-
 .../internal/executor/hash/HSetNXExecutor.java     |  18 +-
 .../internal/executor/hash/HValsExecutor.java      |  33 +-
 .../redis/internal/executor/hash/HashExecutor.java |  64 +-
 .../redis/internal/executor/hll/PFAddExecutor.java |  11 +-
 .../internal/executor/hll/PFCountExecutor.java     |   3 +-
 .../internal/executor/hll/PFMergeExecutor.java     |   6 +-
 .../geode/redis/internal/executor/hll/Varint.java  |   4 +-
 .../internal/executor/list/LIndexExecutor.java     |   9 +-
 .../internal/executor/list/LRangeExecutor.java     |   8 +-
 .../redis/internal/executor/list/LRemExecutor.java |   5 +-
 .../redis/internal/executor/list/LSetExecutor.java |   7 +-
 .../internal/executor/list/LTrimExecutor.java      |   4 +-
 .../redis/internal/executor/list/ListExecutor.java |  22 +-
 .../redis/internal/executor/list/PopExecutor.java  |  12 +-
 .../internal/executor/pubsub/PublishExecutor.java  |   3 +-
 .../redis/internal/executor/set/SAddExecutor.java  |  50 +-
 .../redis/internal/executor/set/SCardExecutor.java |  14 +-
 .../redis/internal/executor/set/SDiffExecutor.java |  12 +-
 .../internal/executor/set/SInterExecutor.java      |  12 +-
 .../internal/executor/set/SIsMemberExecutor.java   |  29 +-
 .../internal/executor/set/SMembersExecutor.java    |  41 +-
 .../redis/internal/executor/set/SMoveExecutor.java |  95 ++-
 .../redis/internal/executor/set/SPopExecutor.java  |  80 ++-
 .../internal/executor/set/SRandMemberExecutor.java | 104 +--
 .../redis/internal/executor/set/SRemExecutor.java  |  41 +-
 .../redis/internal/executor/set/SScanExecutor.java |  27 +-
 .../internal/executor/set/SUnionExecutor.java      |   6 +-
 .../redis/internal/executor/set/SetExecutor.java   |  25 +
 .../redis/internal/executor/set/SetOpExecutor.java |  99 +--
 .../executor/sortedset/GeoAddExecutor.java         |   3 +-
 .../executor/sortedset/GeoRadiusExecutor.java      |   3 +-
 .../executor/sortedset/GeoRadiusParameters.java    |  19 +-
 .../internal/executor/sortedset/ZAddExecutor.java  |   3 +-
 .../internal/executor/sortedset/ZCardExecutor.java |   7 +-
 .../executor/sortedset/ZCountExecutor.java         |  14 +-
 .../executor/sortedset/ZLexCountExecutor.java      |   9 +-
 .../executor/sortedset/ZRangeByLexExecutor.java    |  23 +-
 .../executor/sortedset/ZRangeByScoreExecutor.java  |  28 +-
 .../executor/sortedset/ZRangeExecutor.java         |   9 +-
 .../internal/executor/sortedset/ZRankExecutor.java |   5 +-
 .../internal/executor/sortedset/ZRemExecutor.java  |   6 +-
 .../executor/sortedset/ZRemRangeByLexExecutor.java |  14 +-
 .../sortedset/ZRemRangeByRankExecutor.java         |  14 +-
 .../sortedset/ZRemRangeByScoreExecutor.java        |  17 +-
 .../internal/executor/sortedset/ZScanExecutor.java |   8 +-
 .../internal/executor/string/AppendExecutor.java   |   2 +-
 .../internal/executor/string/BitCountExecutor.java |  20 +-
 .../internal/executor/string/BitOpExecutor.java    |  34 +-
 .../internal/executor/string/BitPosExecutor.java   |  40 +-
 .../internal/executor/string/DecrExecutor.java     |   2 +-
 .../internal/executor/string/GetBitExecutor.java   |   3 +-
 .../internal/executor/string/GetRangeExecutor.java |   4 +-
 .../executor/string/IncrByFloatExecutor.java       |   1 -
 .../internal/executor/string/IncrExecutor.java     |   1 -
 .../internal/executor/string/MGetExecutor.java     |   3 +-
 .../internal/executor/string/SetBitExecutor.java   |   8 +-
 .../internal/executor/string/SetEXExecutor.java    |   3 +-
 .../internal/executor/string/SetExecutor.java      |   6 +-
 .../internal/executor/string/SetNXExecutor.java    |   5 +-
 .../internal/executor/string/SetRangeExecutor.java |   3 +-
 .../internal/executor/string/StrlenExecutor.java   |   6 +-
 .../executor/transactions/ExecExecutor.java        |   7 +-
 .../internal/org/apache/hadoop/fs/GlobPattern.java |   4 +-
 geode-redis/src/performanceTest/aggregator.sh      |  91 +++
 geode-redis/src/performanceTest/benchmark.sh       | 116 +++
 geode-redis/src/performanceTest/shacompare.sh      |  59 ++
 .../geode/redis/internal/CommandJUnitTest.java     |  77 ++
 .../internal/ExecutionHandlerContextJUnitTest.java |  73 ++
 .../geode/redis/internal/PubSubImplJUnitTest.java  |   2 +-
 .../redis/internal/RedisLockServiceJUnitTest.java  | 168 +++++
 .../redis/internal/RegionProviderJUnitTest.java    | 108 +++
 ...ptionsTest.java => SubscriptionsJUnitTest.java} |   2 +-
 .../executor/AbstractExecutorJUnitTest.java        |  61 ++
 ...est.java => AbstractScanExecutorJUnitTest.java} |   2 +-
 .../executor/UnkownExecutorJUnitTest.java}         |  36 +-
 .../executor/hash/HDelExecutorJUnitTest.java}      |  36 +-
 .../executor/set/SetExecutorJUnitTest.java         | 374 ++++++++++
 ...orTest.java => StringSetExecutorJUnitTest.java} |   2 +-
 .../serialization/DataSerializableFixedID.java     |   4 +
 .../serialization/StaticSerialization.java         |   1 +
 .../tcpserver/TcpServerGossipVersionDUnitTest.java |   3 +-
 .../internal/tcpserver/TcpServerJUnitTest.java     |  30 +-
 .../TcpServerProductVersionDUnitTest.java          |  17 +-
 .../internal/tcpserver/AdvancedSocketCreator.java  |  61 ++
 ...torImpl.java => AdvancedSocketCreatorImpl.java} | 148 ++--
 ...SocketCreator.java => ClientSocketCreator.java} |  44 +-
 .../tcpserver/ClientSocketCreatorImpl.java         |  54 ++
 ...ocketCreator.java => ClusterSocketCreator.java} |  50 +-
 .../internal/tcpserver/HostAndPort.java            | 154 ++++
 .../internal/tcpserver/LocatorAddress.java         |  91 ---
 .../tcpserver/ServerSocketCreatorImpl.java         |  96 +++
 .../distributed/internal/tcpserver/TcpClient.java  |  64 +-
 .../distributed/internal/tcpserver/TcpServer.java  |   6 +-
 .../internal/tcpserver/TcpSocketCreator.java       |  38 +-
 .../internal/tcpserver/TcpSocketCreatorImpl.java   | 191 +----
 ...ocatorAddressTest.java => HostAndPortTest.java} |  40 +-
 .../WANHostNameVerificationDistributedTest.java    |  31 +-
 .../internal/locator/wan/LocatorDiscovery.java     |  11 +-
 .../locator/wan/LocatorMembershipListenerImpl.java |   6 +-
 .../locator/wan/LocatorMembershipListenerTest.java |   4 +-
 ...SenderEventRemoteDispatcherIntegrationTest.java |  17 -
 .../DeploymentManagementController.java            |  11 +-
 .../rest/security/RestSecurityConfiguration.java   |  19 +
 .../src/main/webapp/WEB-INF/management-servlet.xml |   2 -
 .../DeploymentManagementControllerTest.java        |  50 ++
 .../commands/ConnectCommandWithSecurityTest.java   |  22 +
 .../support/LoginHandlerInterceptor.java           |  15 +-
 326 files changed, 8605 insertions(+), 3148 deletions(-)
 create mode 100644 geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearDUnitTest.java
 rename geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/HostAddress.java => geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionPersistentClearDUnitTest.java (71%)
 create mode 100644 geode-core/src/integrationTest/java/org/apache/geode/internal/cache/CacheDistributionAdvisorConcurrentTest.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/ClearPRMessage.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/net/SCAdvancedSocketCreator.java
 copy geode-redis/src/integrationTest/java/org/apache/geode/codeAnalysis/AnalyzeRedisSerializablesJUnitTest.java => geode-core/src/main/java/org/apache/geode/internal/net/SCClientSocketCreator.java (59%)
 mode change 100755 => 100644
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/net/SCServerSocketCreator.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/builder/GeodeClusterManagementServiceBuilder.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/CacheDistributionAdvisorTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/ClearPRMessageTest.java
 create mode 100644 geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunctionJUnitTest.java
 create mode 100644 geode-junit/src/integrationTest/java/org/apache/geode/test/junit/rules/serializable/SerializableTemporaryFolderIntegrationTest.java
 create mode 100644 geode-redis/README.md
 rename geode-redis/src/integrationTest/java/org/apache/geode/codeAnalysis/{AnalyzeRedisSerializablesJUnitTest.java => AnalyzeRedisSerializablesIntegrationTest.java} (91%)
 rename geode-redis/src/integrationTest/java/org/apache/geode/redis/{AuthJUnitTest.java => AuthIntegrationTest.java} (99%)
 rename geode-redis/src/integrationTest/java/org/apache/geode/redis/{ConcurrentStartTest.java => ConcurrentStartIntegrationTest.java} (98%)
 rename geode-redis/src/integrationTest/java/org/apache/geode/redis/{GeoCoderTest.java => GeoCoderIntegrationTest.java} (97%)
 rename geode-redis/src/integrationTest/java/org/apache/geode/redis/{GeoJUnitTest.java => GeoIntegrationTest.java} (99%)
 create mode 100755 geode-redis/src/integrationTest/java/org/apache/geode/redis/HashesIntegrationTest.java
 delete mode 100755 geode-redis/src/integrationTest/java/org/apache/geode/redis/HashesJUnitTest.java
 rename geode-redis/src/integrationTest/java/org/apache/geode/redis/{ListsJUnitTest.java => ListsIntegrationTest.java} (96%)
 rename geode-redis/src/integrationTest/java/org/apache/geode/redis/{PubSubTest.java => PubSubIntegrationTest.java} (91%)
 rename geode-redis/src/integrationTest/java/org/apache/geode/redis/{SetCommandNegativeCaseTest.java => SetCommandNegativeCaseIntegrationTest.java} (98%)
 create mode 100755 geode-redis/src/integrationTest/java/org/apache/geode/redis/SetsIntegrationTest.java
 delete mode 100755 geode-redis/src/integrationTest/java/org/apache/geode/redis/SetsJUnitTest.java
 rename geode-redis/src/integrationTest/java/org/apache/geode/redis/{SortedSetsJUnitTest.java => SortedSetsIntegrationTest.java} (99%)
 rename geode-redis/src/integrationTest/java/org/apache/geode/redis/{StringsJunitTest.java => StringsIntegrationTest.java} (99%)
 copy geode-redis/src/{main/java/org/apache/geode/redis/internal/executor/set/SDiffExecutor.java => integrationTest/java/org/apache/geode/redis/mocks/MockBinarySubscriber.java} (56%)
 mode change 100755 => 100644
 copy geode-redis/src/main/java/org/apache/geode/redis/internal/{Extendable.java => AutoCloseableLock.java} (69%)
 create mode 100644 geode-redis/src/main/java/org/apache/geode/redis/internal/RedisLockService.java
 create mode 100644 geode-redis/src/performanceTest/aggregator.sh
 create mode 100644 geode-redis/src/performanceTest/benchmark.sh
 create mode 100644 geode-redis/src/performanceTest/shacompare.sh
 create mode 100644 geode-redis/src/test/java/org/apache/geode/redis/internal/CommandJUnitTest.java
 create mode 100644 geode-redis/src/test/java/org/apache/geode/redis/internal/ExecutionHandlerContextJUnitTest.java
 create mode 100644 geode-redis/src/test/java/org/apache/geode/redis/internal/RedisLockServiceJUnitTest.java
 create mode 100644 geode-redis/src/test/java/org/apache/geode/redis/internal/RegionProviderJUnitTest.java
 rename geode-redis/src/test/java/org/apache/geode/redis/internal/{SubscriptionsTest.java => SubscriptionsJUnitTest.java} (99%)
 create mode 100644 geode-redis/src/test/java/org/apache/geode/redis/internal/executor/AbstractExecutorJUnitTest.java
 rename geode-redis/src/test/java/org/apache/geode/redis/internal/executor/{AbstractScanExecutorTest.java => AbstractScanExecutorJUnitTest.java} (97%)
 copy geode-redis/src/{main/java/org/apache/geode/redis/internal/executor/UnkownExecutor.java => test/java/org/apache/geode/redis/internal/executor/UnkownExecutorJUnitTest.java} (56%)
 mode change 100755 => 100644
 copy geode-redis/src/{main/java/org/apache/geode/redis/internal/executor/UnkownExecutor.java => test/java/org/apache/geode/redis/internal/executor/hash/HDelExecutorJUnitTest.java} (53%)
 mode change 100755 => 100644
 create mode 100644 geode-redis/src/test/java/org/apache/geode/redis/internal/executor/set/SetExecutorJUnitTest.java
 rename geode-redis/src/test/java/org/apache/geode/redis/internal/executor/string/{SetExecutorTest.java => StringSetExecutorJUnitTest.java} (99%)
 create mode 100644 geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/AdvancedSocketCreator.java
 copy geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/{TcpSocketCreatorImpl.java => AdvancedSocketCreatorImpl.java} (62%)
 copy geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/{TcpSocketCreator.java => ClientSocketCreator.java} (54%)
 create mode 100644 geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/ClientSocketCreatorImpl.java
 copy geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/{TcpSocketCreator.java => ClusterSocketCreator.java} (50%)
 create mode 100644 geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/HostAndPort.java
 delete mode 100644 geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/LocatorAddress.java
 create mode 100644 geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/ServerSocketCreatorImpl.java
 rename geode-tcp-server/src/test/java/org/apache/geode/distributed/internal/tcpserver/{LocatorAddressTest.java => HostAndPortTest.java} (56%)
 create mode 100644 geode-web-management/src/test/java/org/apache/geode/management/internal/rest/controllers/DeploymentManagementControllerTest.java


[geode] 03/08: Add the one bucket case

Posted by jc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jchen21 pushed a commit to branch feature/GEODE-7681
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 7b6b8483e3a4698c277db66a0db80634d05ede8a
Author: Jianxia Chen <jc...@apache.org>
AuthorDate: Mon Mar 2 15:40:13 2020 -0800

    Add the one bucket case
    
    Authored-by: Jianxia Chen <jc...@apache.org>
---
 ...PartitionedRegionClearPerformanceDUnitTest.java | 38 ++++++++++++++++++----
 1 file changed, 32 insertions(+), 6 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
index a3eb15d..05d1bf8 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
@@ -41,6 +41,8 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
 
   private String regionName = "testRegion";
 
+  private int numEntries = 100_000;
+
   @Before
   public void setup() throws Exception {
     locator = clusterStartupRule.startLocatorVM(0, 0);
@@ -55,7 +57,6 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
       Cache cache = ClusterStartupRule.getCache();
       cache.createRegionFactory(RegionShortcut.PARTITION).create(regionName);
 
-      int numEntries = 100;
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -83,7 +84,6 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
       cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT).setPartitionAttributes(
           new PartitionAttributesFactory().setRedundantCopies(1).create()).create(regionName);
 
-      int numEntries = 100;
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -111,7 +111,6 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
       cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT).setPartitionAttributes(
           new PartitionAttributesFactory().setRedundantCopies(2).create()).create(regionName);
 
-      int numEntries = 100;
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -138,7 +137,6 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
       Cache cache = ClusterStartupRule.getCache();
       cache.createRegionFactory(RegionShortcut.PARTITION_PERSISTENT).create(regionName);
 
-      int numEntries = 100;
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -168,7 +166,6 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
               new PartitionAttributesFactory().setRedundantCopies(1).create())
           .create(regionName);
 
-      int numEntries = 100;
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -198,7 +195,6 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
               new PartitionAttributesFactory().setRedundantCopies(2).create())
           .create(regionName);
 
-      int numEntries = 100;
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -219,6 +215,36 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
     });
   }
 
+  @Test
+  public void testOneBucketPersistentRedundancyTwo() {
+    server1.invoke(() -> {
+      Cache cache = ClusterStartupRule.getCache();
+      cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT)
+          .setPartitionAttributes(
+              new PartitionAttributesFactory().setTotalNumBuckets(1).setRedundantCopies(2).create())
+          .create(regionName);
+
+      Map<String, String> entries = new HashMap<>();
+      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
+      populateRegion(regionName, entries);
+
+      Region region = ClusterStartupRule.getCache().getRegion(regionName);
+
+      assertThat(region.size()).isEqualTo(numEntries);
+      assertThat(region.getAttributes().getPartitionAttributes().getTotalNumBuckets()).isEqualTo(1);
+      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isTrue();
+      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(2);
+
+      long startTime = System.currentTimeMillis();
+      region.removeAll(entries.keySet()); // should be region.clear();
+      long endTime = System.currentTimeMillis();
+      System.out.println(
+          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
+              + " milliseconds to clear.");
+      assertThat(region.size()).isEqualTo(0);
+    });
+  }
+
   private void populateRegion(String regionName, Map<String, String> entries) {
     Region r = ClusterStartupRule.getCache().getRegion("/" + regionName);
     entries.entrySet().forEach(e -> {


[geode] 02/08: gradlew spotlessApply

Posted by jc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jchen21 pushed a commit to branch feature/GEODE-7681
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 583f6cadffea6803396a8fb63770fa63ef6e0748
Author: Jianxia Chen <jc...@apache.org>
AuthorDate: Thu Feb 27 16:04:37 2020 -0800

    gradlew spotlessApply
    
    Authored-by: Jianxia Chen <jc...@apache.org>
---
 .../internal/cache/PartitionedRegionClearPerformanceDUnitTest.java  | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
index b7caa8b..a3eb15d 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
@@ -165,7 +165,8 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
       Cache cache = ClusterStartupRule.getCache();
       cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT)
           .setPartitionAttributes(
-              new PartitionAttributesFactory().setRedundantCopies(1).create()).create(regionName);
+              new PartitionAttributesFactory().setRedundantCopies(1).create())
+          .create(regionName);
 
       int numEntries = 100;
       Map<String, String> entries = new HashMap<>();
@@ -194,7 +195,8 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
       Cache cache = ClusterStartupRule.getCache();
       cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT)
           .setPartitionAttributes(
-              new PartitionAttributesFactory().setRedundantCopies(2).create()).create(regionName);
+              new PartitionAttributesFactory().setRedundantCopies(2).create())
+          .create(regionName);
 
       int numEntries = 100;
       Map<String, String> entries = new HashMap<>();


[geode] 08/08: Use Region.clear instead of Region.removeAll

Posted by jc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jchen21 pushed a commit to branch feature/GEODE-7681
in repository https://gitbox.apache.org/repos/asf/geode.git

commit f350555fd281b2c1355e29548fa87d62d93326ad
Author: Jianxia Chen <jc...@apache.org>
AuthorDate: Mon Mar 16 13:46:08 2020 -0700

    Use Region.clear instead of Region.removeAll
    
    Authored-by: Jianxia Chen <jc...@apache.org>
---
 .../cache/PartitionedRegionClearPerformanceDUnitTest.java    | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
index f9b0cc1..c659982 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
@@ -99,7 +99,7 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
   }
 
   private void assertRegionSizeOnServer(int size) {
-    server1.invoke(()-> {
+    server1.invoke(() -> {
       Region region = ClusterStartupRule.getCache().getRegion(regionName);
       assertThat(region.size()).isEqualTo(size);
     });
@@ -108,9 +108,11 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
   private void assertRegionAttributesOnServer(int numBuckets, boolean persistent, int redundancy) {
     server1.invoke(() -> {
       Region region = ClusterStartupRule.getCache().getRegion(regionName);
-      assertThat(region.getAttributes().getPartitionAttributes().getTotalNumBuckets()).isEqualTo(numBuckets);
+      assertThat(region.getAttributes().getPartitionAttributes().getTotalNumBuckets())
+          .isEqualTo(numBuckets);
       assertThat(region.getAttributes().getDataPolicy().withPersistence()).isEqualTo(persistent);
-      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(redundancy);
+      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies())
+          .isEqualTo(redundancy);
     });
   }
 
@@ -119,7 +121,7 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
       client.invoke(() -> {
         Region clientRegion = ClusterStartupRule.getClientCache().getRegion(regionName);
         long startTime = System.currentTimeMillis();
-        clientRegion.removeAll(clientRegion.keySet()); // should be clientRegion.clear();
+        clientRegion.clear();
         long endTime = System.currentTimeMillis();
         System.out.println(
             "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
@@ -130,7 +132,7 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
       server1.invoke(() -> {
         Region region = ClusterStartupRule.getCache().getRegion(regionName);
         long startTime = System.currentTimeMillis();
-        region.removeAll(region.keySet()); // should be region.clear();
+        region.clear();
         long endTime = System.currentTimeMillis();
         System.out.println(
             "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)


[geode] 07/08: Initiate clear from both client and server

Posted by jc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jchen21 pushed a commit to branch feature/GEODE-7681
in repository https://gitbox.apache.org/repos/asf/geode.git

commit e16f47b58cd48a87a7c4640e859df852f753e0e7
Author: Jianxia Chen <jc...@apache.org>
AuthorDate: Fri Mar 6 12:35:50 2020 -0800

    Initiate clear from both client and server
    
    Authored-by: Jianxia Chen <jc...@apache.org>
---
 ...PartitionedRegionClearPerformanceDUnitTest.java | 222 +++++++--------------
 1 file changed, 75 insertions(+), 147 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
index 72cc36b..f9b0cc1 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
@@ -18,9 +18,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.Serializable;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Map;
-import java.util.Set;
 import java.util.stream.IntStream;
 
 import junitparams.JUnitParamsRunner;
@@ -28,7 +26,6 @@ import junitparams.Parameters;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.TestName;
 import org.junit.runner.RunWith;
 
 import org.apache.geode.cache.Cache;
@@ -91,38 +88,42 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
   }
 
   private void populateRegion() {
-    server1.invoke(() -> {
-      Region region = ClusterStartupRule.getCache().getRegion("/" + regionName);
+    client.invoke(() -> {
+      Region clientRegion = ClusterStartupRule.getClientCache().getRegion("/" + regionName);
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       entries.entrySet().forEach(e -> {
-        region.put(e.getKey(), e.getValue());
+        clientRegion.put(e.getKey(), e.getValue());
       });
     });
   }
 
-  @Test
-  @Parameters({"true", "false"})
-  public void testNonPersistentNonRedundant(boolean isClient) {
-    createRegionInCluster(RegionShortcut.PARTITION, 113, 0);
-    populateRegion();
+  private void assertRegionSizeOnServer(int size) {
+    server1.invoke(()-> {
+      Region region = ClusterStartupRule.getCache().getRegion(regionName);
+      assertThat(region.size()).isEqualTo(size);
+    });
+  }
+
+  private void assertRegionAttributesOnServer(int numBuckets, boolean persistent, int redundancy) {
     server1.invoke(() -> {
       Region region = ClusterStartupRule.getCache().getRegion(regionName);
-      assertThat(region.size()).isEqualTo(numEntries);
-      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isFalse();
-      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(0);
+      assertThat(region.getAttributes().getPartitionAttributes().getTotalNumBuckets()).isEqualTo(numBuckets);
+      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isEqualTo(persistent);
+      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(redundancy);
     });
+  }
+
+  private void doRegionClear(String methodName, boolean isClient) {
     if (isClient) {
       client.invoke(() -> {
         Region clientRegion = ClusterStartupRule.getClientCache().getRegion(regionName);
         long startTime = System.currentTimeMillis();
-        Set keys = new HashSet<>();
-        IntStream.range(0, numEntries).forEach(i -> keys.add("key-" + i));
-        clientRegion.removeAll(keys); // should be clientRegion.clear();
+        clientRegion.removeAll(clientRegion.keySet()); // should be clientRegion.clear();
         long endTime = System.currentTimeMillis();
         System.out.println(
             "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
-                + " milliseconds to clear. " + " isClient=" + isClient);
+                + " milliseconds to clear. methodName=" + methodName + " isClient=" + isClient);
         assertThat(clientRegion.size()).isEqualTo(0);
       });
     } else {
@@ -133,159 +134,86 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
         long endTime = System.currentTimeMillis();
         System.out.println(
             "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
-                + " milliseconds to clear. " + " isClient=" + isClient);
+                + " milliseconds to clear. methodName=" + methodName + " isClient=" + isClient);
       });
     }
-    server1.invoke(()-> {
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
-      assertThat(region.size()).isEqualTo(0);
-    });
   }
-/*
-  @Test
-  public void testRedundancyOneNonPersistent() {
-    createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT, 113, 1);
-    server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
-      populateRegion(regionName, entries);
-
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
 
-      assertThat(region.size()).isEqualTo(numEntries);
-      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isFalse();
-      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(1);
+  @Test
+  @Parameters({"true", "false"})
+  public void testNonPersistentNonRedundant(boolean isClient) {
+    createRegionInCluster(RegionShortcut.PARTITION, 113, 0);
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(113, false, 0);
+    doRegionClear("testNonPersistentNonRedundant", isClient);
+    assertRegionSizeOnServer(0);
+  }
 
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
-              + " milliseconds to clear.");
-      assertThat(region.size()).isEqualTo(0);
-    });
+  @Test
+  @Parameters({"true", "false"})
+  public void testRedundancyOneNonPersistent(boolean isClient) {
+    createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT, 113, 1);
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(113, false, 1);
+    doRegionClear("testRedundancyOneNonPersistent", isClient);
+    assertRegionSizeOnServer(0);
   }
 
   @Test
-  public void testRedundancyTwoNonPersistent() {
+  @Parameters({"true", "false"})
+  public void testRedundancyTwoNonPersistent(boolean isClient) {
     createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT, 113, 2);
-    server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
-      populateRegion(regionName, entries);
-
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
-
-      assertThat(region.size()).isEqualTo(numEntries);
-      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isFalse();
-      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(2);
-
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
-              + " milliseconds to clear.");
-      assertThat(region.size()).isEqualTo(0);
-    });
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(113, false, 2);
+    doRegionClear("testRedundancyTwoNonPersistent", isClient);
+    assertRegionSizeOnServer(0);
   }
 
   @Test
-  public void testPersistentNonRedundant() {
+  @Parameters({"true", "false"})
+  public void testPersistentNonRedundant(boolean isClient) {
     createRegionInCluster(RegionShortcut.PARTITION_PERSISTENT, 113, 0);
-    server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
-      populateRegion(regionName, entries);
-
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
-
-      assertThat(region.size()).isEqualTo(numEntries);
-      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isTrue();
-      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(0);
-
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
-              + " milliseconds to clear.");
-      assertThat(region.size()).isEqualTo(0);
-    });
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(113, true, 0);
+    doRegionClear("testPersistentNonRedundant", isClient);
+    assertRegionSizeOnServer(0);
   }
 
   @Test
-  public void testPersistentRedundancyOne() {
+  @Parameters({"true", "false"})
+  public void testPersistentRedundancyOne(boolean isClient) {
     createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT, 113, 1);
-    server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
-      populateRegion(regionName, entries);
-
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
-
-      assertThat(region.size()).isEqualTo(numEntries);
-      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isTrue();
-      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(1);
-
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
-              + " milliseconds to clear.");
-      assertThat(region.size()).isEqualTo(0);
-    });
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(113, true, 1);
+    doRegionClear("testPersistentRedundancyOne", isClient);
+    assertRegionSizeOnServer(0);
   }
 
   @Test
-  public void testPersistentRedundancyTwo() {
+  @Parameters({"true", "false"})
+  public void testPersistentRedundancyTwo(boolean isClient) {
     createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT, 113, 2);
-    server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
-      populateRegion(regionName, entries);
-
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
-
-      assertThat(region.size()).isEqualTo(numEntries);
-      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isTrue();
-      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(2);
-
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
-              + " milliseconds to clear.");
-      assertThat(region.size()).isEqualTo(0);
-    });
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(113, true, 2);
+    doRegionClear("testPersistentRedundancyTwo", isClient);
+    assertRegionSizeOnServer(0);
   }
 
   @Test
-  public void testOneBucketPersistentRedundancyTwo() {
+  @Parameters({"true", "false"})
+  public void testOneBucketPersistentRedundancyTwo(boolean isClient) {
     createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT, 1, 2);
-
-    server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
-      populateRegion(regionName, entries);
-
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
-
-      assertThat(region.size()).isEqualTo(numEntries);
-      assertThat(region.getAttributes().getPartitionAttributes().getTotalNumBuckets()).isEqualTo(1);
-      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isTrue();
-      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(2);
-
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
-              + " milliseconds to clear.");
-      assertThat(region.size()).isEqualTo(0);
-    });
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(1, true, 2);
+    doRegionClear("testOneBucketPersistentRedundancyTwo", isClient);
+    assertRegionSizeOnServer(0);
   }
-*/
+
 }


[geode] 06/08: WIP

Posted by jc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jchen21 pushed a commit to branch feature/GEODE-7681
in repository https://gitbox.apache.org/repos/asf/geode.git

commit f1a210fd5820a0dbf5a268f44199784665483383
Author: Jianxia Chen <jc...@apache.org>
AuthorDate: Thu Mar 5 18:15:00 2020 -0800

    WIP
    
    Authored-by: Jianxia Chen <jc...@apache.org>
---
 ...PartitionedRegionClearPerformanceDUnitTest.java | 82 ++++++++++++++++------
 1 file changed, 62 insertions(+), 20 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
index 72718a7..72cc36b 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
@@ -18,27 +18,39 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.Serializable;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
 import java.util.stream.IntStream;
 
+import junitparams.JUnitParamsRunner;
+import junitparams.Parameters;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TestName;
+import org.junit.runner.RunWith;
 
 import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.PartitionAttributesFactory;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.RegionShortcut;
+import org.apache.geode.cache.client.ClientCache;
+import org.apache.geode.cache.client.ClientRegionShortcut;
+import org.apache.geode.test.dunit.rules.ClientVM;
 import org.apache.geode.test.dunit.rules.ClusterStartupRule;
 import org.apache.geode.test.dunit.rules.MemberVM;
 
+@RunWith(JUnitParamsRunner.class)
 public class PartitionedRegionClearPerformanceDUnitTest implements Serializable {
 
   @Rule
-  public ClusterStartupRule clusterStartupRule = new ClusterStartupRule();
+  public ClusterStartupRule clusterStartupRule = new ClusterStartupRule(5);
 
   private MemberVM locator, server1, server2, server3;
 
+  private ClientVM client;
+
   private String regionName = "testRegion";
 
   private int numEntries = 100_000;
@@ -49,6 +61,7 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
     server1 = clusterStartupRule.startServerVM(1, locator.getPort());
     server2 = clusterStartupRule.startServerVM(2, locator.getPort());
     server3 = clusterStartupRule.startServerVM(3, locator.getPort());
+    client = clusterStartupRule.startClientVM(4, c -> c.withLocatorConnection(locator.getPort()));
   }
 
   private void createRegionOnServer(MemberVM server, RegionShortcut type, int numBuckets,
@@ -63,43 +76,72 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
     });
   }
 
+  private void createRegionOnClient(ClientRegionShortcut type) {
+    client.invoke(() -> {
+      ClientCache clientCache = ClusterStartupRule.getClientCache();
+      clientCache.createClientRegionFactory(type).create(regionName);
+    });
+  }
+
   private void createRegionInCluster(RegionShortcut type, int numBuckets, int redundancy) {
     createRegionOnServer(server1, type, numBuckets, redundancy);
     createRegionOnServer(server2, type, numBuckets, redundancy);
     createRegionOnServer(server3, type, numBuckets, redundancy);
+    createRegionOnClient(ClientRegionShortcut.CACHING_PROXY);
   }
 
-  private void populateRegion(String regionName, Map<String, String> entries) {
-    Region r = ClusterStartupRule.getCache().getRegion("/" + regionName);
-    entries.entrySet().forEach(e -> {
-      r.put(e.getKey(), e.getValue());
+  private void populateRegion() {
+    server1.invoke(() -> {
+      Region region = ClusterStartupRule.getCache().getRegion("/" + regionName);
+      Map<String, String> entries = new HashMap<>();
+      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
+      entries.entrySet().forEach(e -> {
+        region.put(e.getKey(), e.getValue());
+      });
     });
   }
 
   @Test
-  public void testNonPersistentNonRedundant() {
+  @Parameters({"true", "false"})
+  public void testNonPersistentNonRedundant(boolean isClient) {
     createRegionInCluster(RegionShortcut.PARTITION, 113, 0);
+    populateRegion();
     server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
-      populateRegion(regionName, entries);
-
       Region region = ClusterStartupRule.getCache().getRegion(regionName);
-
       assertThat(region.size()).isEqualTo(numEntries);
       assertThat(region.getAttributes().getDataPolicy().withPersistence()).isFalse();
       assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(0);
-
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
-              + " milliseconds to clear.");
+    });
+    if (isClient) {
+      client.invoke(() -> {
+        Region clientRegion = ClusterStartupRule.getClientCache().getRegion(regionName);
+        long startTime = System.currentTimeMillis();
+        Set keys = new HashSet<>();
+        IntStream.range(0, numEntries).forEach(i -> keys.add("key-" + i));
+        clientRegion.removeAll(keys); // should be clientRegion.clear();
+        long endTime = System.currentTimeMillis();
+        System.out.println(
+            "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
+                + " milliseconds to clear. " + " isClient=" + isClient);
+        assertThat(clientRegion.size()).isEqualTo(0);
+      });
+    } else {
+      server1.invoke(() -> {
+        Region region = ClusterStartupRule.getCache().getRegion(regionName);
+        long startTime = System.currentTimeMillis();
+        region.removeAll(region.keySet()); // should be region.clear();
+        long endTime = System.currentTimeMillis();
+        System.out.println(
+            "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
+                + " milliseconds to clear. " + " isClient=" + isClient);
+      });
+    }
+    server1.invoke(()-> {
+      Region region = ClusterStartupRule.getCache().getRegion(regionName);
       assertThat(region.size()).isEqualTo(0);
     });
   }
-
+/*
   @Test
   public void testRedundancyOneNonPersistent() {
     createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT, 113, 1);
@@ -245,5 +287,5 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
       assertThat(region.size()).isEqualTo(0);
     });
   }
-
+*/
 }


[geode] 05/08: spotlessApply

Posted by jc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jchen21 pushed a commit to branch feature/GEODE-7681
in repository https://gitbox.apache.org/repos/asf/geode.git

commit ba49218bbb0beeb59d90e5332cacbd4b8314f595
Author: Jianxia Chen <jc...@apache.org>
AuthorDate: Thu Mar 5 17:02:47 2020 -0800

    spotlessApply
    
    Authored-by: Jianxia Chen <jc...@apache.org>
---
 .../internal/cache/PartitionedRegionClearPerformanceDUnitTest.java  | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
index 5e33a38..72718a7 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
@@ -51,12 +51,14 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
     server3 = clusterStartupRule.startServerVM(3, locator.getPort());
   }
 
-  private void createRegionOnServer(MemberVM server, RegionShortcut type, int numBuckets, int redundancy) {
+  private void createRegionOnServer(MemberVM server, RegionShortcut type, int numBuckets,
+      int redundancy) {
     server.invoke(() -> {
       Cache cache = ClusterStartupRule.getCache();
       cache.createRegionFactory(type)
           .setPartitionAttributes(
-              new PartitionAttributesFactory().setTotalNumBuckets(numBuckets).setRedundantCopies(redundancy).create())
+              new PartitionAttributesFactory().setTotalNumBuckets(numBuckets)
+                  .setRedundantCopies(redundancy).create())
           .create(regionName);
     });
   }


[geode] 04/08: Create partitioned region on all servers

Posted by jc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jchen21 pushed a commit to branch feature/GEODE-7681
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 9bedf5d4970dd89d0dfea694d1339904520e570a
Author: Jianxia Chen <jc...@apache.org>
AuthorDate: Thu Mar 5 16:26:43 2020 -0800

    Create partitioned region on all servers
    
    Authored-by: Jianxia Chen <jc...@apache.org>
---
 ...PartitionedRegionClearPerformanceDUnitTest.java | 75 ++++++++++------------
 1 file changed, 34 insertions(+), 41 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
index 05d1bf8..5e33a38 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
@@ -37,7 +37,7 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
   @Rule
   public ClusterStartupRule clusterStartupRule = new ClusterStartupRule();
 
-  private MemberVM locator, server1;
+  private MemberVM locator, server1, server2, server3;
 
   private String regionName = "testRegion";
 
@@ -47,16 +47,37 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
   public void setup() throws Exception {
     locator = clusterStartupRule.startLocatorVM(0, 0);
     server1 = clusterStartupRule.startServerVM(1, locator.getPort());
-    clusterStartupRule.startServerVM(2, locator.getPort());
-    clusterStartupRule.startServerVM(3, locator.getPort());
+    server2 = clusterStartupRule.startServerVM(2, locator.getPort());
+    server3 = clusterStartupRule.startServerVM(3, locator.getPort());
+  }
+
+  private void createRegionOnServer(MemberVM server, RegionShortcut type, int numBuckets, int redundancy) {
+    server.invoke(() -> {
+      Cache cache = ClusterStartupRule.getCache();
+      cache.createRegionFactory(type)
+          .setPartitionAttributes(
+              new PartitionAttributesFactory().setTotalNumBuckets(numBuckets).setRedundantCopies(redundancy).create())
+          .create(regionName);
+    });
+  }
+
+  private void createRegionInCluster(RegionShortcut type, int numBuckets, int redundancy) {
+    createRegionOnServer(server1, type, numBuckets, redundancy);
+    createRegionOnServer(server2, type, numBuckets, redundancy);
+    createRegionOnServer(server3, type, numBuckets, redundancy);
+  }
+
+  private void populateRegion(String regionName, Map<String, String> entries) {
+    Region r = ClusterStartupRule.getCache().getRegion("/" + regionName);
+    entries.entrySet().forEach(e -> {
+      r.put(e.getKey(), e.getValue());
+    });
   }
 
   @Test
   public void testNonPersistentNonRedundant() {
+    createRegionInCluster(RegionShortcut.PARTITION, 113, 0);
     server1.invoke(() -> {
-      Cache cache = ClusterStartupRule.getCache();
-      cache.createRegionFactory(RegionShortcut.PARTITION).create(regionName);
-
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -79,11 +100,8 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
 
   @Test
   public void testRedundancyOneNonPersistent() {
+    createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT, 113, 1);
     server1.invoke(() -> {
-      Cache cache = ClusterStartupRule.getCache();
-      cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT).setPartitionAttributes(
-          new PartitionAttributesFactory().setRedundantCopies(1).create()).create(regionName);
-
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -106,11 +124,8 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
 
   @Test
   public void testRedundancyTwoNonPersistent() {
+    createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT, 113, 2);
     server1.invoke(() -> {
-      Cache cache = ClusterStartupRule.getCache();
-      cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT).setPartitionAttributes(
-          new PartitionAttributesFactory().setRedundantCopies(2).create()).create(regionName);
-
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -133,10 +148,8 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
 
   @Test
   public void testPersistentNonRedundant() {
+    createRegionInCluster(RegionShortcut.PARTITION_PERSISTENT, 113, 0);
     server1.invoke(() -> {
-      Cache cache = ClusterStartupRule.getCache();
-      cache.createRegionFactory(RegionShortcut.PARTITION_PERSISTENT).create(regionName);
-
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -159,13 +172,8 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
 
   @Test
   public void testPersistentRedundancyOne() {
+    createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT, 113, 1);
     server1.invoke(() -> {
-      Cache cache = ClusterStartupRule.getCache();
-      cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT)
-          .setPartitionAttributes(
-              new PartitionAttributesFactory().setRedundantCopies(1).create())
-          .create(regionName);
-
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -188,13 +196,8 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
 
   @Test
   public void testPersistentRedundancyTwo() {
+    createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT, 113, 2);
     server1.invoke(() -> {
-      Cache cache = ClusterStartupRule.getCache();
-      cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT)
-          .setPartitionAttributes(
-              new PartitionAttributesFactory().setRedundantCopies(2).create())
-          .create(regionName);
-
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -217,13 +220,9 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
 
   @Test
   public void testOneBucketPersistentRedundancyTwo() {
-    server1.invoke(() -> {
-      Cache cache = ClusterStartupRule.getCache();
-      cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT)
-          .setPartitionAttributes(
-              new PartitionAttributesFactory().setTotalNumBuckets(1).setRedundantCopies(2).create())
-          .create(regionName);
+    createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT, 1, 2);
 
+    server1.invoke(() -> {
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
       populateRegion(regionName, entries);
@@ -245,10 +244,4 @@ public class PartitionedRegionClearPerformanceDUnitTest implements Serializable
     });
   }
 
-  private void populateRegion(String regionName, Map<String, String> entries) {
-    Region r = ClusterStartupRule.getCache().getRegion("/" + regionName);
-    entries.entrySet().forEach(e -> {
-      r.put(e.getKey(), e.getValue());
-    });
-  }
 }


[geode] 01/08: GEODE-7681: Initial draft of performance dunit

Posted by jc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jchen21 pushed a commit to branch feature/GEODE-7681
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 1263b78133754a6be6136165e86fd1245d8e9524
Author: Jianxia Chen <jc...@apache.org>
AuthorDate: Thu Feb 27 15:57:39 2020 -0800

    GEODE-7681: Initial draft of performance dunit
    
    Authored-by: Jianxia Chen <jc...@apache.org>
---
 ...PartitionedRegionClearPerformanceDUnitTest.java | 226 +++++++++++++++++++++
 1 file changed, 226 insertions(+)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
new file mode 100644
index 0000000..b7caa8b
--- /dev/null
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
@@ -0,0 +1,226 @@
+/*
+ * 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.cache;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.IntStream;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.geode.cache.Cache;
+import org.apache.geode.cache.PartitionAttributesFactory;
+import org.apache.geode.cache.Region;
+import org.apache.geode.cache.RegionShortcut;
+import org.apache.geode.test.dunit.rules.ClusterStartupRule;
+import org.apache.geode.test.dunit.rules.MemberVM;
+
+public class PartitionedRegionClearPerformanceDUnitTest implements Serializable {
+
+  @Rule
+  public ClusterStartupRule clusterStartupRule = new ClusterStartupRule();
+
+  private MemberVM locator, server1;
+
+  private String regionName = "testRegion";
+
+  @Before
+  public void setup() throws Exception {
+    locator = clusterStartupRule.startLocatorVM(0, 0);
+    server1 = clusterStartupRule.startServerVM(1, locator.getPort());
+    clusterStartupRule.startServerVM(2, locator.getPort());
+    clusterStartupRule.startServerVM(3, locator.getPort());
+  }
+
+  @Test
+  public void testNonPersistentNonRedundant() {
+    server1.invoke(() -> {
+      Cache cache = ClusterStartupRule.getCache();
+      cache.createRegionFactory(RegionShortcut.PARTITION).create(regionName);
+
+      int numEntries = 100;
+      Map<String, String> entries = new HashMap<>();
+      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
+      populateRegion(regionName, entries);
+
+      Region region = ClusterStartupRule.getCache().getRegion(regionName);
+
+      assertThat(region.size()).isEqualTo(numEntries);
+      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isFalse();
+      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(0);
+
+      long startTime = System.currentTimeMillis();
+      region.removeAll(entries.keySet()); // should be region.clear();
+      long endTime = System.currentTimeMillis();
+      System.out.println(
+          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
+              + " milliseconds to clear.");
+      assertThat(region.size()).isEqualTo(0);
+    });
+  }
+
+  @Test
+  public void testRedundancyOneNonPersistent() {
+    server1.invoke(() -> {
+      Cache cache = ClusterStartupRule.getCache();
+      cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT).setPartitionAttributes(
+          new PartitionAttributesFactory().setRedundantCopies(1).create()).create(regionName);
+
+      int numEntries = 100;
+      Map<String, String> entries = new HashMap<>();
+      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
+      populateRegion(regionName, entries);
+
+      Region region = ClusterStartupRule.getCache().getRegion(regionName);
+
+      assertThat(region.size()).isEqualTo(numEntries);
+      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isFalse();
+      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(1);
+
+      long startTime = System.currentTimeMillis();
+      region.removeAll(entries.keySet()); // should be region.clear();
+      long endTime = System.currentTimeMillis();
+      System.out.println(
+          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
+              + " milliseconds to clear.");
+      assertThat(region.size()).isEqualTo(0);
+    });
+  }
+
+  @Test
+  public void testRedundancyTwoNonPersistent() {
+    server1.invoke(() -> {
+      Cache cache = ClusterStartupRule.getCache();
+      cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT).setPartitionAttributes(
+          new PartitionAttributesFactory().setRedundantCopies(2).create()).create(regionName);
+
+      int numEntries = 100;
+      Map<String, String> entries = new HashMap<>();
+      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
+      populateRegion(regionName, entries);
+
+      Region region = ClusterStartupRule.getCache().getRegion(regionName);
+
+      assertThat(region.size()).isEqualTo(numEntries);
+      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isFalse();
+      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(2);
+
+      long startTime = System.currentTimeMillis();
+      region.removeAll(entries.keySet()); // should be region.clear();
+      long endTime = System.currentTimeMillis();
+      System.out.println(
+          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
+              + " milliseconds to clear.");
+      assertThat(region.size()).isEqualTo(0);
+    });
+  }
+
+  @Test
+  public void testPersistentNonRedundant() {
+    server1.invoke(() -> {
+      Cache cache = ClusterStartupRule.getCache();
+      cache.createRegionFactory(RegionShortcut.PARTITION_PERSISTENT).create(regionName);
+
+      int numEntries = 100;
+      Map<String, String> entries = new HashMap<>();
+      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
+      populateRegion(regionName, entries);
+
+      Region region = ClusterStartupRule.getCache().getRegion(regionName);
+
+      assertThat(region.size()).isEqualTo(numEntries);
+      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isTrue();
+      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(0);
+
+      long startTime = System.currentTimeMillis();
+      region.removeAll(entries.keySet()); // should be region.clear();
+      long endTime = System.currentTimeMillis();
+      System.out.println(
+          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
+              + " milliseconds to clear.");
+      assertThat(region.size()).isEqualTo(0);
+    });
+  }
+
+  @Test
+  public void testPersistentRedundancyOne() {
+    server1.invoke(() -> {
+      Cache cache = ClusterStartupRule.getCache();
+      cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT)
+          .setPartitionAttributes(
+              new PartitionAttributesFactory().setRedundantCopies(1).create()).create(regionName);
+
+      int numEntries = 100;
+      Map<String, String> entries = new HashMap<>();
+      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
+      populateRegion(regionName, entries);
+
+      Region region = ClusterStartupRule.getCache().getRegion(regionName);
+
+      assertThat(region.size()).isEqualTo(numEntries);
+      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isTrue();
+      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(1);
+
+      long startTime = System.currentTimeMillis();
+      region.removeAll(entries.keySet()); // should be region.clear();
+      long endTime = System.currentTimeMillis();
+      System.out.println(
+          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
+              + " milliseconds to clear.");
+      assertThat(region.size()).isEqualTo(0);
+    });
+  }
+
+  @Test
+  public void testPersistentRedundancyTwo() {
+    server1.invoke(() -> {
+      Cache cache = ClusterStartupRule.getCache();
+      cache.createRegionFactory(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT)
+          .setPartitionAttributes(
+              new PartitionAttributesFactory().setRedundantCopies(2).create()).create(regionName);
+
+      int numEntries = 100;
+      Map<String, String> entries = new HashMap<>();
+      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, "value-" + i));
+      populateRegion(regionName, entries);
+
+      Region region = ClusterStartupRule.getCache().getRegion(regionName);
+
+      assertThat(region.size()).isEqualTo(numEntries);
+      assertThat(region.getAttributes().getDataPolicy().withPersistence()).isTrue();
+      assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(2);
+
+      long startTime = System.currentTimeMillis();
+      region.removeAll(entries.keySet()); // should be region.clear();
+      long endTime = System.currentTimeMillis();
+      System.out.println(
+          "Partitioned region with " + numEntries + " entries takes " + (endTime - startTime)
+              + " milliseconds to clear.");
+      assertThat(region.size()).isEqualTo(0);
+    });
+  }
+
+  private void populateRegion(String regionName, Map<String, String> entries) {
+    Region r = ClusterStartupRule.getCache().getRegion("/" + regionName);
+    entries.entrySet().forEach(e -> {
+      r.put(e.getKey(), e.getValue());
+    });
+  }
+}