[jira] [Created] (RATIS-22) Add Builder for RaftClientRequestSender
Tsz Wo Nicholas Sze created RATIS-22: Summary: Add Builder for RaftClientRequestSender Key: RATIS-22 URL: https://issues.apache.org/jira/browse/RATIS-22 Project: Ratis Issue Type: Sub-task Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze RaftClientRequestSender should provide a Builder to build objects from implementation subclasses. The idea is similar to RaftServerRpc.Builder. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-22) Add Builder for RaftClientRequestSender
[ https://issues.apache.org/jira/browse/RATIS-22?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-22: - Attachment: r22_20170216.patch r22_20170216.patch: adds RaftClientRequestSender.Builder and the subclass implementations. > Add Builder for RaftClientRequestSender > --- > > Key: RATIS-22 > URL: https://issues.apache.org/jira/browse/RATIS-22 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r22_20170216.patch > > > RaftClientRequestSender should provide a Builder to build objects from > implementation subclasses. The idea is similar to RaftServerRpc.Builder. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-13) Add global unique ID for Raft Client
[ https://issues.apache.org/jira/browse/RATIS-13?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15870859#comment-15870859 ] Tsz Wo Nicholas Sze commented on RATIS-13: -- - The CodeInjectionForTesting changes in GRpcLogAppender and RaftServerImpl should be reverted. - We should not remove the following javadoc in RaftClient {code} -/** Set {@link RaftClient} ID. */ -public Builder setClientId(String clientId) { +public Builder setClientId(ClientId clientId) {code} +1 Patch looks good other than that. > Add global unique ID for Raft Client > > > Key: RATIS-13 > URL: https://issues.apache.org/jira/browse/RATIS-13 > Project: Ratis > Issue Type: Sub-task >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: RATIS-13.000.patch, RATIS-13.001.patch > > > Similar idea as HADOOP-9688. But since we need to support various RPC > engines, the client id is not added in the RPC layer but in the raft protocol > layer. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-21) Add RpcType and ServerFactory
[ https://issues.apache.org/jira/browse/RATIS-21?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-21: - Attachment: r21_20170216.patch r21_20170216.patch: sync'ed with trunk and some minor changes. > Add RpcType and ServerFactory > - > > Key: RATIS-21 > URL: https://issues.apache.org/jira/browse/RATIS-21 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r21_20170215.patch, r21_20170216.patch > > > Add an RpcType enum so that it can identify rpc implementations such as > NETTY, GRPC, etc. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-24) Move out the Hadoop RPC config keys from RaftServerConfigKeys
[ https://issues.apache.org/jira/browse/RATIS-24?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-24: - Attachment: r24_20170217.patch r24_20170217.patch: moves the hadoop conf to a new class. > Move out the Hadoop RPC config keys from RaftServerConfigKeys > - > > Key: RATIS-24 > URL: https://issues.apache.org/jira/browse/RATIS-24 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r24_20170217.patch > > > There are a few Hadoop Rpc specific config keys in RaftServerConfigKeys. We > should move them to the ratis-hadoop module. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-19) Include clientId and callId in log entries
[ https://issues.apache.org/jira/browse/RATIS-19?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15881295#comment-15881295 ] Tsz Wo Nicholas Sze commented on RATIS-19: -- Why not naming callId as seqNum? Or renaming seqNum as callIds? +1 the patch looks good other than the questions above. > Include clientId and callId in log entries > -- > > Key: RATIS-19 > URL: https://issues.apache.org/jira/browse/RATIS-19 > Project: Ratis > Issue Type: Sub-task >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: RATIS-19.000.patch > > > We should include clientId and callId (which are used as key for retry cache) > in raft log entries and use them for retry cache reconstruction in raft peers. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-30) Provide a way to pass parameters to rpc implementations
Tsz Wo Nicholas Sze created RATIS-30: Summary: Provide a way to pass parameters to rpc implementations Key: RATIS-30 URL: https://issues.apache.org/jira/browse/RATIS-30 Project: Ratis Issue Type: Sub-task Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze In this JIRA, we address the following comment from [~jingzhao] in RATIS-28. {quote} We can consider use some other way for library users to pass extra configuration objects for their RPC engine (e.g., Hadoop Configuration) into the RPC factory. In this way we can get a neater API for RPC creation and avoid using an lazy initialization supplier in RaftServerImpl. {quote} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-28) Create RaftServerRpc using ServerFactory
[ https://issues.apache.org/jira/browse/RATIS-28?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15883807#comment-15883807 ] Tsz Wo Nicholas Sze commented on RATIS-28: -- > 1. RaftConfigKeys#Rpc can be an interface That is a good point. I will also change NettyConfigKeys.Server to interface. For #2 and #3, I will create JIRAs to follow up on them. Thanks a lot! > Create RaftServerRpc using ServerFactory > > > Key: RATIS-28 > URL: https://issues.apache.org/jira/browse/RATIS-28 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r28_20170222.patch, r28_20170223b.patch, > r28_20170223.patch, r28_20170224.patch > > > In order to support pluggable rpc, user is supposed to first choose an rpc > implementation to create a RaftServerRpc rpc. Then create a RaftServer > server. Finally, call server.setServerRpc(rpc) to connect these two objects. > In this JIRA, we add a RpcType property and use it to initialize RaftServer > and then automatically create RaftServerRpc from the RpcType. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (RATIS-28) Create RaftServerRpc using ServerFactory
[ https://issues.apache.org/jira/browse/RATIS-28?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze resolved RATIS-28. -- Resolution: Fixed Fix Version/s: 0.1 I have committed this. > Create RaftServerRpc using ServerFactory > > > Key: RATIS-28 > URL: https://issues.apache.org/jira/browse/RATIS-28 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Fix For: 0.1 > > Attachments: r28_20170222.patch, r28_20170223b.patch, > r28_20170223.patch, r28_20170224.patch > > > In order to support pluggable rpc, user is supposed to first choose an rpc > implementation to create a RaftServerRpc rpc. Then create a RaftServer > server. Finally, call server.setServerRpc(rpc) to connect these two objects. > In this JIRA, we add a RpcType property and use it to initialize RaftServer > and then automatically create RaftServerRpc from the RpcType. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-28) Create RaftServerRpc using ServerFactory
Tsz Wo Nicholas Sze created RATIS-28: Summary: Create RaftServerRpc using ServerFactory Key: RATIS-28 URL: https://issues.apache.org/jira/browse/RATIS-28 Project: Ratis Issue Type: Sub-task Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze In order to support pluggable rpc, user is supposed to first choose an rpc implementation to create a RaftServerRpc rpc. Then create a RaftServer server. Finally, call server.setServerRpc(rpc) to connect these two objects. In this JIRA, we add a RpcType property and use it to initialize RaftServer and then automatically create RaftServerRpc from the RpcType. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-27) Use factory methods to create MiniRaftCluster
[ https://issues.apache.org/jira/browse/RATIS-27?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-27: - Attachment: r27_20170222.patch r27_20170222.patch: 1st patch. > Use factory methods to create MiniRaftCluster > - > > Key: RATIS-27 > URL: https://issues.apache.org/jira/browse/RATIS-27 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze >Priority: Minor > Attachments: r27_20170222.patch > > > Enforce all the tests to use the factory methods to create MiniRaftCluster so > that we may setup RaftProperties in centralized locations. > We also change the HadoopRpcService to not throwing IOException. Then, > MiniRaftCluster creation also no longer needs to throw IOException. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-20) Define APIs for choosing RPC implementations
Tsz Wo Nicholas Sze created RATIS-20: Summary: Define APIs for choosing RPC implementations Key: RATIS-20 URL: https://issues.apache.org/jira/browse/RATIS-20 Project: Ratis Issue Type: New Feature Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze Currently, user has to know some RPC implementation details in order to use it correctly. For example, for grpc, users has to set the following RaftProperties. {code} properties.setClass(RaftServerConfigKeys.RAFT_SERVER_LOG_APPENDER_FACTORY_CLASS_KEY, PipelinedLogAppenderFactory.class, LogAppenderFactory.class); {code} Also, users need to know the actual implementations of various interfaces. such as RaftServerRpc and RaftClientRequestSender. For grpc, the implementations are RaftGRpcService and RaftClientSenderWithGrpc. We should provide a simple API to configure the RPC and hide the implementation details. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-13) Add global unique ID for Raft Client
[ https://issues.apache.org/jira/browse/RATIS-13?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15868893#comment-15868893 ] Tsz Wo Nicholas Sze commented on RATIS-13: -- The patch looks good. Some minor comments: # Use ByteBuffer.getLong in ClientId(byte[] data). # In RaftPeerId, use StandardCharsets.UTF_8. # In RaftClient, we should keep Builder.setClientId(..) and remove newBuilder(ClientId clientId). In more details, Builder.clientId should not be final. Initialize it with null. User may set it by setClientId(..). In build(), generate a random id if it is null. # Change RaftUtils.next to generic and replace "string" with "element" in the javadoc, i.e. {code} /** * @return the next element in the iteration right after the given element; * if the given element is not in the iteration, return the first element. */ public static T next(final T given, final Iterable iteration) { Preconditions.checkNotNull(given); Preconditions.checkNotNull(iteration); final Iterator i = iteration.iterator(); Preconditions.checkArgument(i.hasNext()); final T first = i.next(); for(T current = first; i.hasNext(); ) { final T next = i.next(); if (given.equals(current)) { return next; } current = next; } return first; } {code} # Remove the RaftPeerId import from both RaftUtils and StringUtils. # In CodeInjectionForTesting, change all the localId/remoteId parameters to Object so that we don't need to call toString(), which is expensive for UUID. > Add global unique ID for Raft Client > > > Key: RATIS-13 > URL: https://issues.apache.org/jira/browse/RATIS-13 > Project: Ratis > Issue Type: Sub-task >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: RATIS-13.000.patch > > > Similar idea as HADOOP-9688. But since we need to support various RPC > engines, the client id is not added in the RPC layer but in the raft protocol > layer. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-31) Support customized RPC types
[ https://issues.apache.org/jira/browse/RATIS-31?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-31: - Attachment: (was: r31_20170227c.patch) > Support customized RPC types > > > Key: RATIS-31 > URL: https://issues.apache.org/jira/browse/RATIS-31 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r31_20170227b.patch, r31_20170227.patch > > > This JIRA is to address [~jingzhao] comment in RATIS-28 > {quote} > Maybe we should consider using RpcType as an internal util stuff instead of > exposing it in public interfaces, considering most library users will have to > integrate the Ratis library with their own RPC engine. > {quote} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-31) Support customized RPC types
Tsz Wo Nicholas Sze created RATIS-31: Summary: Support customized RPC types Key: RATIS-31 URL: https://issues.apache.org/jira/browse/RATIS-31 Project: Ratis Issue Type: Sub-task Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze This JIRA is to address [~jingzhao] comment in RATIS-28 {quote} Maybe we should consider using RpcType as an internal util stuff instead of exposing it in public interfaces, considering most library users will have to integrate the Ratis library with their own RPC engine. {quote} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-49) Add a clean profile to remove shaded source
[ https://issues.apache.org/jira/browse/RATIS-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-49: - Attachment: r49_20170323.patch r49_20170323.patch: adds a clean-shade profile and updates the doc. > Add a clean profile to remove shaded source > --- > > Key: RATIS-49 > URL: https://issues.apache.org/jira/browse/RATIS-49 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r49_20170323.patch > > > There is no way to remove the shaded source using mvn. We have to remove > them manually by > - rm -rf ratis-proto-shaded/src/main/java > - rm -rf ratis-hadoop-shaded/src/main/java -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-49) Add a clean profile to remove shaded source
[ https://issues.apache.org/jira/browse/RATIS-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-49: - Attachment: r49_20170323b.patch r49_20170323b.patch: more changes in BUILDING.md > Add a clean profile to remove shaded source > --- > > Key: RATIS-49 > URL: https://issues.apache.org/jira/browse/RATIS-49 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r49_20170323b.patch, r49_20170323.patch > > > There is no way to remove the shaded source using mvn. We have to remove > them manually by > - rm -rf ratis-proto-shaded/src/main/java > - rm -rf ratis-hadoop-shaded/src/main/java -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-48) Test "RaftOutputStream" based on gRPC
[ https://issues.apache.org/jira/browse/RATIS-48?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15935010#comment-15935010 ] Tsz Wo Nicholas Sze commented on RATIS-48: -- Hi [~kaiyangzhang], thanks for filing the JIRA. Do you means that you have already done the test and the result is 30MB/s on average? Could you give more details on your test? > Test "RaftOutputStream" based on gRPC > - > > Key: RATIS-48 > URL: https://issues.apache.org/jira/browse/RATIS-48 > Project: Ratis > Issue Type: Test > Environment: 1、SSD > 2、10 Gigabit network card > 3、three raft node >Reporter: kaiyangzhang >Priority: Minor > > avg:30MB/s -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (RATIS-20) Define APIs for choosing RPC implementations
[ https://issues.apache.org/jira/browse/RATIS-20?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze resolved RATIS-20. -- Resolution: Fixed Fix Version/s: 0.1 All subtasks are done. Resolving this. > Define APIs for choosing RPC implementations > > > Key: RATIS-20 > URL: https://issues.apache.org/jira/browse/RATIS-20 > Project: Ratis > Issue Type: New Feature >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Fix For: 0.1 > > > Currently, user has to know some RPC implementation details in order to use > it correctly. For example, for grpc, users has to set the following > RaftProperties. > {code} > properties.setClass(RaftServerConfigKeys.RAFT_SERVER_LOG_APPENDER_FACTORY_CLASS_KEY, > PipelinedLogAppenderFactory.class, LogAppenderFactory.class); > {code} > Also, users need to know the actual implementations of various interfaces. > such as RaftServerRpc and RaftClientRequestSender. For grpc, the > implementations are RaftGRpcService and RaftClientSenderWithGrpc. > We should provide a simple API to configure the RPC and hide the > implementation details. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-57) Fix pom.xml for mvn release:prepare
[ https://issues.apache.org/jira/browse/RATIS-57?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-57: - Attachment: r57_20170330.patch r57_20170330.patch: 1st patch. > Fix pom.xml for mvn release:prepare > --- > > Key: RATIS-57 > URL: https://issues.apache.org/jira/browse/RATIS-57 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r57_20170330.patch > > > According to [Prepare your POMs for > release|http://www.apache.org/dev/publishing-maven-artifacts.html#prepare-poms], > the following command can test the pom. > {code} > mvn release:prepare -DdryRun=true -DautoVersionSubmodules=true > {code} > The JIRA is to fix the unexpected diff between pom.xml and pom.xml.tag. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-57) Fix pom.xml for mvn release:prepare
Tsz Wo Nicholas Sze created RATIS-57: Summary: Fix pom.xml for mvn release:prepare Key: RATIS-57 URL: https://issues.apache.org/jira/browse/RATIS-57 Project: Ratis Issue Type: Sub-task Reporter: Tsz Wo Nicholas Sze According to [Prepare your POMs for release|http://www.apache.org/dev/publishing-maven-artifacts.html#prepare-poms], the following command can test the pom. {code} mvn release:prepare -DdryRun=true -DautoVersionSubmodules=true {code} The JIRA is to fix the unexpected diff between pom.xml and pom.xml.tag. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-56) Update project version to 0.1.0-alpha
[ https://issues.apache.org/jira/browse/RATIS-56?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-56: - Attachment: r56_20170330.patch r56_20170330.patch: 1st patch. > Update project version to 0.1.0-alpha > - > > Key: RATIS-56 > URL: https://issues.apache.org/jira/browse/RATIS-56 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r56_20170330.patch > > > We may use the following command to update the project version from > 0.1-SNAPSHOT to 0.1.0-alpha. > {code} > find . -name pom.xml | xargs sed -i.old "s/0.1-SNAPSHOT/0.1.0-alpha/g" > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-56) Update project version to 0.1.0-alpha
Tsz Wo Nicholas Sze created RATIS-56: Summary: Update project version to 0.1.0-alpha Key: RATIS-56 URL: https://issues.apache.org/jira/browse/RATIS-56 Project: Ratis Issue Type: Sub-task Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze Attachments: r56_20170330.patch We may use the following command to update the project version from 0.1-SNAPSHOT to 0.1.0-alpha. {code} find . -name pom.xml | xargs sed -i.old "s/0.1-SNAPSHOT/0.1.0-alpha/g" {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-17) Add basic retry cache implementation for Raft Server
[ https://issues.apache.org/jira/browse/RATIS-17?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15937491#comment-15937491 ] Tsz Wo Nicholas Sze commented on RATIS-17: -- Thanks Jing, some quick comments: - CacheKey is created multiple times in RetryCache. We should only create once at queryCache or getOrCreateEntry, and then keep passing it. - The guava Cache is thread safe. Do we need to synchronize queryCache and getOrCreateEntry? - CacheEntry already has a replyFuture so that we should keep using it. e.g. checkLeaderState(..) should not create CompletableFuture anymore. - MAX_CAPACITY actually is MIN_CAPACITY. Otherwise, max = 16 is way to small. :) > Add basic retry cache implementation for Raft Server > > > Key: RATIS-17 > URL: https://issues.apache.org/jira/browse/RATIS-17 > Project: Ratis > Issue Type: Sub-task >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: RATIS-17.000.patch, RATIS-17.001.patch, > RATIS-17.002.patch > > > This jira will add the basic data structure definition for the retry cache. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-55) Add missing license headers
Tsz Wo Nicholas Sze created RATIS-55: Summary: Add missing license headers Key: RATIS-55 URL: https://issues.apache.org/jira/browse/RATIS-55 Project: Ratis Issue Type: Sub-task Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze {{mvn apache-rat:check}} reports that a few files do not have the license header. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-55) Add missing license headers
[ https://issues.apache.org/jira/browse/RATIS-55?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-55: - Attachment: r55_20170330.patch r55_20170330.patch: - adds license header for the .md files; - changes the clean-shade profile to remove dependency-reduced-pom.xml. Note that please run {{mvn clean -Pclean-shade}} before {{mvn apache-rat:check}}. > Add missing license headers > --- > > Key: RATIS-55 > URL: https://issues.apache.org/jira/browse/RATIS-55 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r55_20170330.patch > > > {{mvn apache-rat:check}} reports that a few files do not have the license > header. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-55) Add missing license headers
[ https://issues.apache.org/jira/browse/RATIS-55?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-55: - Parent Issue: RATIS-53 (was: RATIS-54) > Add missing license headers > --- > > Key: RATIS-55 > URL: https://issues.apache.org/jira/browse/RATIS-55 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r55_20170330.patch > > > {{mvn apache-rat:check}} reports that a few files do not have the license > header. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-49) Add a clean profile to remove shaded source
[ https://issues.apache.org/jira/browse/RATIS-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-49: - Attachment: r49_20170329.patch Jing and Enis, thanks for the review! Here is a updated patch. r49_20170329.patch > Add a clean profile to remove shaded source > --- > > Key: RATIS-49 > URL: https://issues.apache.org/jira/browse/RATIS-49 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r49_20170323b.patch, r49_20170323.patch, > r49_20170329.patch > > > There is no way to remove the shaded source using mvn. We have to remove > them manually by > - rm -rf ratis-proto-shaded/src/main/java > - rm -rf ratis-hadoop-shaded/src/main/java -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (RATIS-52) Refactor RaftUtils into different classes
[ https://issues.apache.org/jira/browse/RATIS-52?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze resolved RATIS-52. -- Resolution: Fixed Fix Version/s: 0.1.0-alpha +1 the v2 patch looks good. I have committed this. Thanks, Enis! > Refactor RaftUtils into different classes > - > > Key: RATIS-52 > URL: https://issues.apache.org/jira/browse/RATIS-52 > Project: Ratis > Issue Type: Improvement >Reporter: Enis Soztutar >Assignee: Enis Soztutar > Fix For: 0.1.0-alpha > > Attachments: ratis-52_v1.patch, ratis-52_v2.patch > > > Ideally we should not have a generic {{RaftUtils}} class. The code should be > broken up into at least: > {code} > ReflectionUtils -> All reflection, construction, initialization logic > IOUtils -> Add buffer and IO logic > SystemUtils or PlatformUtils -> OS type detection, etc > Preconditions (or something like that) -> assertTrue, etc > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-17) Add basic retry cache implementation for Raft Server
[ https://issues.apache.org/jira/browse/RATIS-17?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15950372#comment-15950372 ] Tsz Wo Nicholas Sze commented on RATIS-17: -- +1 the 006 patch looks good. Please update it with trunk and commit it. Thanks. > Add basic retry cache implementation for Raft Server > > > Key: RATIS-17 > URL: https://issues.apache.org/jira/browse/RATIS-17 > Project: Ratis > Issue Type: Sub-task >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: RATIS-17.000.patch, RATIS-17.001.patch, > RATIS-17.002.patch, RATIS-17.003.patch, RATIS-17.004.patch, > RATIS-17.005.patch, RATIS-17.006.patch > > > This jira will add the basic data structure definition for the retry cache. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-44) Move hadoop out from ratis-proto-shaded
[ https://issues.apache.org/jira/browse/RATIS-44?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15930741#comment-15930741 ] Tsz Wo Nicholas Sze commented on RATIS-44: -- After the patch: {code} [INFO] --- maven-dependency-plugin:2.10:tree (default-cli) @ ratis-common --- [INFO] org.apache.ratis:ratis-common:jar:0.1-SNAPSHOT [INFO] +- org.apache.ratis:ratis-proto-shaded:jar:0.1-SNAPSHOT:provided [INFO] | +- com.google.protobuf:protobuf-java:jar:3.1.0:provided [INFO] | +- com.google.protobuf.nano:protobuf-javanano:jar:3.1.0:provided [INFO] | +- io.grpc:grpc-netty:jar:1.0.1:provided [INFO] | | +- io.netty:netty-codec-http2:jar:4.1.3.Final:provided (version selected from constraint [4.1.3.Final,4.1.3.Final]) [INFO] | | | +- io.netty:netty-codec-http:jar:4.1.3.Final:provided [INFO] | | | | \- io.netty:netty-codec:jar:4.1.3.Final:provided [INFO] | | | \- io.netty:netty-handler:jar:4.1.3.Final:provided [INFO] | | | +- io.netty:netty-buffer:jar:4.1.3.Final:provided [INFO] | | | | \- io.netty:netty-common:jar:4.1.3.Final:provided [INFO] | | | \- io.netty:netty-transport:jar:4.1.3.Final:provided [INFO] | | |\- io.netty:netty-resolver:jar:4.1.3.Final:provided [INFO] | | \- io.grpc:grpc-core:jar:1.0.1:provided (version selected from constraint [1.0.1,1.0.1]) [INFO] | | +- io.grpc:grpc-context:jar:1.0.1:provided [INFO] | | \- com.google.code.findbugs:jsr305:jar:3.0.0:provided [INFO] | +- io.grpc:grpc-protobuf:jar:1.0.1:provided [INFO] | | +- com.google.protobuf:protobuf-java-util:jar:3.0.0:provided [INFO] | | | \- com.google.code.gson:gson:jar:2.3:provided [INFO] | | \- io.grpc:grpc-protobuf-lite:jar:1.0.1:provided [INFO] | \- io.grpc:grpc-stub:jar:1.0.1:provided [INFO] +- org.slf4j:slf4j-api:jar:1.7.10:compile [INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.10:compile [INFO] | \- log4j:log4j:jar:1.2.17:compile [INFO] +- com.google.guava:guava:jar:20.0:compile [INFO] +- junit:junit:jar:4.11:test [INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test [INFO] \- org.mockito:mockito-all:jar:1.8.5:test {code} > Move hadoop out from ratis-proto-shaded > --- > > Key: RATIS-44 > URL: https://issues.apache.org/jira/browse/RATIS-44 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r44_20170316.patch > > > The dependency tree shows that all the ratis modules have a transitive > dependency to hadoop since everything depends on ratis-proto-shaded and > ratis-proto-shaded depends on hadoop (in order to shade it). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-46) Do not use commons-io and commons-lang.
[ https://issues.apache.org/jira/browse/RATIS-46?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-46: - Attachment: r46_20170317.patch r46_20170317.patch: 1st patch. > Do not use commons-io and commons-lang. > --- > > Key: RATIS-46 > URL: https://issues.apache.org/jira/browse/RATIS-46 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r46_20170317.patch > > > We should remove the dependencies on commons-io and commons-lang since we > don't really need them. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-46) Do not use commons-io and commons-lang.
Tsz Wo Nicholas Sze created RATIS-46: Summary: Do not use commons-io and commons-lang. Key: RATIS-46 URL: https://issues.apache.org/jira/browse/RATIS-46 Project: Ratis Issue Type: Improvement Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze We should remove the dependencies on commons-io and commons-lang since we don't really need them. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-44) Move hadoop out from ratis-proto-shaded
[ https://issues.apache.org/jira/browse/RATIS-44?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15930738#comment-15930738 ] Tsz Wo Nicholas Sze commented on RATIS-44: -- Before the patch, the dependency tree for ratis-common is: {code} [INFO] --- maven-dependency-plugin:2.10:tree (default-cli) @ ratis-common --- [INFO] org.apache.ratis:ratis-common:jar:0.1-SNAPSHOT [INFO] +- org.apache.ratis:ratis-proto-shaded:jar:0.1-SNAPSHOT:provided [INFO] | +- com.google.protobuf:protobuf-java:jar:3.1.0:provided [INFO] | +- com.google.protobuf.nano:protobuf-javanano:jar:3.1.0:provided [INFO] | +- io.grpc:grpc-netty:jar:1.0.1:provided [INFO] | | +- io.netty:netty-codec-http2:jar:4.1.3.Final:provided (version selected from constraint [4.1.3.Final,4.1.3.Final]) [INFO] | | | +- io.netty:netty-codec-http:jar:4.1.3.Final:provided [INFO] | | | | \- io.netty:netty-codec:jar:4.1.3.Final:provided [INFO] | | | \- io.netty:netty-handler:jar:4.1.3.Final:provided [INFO] | | | +- io.netty:netty-buffer:jar:4.1.3.Final:provided [INFO] | | | | \- io.netty:netty-common:jar:4.1.3.Final:provided [INFO] | | | \- io.netty:netty-transport:jar:4.1.3.Final:provided [INFO] | | |\- io.netty:netty-resolver:jar:4.1.3.Final:provided [INFO] | | \- io.grpc:grpc-core:jar:1.0.1:provided (version selected from constraint [1.0.1,1.0.1]) [INFO] | | \- io.grpc:grpc-context:jar:1.0.1:provided [INFO] | +- io.grpc:grpc-protobuf:jar:1.0.1:provided [INFO] | | +- com.google.protobuf:protobuf-java-util:jar:3.0.0:provided [INFO] | | \- io.grpc:grpc-protobuf-lite:jar:1.0.1:provided [INFO] | +- io.grpc:grpc-stub:jar:1.0.1:provided [INFO] | \- org.apache.hadoop:hadoop-common:jar:3.0.0-alpha1:provided [INFO] | +- org.apache.hadoop:hadoop-annotations:jar:3.0.0-alpha1:provided [INFO] | | \- jdk.tools:jdk.tools:jar:1.8:system [INFO] | +- commons-cli:commons-cli:jar:1.2:provided [INFO] | +- org.apache.commons:commons-math3:jar:3.1.1:provided [INFO] | +- xmlenc:xmlenc:jar:0.52:provided [INFO] | +- org.apache.httpcomponents:httpclient:jar:4.5.2:provided [INFO] | | \- org.apache.httpcomponents:httpcore:jar:4.4.4:provided [INFO] | +- commons-codec:commons-codec:jar:1.4:provided [INFO] | +- commons-io:commons-io:jar:2.4:provided [INFO] | +- commons-net:commons-net:jar:3.1:provided [INFO] | +- commons-collections:commons-collections:jar:3.2.2:provided [INFO] | +- javax.servlet:servlet-api:jar:2.5:provided [INFO] | +- org.mortbay.jetty:jetty:jar:6.1.26:provided [INFO] | +- org.mortbay.jetty:jetty-util:jar:6.1.26:provided [INFO] | +- org.mortbay.jetty:jetty-sslengine:jar:6.1.26:provided [INFO] | +- javax.servlet.jsp:jsp-api:jar:2.1:provided [INFO] | +- com.sun.jersey:jersey-core:jar:1.19:provided [INFO] | | \- javax.ws.rs:jsr311-api:jar:1.1.1:provided [INFO] | +- com.sun.jersey:jersey-servlet:jar:1.19:provided [INFO] | +- com.sun.jersey:jersey-json:jar:1.19:provided [INFO] | | +- org.codehaus.jettison:jettison:jar:1.1:provided [INFO] | | +- com.sun.xml.bind:jaxb-impl:jar:2.2.3-1:provided [INFO] | | | \- javax.xml.bind:jaxb-api:jar:2.2.2:provided [INFO] | | | +- javax.xml.stream:stax-api:jar:1.0-2:provided [INFO] | | | \- javax.activation:activation:jar:1.1:provided [INFO] | | +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.2:provided [INFO] | | \- org.codehaus.jackson:jackson-xc:jar:1.9.2:provided [INFO] | +- com.sun.jersey:jersey-server:jar:1.19:provided [INFO] | +- commons-logging:commons-logging:jar:1.1.3:provided [INFO] | +- net.java.dev.jets3t:jets3t:jar:0.9.0:provided [INFO] | | \- com.jamesmurty.utils:java-xmlbuilder:jar:0.4:provided [INFO] | +- commons-lang:commons-lang:jar:2.6:provided [INFO] | +- commons-configuration:commons-configuration:jar:1.6:provided [INFO] | | +- commons-digester:commons-digester:jar:1.8:provided [INFO] | | | \- commons-beanutils:commons-beanutils:jar:1.7.0:provided [INFO] | | \- commons-beanutils:commons-beanutils-core:jar:1.8.0:provided [INFO] | +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:provided [INFO] | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:provided [INFO] | +- org.apache.avro:avro:jar:1.7.4:provided [INFO] | | +- com.thoughtworks.paranamer:paranamer:jar:2.3:provided [INFO] | | \- org.xerial.snappy:snappy-java:jar:1.0.4.1:provided [INFO] | +- com.google.re2j:re2j:jar:1.0:provided [INFO] | +- com.google.code.gson:gson:jar:2.2.4:provided [INFO] | +- org.apache.hadoop:hadoop-auth:jar:3.0.0-alpha1:provided [INFO] | | +- com.nimbusds:nimbus-jose-jwt:jar:3.9:provided [INFO] | | | +- net.jcip:jcip-annotations:jar:1.0:provided [INFO] | | | \- net.minidev:json-smart:jar:1.1.1:provided [INFO] | | \- org.apache.curator:curator-framework:jar:2.7.1:provided [INFO] | +-
[jira] [Updated] (RATIS-41) Avoid using google guava in common
[ https://issues.apache.org/jira/browse/RATIS-41?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-41: - Attachment: r41_20170317.patch r41_20170317.patch: updated with trunk. > Avoid using google guava in common > -- > > Key: RATIS-41 > URL: https://issues.apache.org/jira/browse/RATIS-41 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r41_20170313.patch, r41_20170314.patch, > r41_20170317.patch > > > Similar to RATIS-39, we remove the use of google guava in the ratis-common > module. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-47) Shade google guava
[ https://issues.apache.org/jira/browse/RATIS-47?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-47: - Description: Even we do not use google guava internally, gRPC still depends on it. Therefore, we need to shade it. (was: Even we do not use google guava internal, gRPC still depends on it. Therefore, we need to shade it.) > Shade google guava > -- > > Key: RATIS-47 > URL: https://issues.apache.org/jira/browse/RATIS-47 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > > Even we do not use google guava internally, gRPC still depends on it. > Therefore, we need to shade it. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-47) Shade google guava
[ https://issues.apache.org/jira/browse/RATIS-47?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-47: - Attachment: r47_20170320.patch r47_20170320.patch: - ratis-grpc is using io.netty (not the shaded netty). This patch combines ratis-netty-shaded with ratis-proto-shaded so that ratis-grpc will use the shaded netty. - This patch sets the dependencies in ratis-proto-shaded to be optional. We may consider combining ratis-hadoop-shaded with ratis-proto-shaded. I hesitate doing so for the moment since ratis-hadoop-shaded has a large dependency tree. It makes things complicated. > Shade google guava > -- > > Key: RATIS-47 > URL: https://issues.apache.org/jira/browse/RATIS-47 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r47_20170317.patch, r47_20170320.patch > > > Even we do not use google guava internally, gRPC still depends on it. > Therefore, we need to shade it. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-39) Avoid using google guava so that it is easier to shade
[ https://issues.apache.org/jira/browse/RATIS-39?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-39: - Attachment: r39_20170314.patch Thanks Mingliang. Here is a new patch addressing your comments. r39_20170314.patch > Avoid using google guava so that it is easier to shade > -- > > Key: RATIS-39 > URL: https://issues.apache.org/jira/browse/RATIS-39 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r39_20170309.patch, r39_20170310.patch, > r39_20170314.patch > > > In order to allow user application using google guava, we should either not > using it or shade it. > Except for ratis-common, we can replace google guava by: > - Preconditions: add similar methods in our util. > - VisibleForTesting: remove it. > - ThreadFactoryBuilder: use Daemon::new > - Charsets: use StandardCharsets > - Lists, ImmutableList: use java collections > - Throwables; just throw IOException -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-39) Avoid using google guava
[ https://issues.apache.org/jira/browse/RATIS-39?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-39: - Summary: Avoid using google guava (was: Avoid using google guava so that it is easier to shade) > Avoid using google guava > > > Key: RATIS-39 > URL: https://issues.apache.org/jira/browse/RATIS-39 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r39_20170309.patch, r39_20170310.patch, > r39_20170314.patch > > > In order to allow user application using google guava, we should either not > using it or shade it. > Except for ratis-common, we can replace google guava by: > - Preconditions: add similar methods in our util. > - VisibleForTesting: remove it. > - ThreadFactoryBuilder: use Daemon::new > - Charsets: use StandardCharsets > - Lists, ImmutableList: use java collections > - Throwables; just throw IOException -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (RATIS-39) Avoid using google guava
[ https://issues.apache.org/jira/browse/RATIS-39?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze resolved RATIS-39. -- Resolution: Fixed Fix Version/s: 0.1 I have committed this. > Avoid using google guava > > > Key: RATIS-39 > URL: https://issues.apache.org/jira/browse/RATIS-39 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Fix For: 0.1 > > Attachments: r39_20170309.patch, r39_20170310.patch, > r39_20170314.patch > > > In order to allow user application using google guava, we should either not > using it or shade it. > Except for ratis-common, we can replace google guava by: > - Preconditions: add similar methods in our util. > - VisibleForTesting: remove it. > - ThreadFactoryBuilder: use Daemon::new > - Charsets: use StandardCharsets > - Lists, ImmutableList: use java collections > - Throwables; just throw IOException -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Assigned] (RATIS-42) Shade netty in ratis
[ https://issues.apache.org/jira/browse/RATIS-42?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze reassigned RATIS-42: Assignee: Tsz Wo Nicholas Sze > Shade netty in ratis > > > Key: RATIS-42 > URL: https://issues.apache.org/jira/browse/RATIS-42 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > > We need to shade netty so that the user application can use a different > version of netty. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-42) Shade netty in ratis
Tsz Wo Nicholas Sze created RATIS-42: Summary: Shade netty in ratis Key: RATIS-42 URL: https://issues.apache.org/jira/browse/RATIS-42 Project: Ratis Issue Type: Improvement Reporter: Tsz Wo Nicholas Sze We need to shade netty so that the user application can use a different version of netty. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-42) Shade netty in ratis
[ https://issues.apache.org/jira/browse/RATIS-42?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-42: - Attachment: r42_20170315.patch r42_20170315.patch: 1st patch. Will do some clean up. > Shade netty in ratis > > > Key: RATIS-42 > URL: https://issues.apache.org/jira/browse/RATIS-42 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r42_20170315.patch > > > We need to shade netty so that the user application can use a different > version of netty. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-42) Shade netty in ratis
[ https://issues.apache.org/jira/browse/RATIS-42?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-42: - Attachment: r42_20170316.patch r42_20170316.patch: adds a new ratis-netty-shaded module. > Shade netty in ratis > > > Key: RATIS-42 > URL: https://issues.apache.org/jira/browse/RATIS-42 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r42_20170315.patch, r42_20170316.patch > > > We need to shade netty so that the user application can use a different > version of netty. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-47) Shade google guava and combine ratis-netty-shaded with ratis-proto-shaded
[ https://issues.apache.org/jira/browse/RATIS-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15935638#comment-15935638 ] Tsz Wo Nicholas Sze commented on RATIS-47: -- Have you manually deleted the source before shade? {code} rm -rf ratis-proto-shaded/src/main/java rm -rf ratis-hadoop-shaded/src/main/java {code} > Shade google guava and combine ratis-netty-shaded with ratis-proto-shaded > - > > Key: RATIS-47 > URL: https://issues.apache.org/jira/browse/RATIS-47 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Fix For: 0.1 > > Attachments: r47_20170317.patch, r47_20170320.patch > > > Even we do not use google guava internally, gRPC still depends on it. > Therefore, we need to shade it. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-41) Avoid using google guava in common
[ https://issues.apache.org/jira/browse/RATIS-41?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-41: - Attachment: r41_20170314.patch > Avoid using google guava in common > -- > > Key: RATIS-41 > URL: https://issues.apache.org/jira/browse/RATIS-41 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r41_20170313.patch, r41_20170314.patch > > > Similar to RATIS-39, we remove the use of google guava in the ratis-common > module. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-41) Avoid using google guava in common
[ https://issues.apache.org/jira/browse/RATIS-41?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-41: - Attachment: r41_20170314.patch r41_20170314.patch: sync'ed with trunk; also fixing pom and javac warnings. > Avoid using google guava in common > -- > > Key: RATIS-41 > URL: https://issues.apache.org/jira/browse/RATIS-41 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r41_20170313.patch, r41_20170314.patch > > > Similar to RATIS-39, we remove the use of google guava in the ratis-common > module. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-41) Avoid using google guava in common
[ https://issues.apache.org/jira/browse/RATIS-41?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-41: - Attachment: (was: r41_20170314.patch) > Avoid using google guava in common > -- > > Key: RATIS-41 > URL: https://issues.apache.org/jira/browse/RATIS-41 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r41_20170313.patch > > > Similar to RATIS-39, we remove the use of google guava in the ratis-common > module. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-44) Move hadoop out from ratis-proto-shaded
Tsz Wo Nicholas Sze created RATIS-44: Summary: Move hadoop out from ratis-proto-shaded Key: RATIS-44 URL: https://issues.apache.org/jira/browse/RATIS-44 Project: Ratis Issue Type: Improvement Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze The dependency tree shows that all the ratis modules have a transitive dependency to hadoop since everything depends on ratis-proto-shaded and ratis-proto-shaded depends on hadoop (in order to shade it). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-45) Move gRPC out from ratis-proto-shaded
Tsz Wo Nicholas Sze created RATIS-45: Summary: Move gRPC out from ratis-proto-shaded Key: RATIS-45 URL: https://issues.apache.org/jira/browse/RATIS-45 Project: Ratis Issue Type: Improvement Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze Similar to RATIS-44, all the modules have a transitive dependency on gRPC. We should move gRPC out. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-56) Update project version to 0.1.0-alpha
[ https://issues.apache.org/jira/browse/RATIS-56?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15952445#comment-15952445 ] Tsz Wo Nicholas Sze commented on RATIS-56: -- {code} On an unrelated note, what can help us for driving frequent releases is to have a script to drive the release process. I think we should do something like this: https://github.com/apache/hbase/blob/master/dev-support/make_rc.sh. {code} That is a good idea. Let me file a JIRA. > Update project version to 0.1.0-alpha > - > > Key: RATIS-56 > URL: https://issues.apache.org/jira/browse/RATIS-56 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r56_20170330.patch, r56_20170402.patch > > > We may use the following command to update the project version from > 0.1-SNAPSHOT to 0.1.0-alpha. > {code} > find . -name pom.xml | xargs sed -i.old "s/0.1-SNAPSHOT/0.1.0-alpha/g" > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-56) Update project version to 0.1.0-alpha
[ https://issues.apache.org/jira/browse/RATIS-56?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-56: - Attachment: r56_20170402.patch Thanks Enis. Let's commit this as the last patch of the release. r56_20170402.patch: changes also ratis-replicated-map/pom.xml > Update project version to 0.1.0-alpha > - > > Key: RATIS-56 > URL: https://issues.apache.org/jira/browse/RATIS-56 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r56_20170330.patch, r56_20170402.patch > > > We may use the following command to update the project version from > 0.1-SNAPSHOT to 0.1.0-alpha. > {code} > find . -name pom.xml | xargs sed -i.old "s/0.1-SNAPSHOT/0.1.0-alpha/g" > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (RATIS-54) Bump maven.min.version to 3.3.9
[ https://issues.apache.org/jira/browse/RATIS-54?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze resolved RATIS-54. -- Resolution: Fixed Fix Version/s: 0.1.0-alpha Thanks again, Enis. I have committed this. > Bump maven.min.version to 3.3.9 > --- > > Key: RATIS-54 > URL: https://issues.apache.org/jira/browse/RATIS-54 > Project: Ratis > Issue Type: Task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Fix For: 0.1.0-alpha > > Attachments: r54_20170330.patch, r54_20170331.patch > > > [~enis] found that some earlier Maven 3.x version does not work well; see > [this > comment|https://issues.apache.org/jira/browse/RATIS-47?focusedCommentId=15935648=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15935648]. > Maven 3.3.9 is the latest stable release, released on 2015-11-14; see > https://maven.apache.org/docs/history.html > It seems reasonable to require Maven 3.3.9. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-56) Update project version to 0.1.0-alpha
[ https://issues.apache.org/jira/browse/RATIS-56?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15956561#comment-15956561 ] Tsz Wo Nicholas Sze commented on RATIS-56: -- [~khmarbaise], thanks for the note. I do not realize that there is a {{mvn versons:set}} command. Will use it if it fits. > Update project version to 0.1.0-alpha > - > > Key: RATIS-56 > URL: https://issues.apache.org/jira/browse/RATIS-56 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r56_20170330.patch, r56_20170402.patch > > > We may use the following command to update the project version from > 0.1-SNAPSHOT to 0.1.0-alpha. > {code} > find . -name pom.xml | xargs sed -i.old "s/0.1-SNAPSHOT/0.1.0-alpha/g" > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (RATIS-56) Update project version to 0.1.0-alpha
[ https://issues.apache.org/jira/browse/RATIS-56?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15956561#comment-15956561 ] Tsz Wo Nicholas Sze edited comment on RATIS-56 at 4/5/17 9:15 AM: -- [~khmarbaise], thanks for the note. I do not realize that there is a {{mvn versons:set}} command. Will try it. was (Author: szetszwo): [~khmarbaise], thanks for the note. I do not realize that there is a {{mvn versons:set}} command. Will use it if it fits. > Update project version to 0.1.0-alpha > - > > Key: RATIS-56 > URL: https://issues.apache.org/jira/browse/RATIS-56 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r56_20170330.patch, r56_20170402.patch > > > We may use the following command to update the project version from > 0.1-SNAPSHOT to 0.1.0-alpha. > {code} > find . -name pom.xml | xargs sed -i.old "s/0.1-SNAPSHOT/0.1.0-alpha/g" > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Reopened] (RATIS-52) Refactor RaftUtils into different classes
[ https://issues.apache.org/jira/browse/RATIS-52?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze reopened RATIS-52: -- Sorry, I have tried to fix it but it is not very easy. I have reverted it. > Refactor RaftUtils into different classes > - > > Key: RATIS-52 > URL: https://issues.apache.org/jira/browse/RATIS-52 > Project: Ratis > Issue Type: Improvement >Reporter: Enis Soztutar >Assignee: Enis Soztutar > Fix For: 0.1.0-alpha > > Attachments: ratis-52_v1.patch, ratis-52_v2.patch > > > Ideally we should not have a generic {{RaftUtils}} class. The code should be > broken up into at least: > {code} > ReflectionUtils -> All reflection, construction, initialization logic > IOUtils -> Add buffer and IO logic > SystemUtils or PlatformUtils -> OS type detection, etc > Preconditions (or something like that) -> assertTrue, etc > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-54) Bump maven.min.version to 3.3.9
[ https://issues.apache.org/jira/browse/RATIS-54?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15950404#comment-15950404 ] Tsz Wo Nicholas Sze commented on RATIS-54: -- Thanks for the review, > requiring the latest version is a bit aggressive, but I did not try with an > earlier 3.3 release. ... It seems okay since it was released on 2015-11-14, more than a year ago. > Do you mind changing the line in BUILDING.md: Good catch. Will do. > Bump maven.min.version to 3.3.9 > --- > > Key: RATIS-54 > URL: https://issues.apache.org/jira/browse/RATIS-54 > Project: Ratis > Issue Type: Task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r54_20170330.patch > > > [~enis] found that some earlier Maven 3.x version does not work well; see > [this > comment|https://issues.apache.org/jira/browse/RATIS-47?focusedCommentId=15935648=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15935648]. > Maven 3.3.9 is the latest stable release, released on 2015-11-14; see > https://maven.apache.org/docs/history.html > It seems reasonable to require Maven 3.3.9. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-65) Add a script to automate the release process
Tsz Wo Nicholas Sze created RATIS-65: Summary: Add a script to automate the release process Key: RATIS-65 URL: https://issues.apache.org/jira/browse/RATIS-65 Project: Ratis Issue Type: Sub-task Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze As suggested by [~enis] below, we should add a script to automate the release process. {quote} On an unrelated note, what can help us for driving frequent releases is to have a script to drive the release process. I think we should do something like this: https://github.com/apache/hbase/blob/master/dev-support/make_rc.sh. {quote} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Assigned] (RATIS-72) Enable Ratis to run on high-performance RDMA networks
[ https://issues.apache.org/jira/browse/RATIS-72?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze reassigned RATIS-72: Assignee: Animesh Trivedi > Enable Ratis to run on high-performance RDMA networks > - > > Key: RATIS-72 > URL: https://issues.apache.org/jira/browse/RATIS-72 > Project: Ratis > Issue Type: New Feature >Reporter: Animesh Trivedi >Assignee: Animesh Trivedi >Priority: Minor > > We want to enable Ratis to run on high-performance RDMA networks. There has > already been quite a bit of activity in leveraging RDMA networks in modern > data processing stacks. Distributed consensus is one of the problems that can > be accelerated using high-performance/RDMA messaging. > We start by implementing a Ratis RPC implementation using DiSNI and DaPRC > modules (https://github.com/zrlio/) for RDMA networks. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-72) Enable Ratis to run on high-performance RDMA networks
[ https://issues.apache.org/jira/browse/RATIS-72?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15967378#comment-15967378 ] Tsz Wo Nicholas Sze commented on RATIS-72: -- Thanks [~atrivedi]. You may use this as an umbrella JIRA and file subtasks for the works. > Enable Ratis to run on high-performance RDMA networks > - > > Key: RATIS-72 > URL: https://issues.apache.org/jira/browse/RATIS-72 > Project: Ratis > Issue Type: New Feature >Reporter: Animesh Trivedi >Assignee: Animesh Trivedi >Priority: Minor > > We want to enable Ratis to run on high-performance RDMA networks. There has > already been quite a bit of activity in leveraging RDMA networks in modern > data processing stacks. Distributed consensus is one of the problems that can > be accelerated using high-performance/RDMA messaging. > We start by implementing a Ratis RPC implementation using DiSNI and DaPRC > modules (https://github.com/zrlio/) for RDMA networks. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-67) BUILDING.md file is not correct
[ https://issues.apache.org/jira/browse/RATIS-67?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15967730#comment-15967730 ] Tsz Wo Nicholas Sze commented on RATIS-67: -- No problem. Thanks. > BUILDING.md file is not correct > --- > > Key: RATIS-67 > URL: https://issues.apache.org/jira/browse/RATIS-67 > Project: Ratis > Issue Type: Bug >Affects Versions: 0.1.0-alpha >Reporter: Karl Heinz Marbaise >Assignee: Karl Heinz Marbaise >Priority: Critical > > The {{BUILDING.md}} file claims to build RATIS for the first time via: > {code} > mvn package -DskipTests > {code} > which simply fails with the following output: > {code} > [ERROR] Failed to execute goal on project ratis-hadoop-shaded: Could not > resolve dependencies for project > org.apache.ratis:ratis-hadoop-shaded:jar:0.1-SNAPSHOT: Failure to find > org.apache.hadoop:hadoop-common:jar:3.0.0-alpha1 in > http://localhost:8081/nexus/content/groups/public was cached in the local > repository, resolution will not be reattempted until the update interval of > nexus has elapsed or updates are forced -> [Help 1] > {code} > This looks like those dependencies are used instead of being dependencies > defined by {{true
[jira] [Commented] (RATIS-70) Separate term/index/offset and log entry content in LogSegment
[ https://issues.apache.org/jira/browse/RATIS-70?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15970347#comment-15970347 ] Tsz Wo Nicholas Sze commented on RATIS-70: -- +1 the new patch looks good. Thanks! > Separate term/index/offset and log entry content in LogSegment > -- > > Key: RATIS-70 > URL: https://issues.apache.org/jira/browse/RATIS-70 > Project: Ratis > Issue Type: Sub-task >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: RATIS-70.000.patch, RATIS-70.001.patch, > RATIS-70.002.patch > > > The current RaftLogCache consists of LogSegment, and logSegment consists of > log entries. Instead of directly storing all the log entries, we should > separate the term/index/offset information and the entry content information. > The former part is more like the index information and can be always kept in > the memory. The entry content part can later be evicted from the memory based > on eviction policies. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-30) Provide a way to pass parameters to rpc implementations
[ https://issues.apache.org/jira/browse/RATIS-30?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-30: - Attachment: r30_20170303.patch Thanks Jing, here is a new patch. r30_20170303.patch > Provide a way to pass parameters to rpc implementations > --- > > Key: RATIS-30 > URL: https://issues.apache.org/jira/browse/RATIS-30 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r30_20170301.patch, r30_20170303.patch > > > In this JIRA, we address the following comment from [~jingzhao] in RATIS-28. > {quote} > We can consider use some other way for library users to pass extra > configuration objects for their RPC engine (e.g., Hadoop Configuration) into > the RPC factory. In this way we can get a neater API for RPC creation and > avoid using an lazy initialization supplier in RaftServerImpl. > {quote} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-15) Add call ID to identify a client request and its retry
[ https://issues.apache.org/jira/browse/RATIS-15?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15895397#comment-15895397 ] Tsz Wo Nicholas Sze commented on RATIS-15: -- Thanks Jing. Some minor comments: - RaftClient.DEFAULT_SEQNUM is no longer used except in RaftServerConstants. Let's remove it. - Should we rename RaftServerConstants.DEFAULT_SEQNUM to something else? > Add call ID to identify a client request and its retry > -- > > Key: RATIS-15 > URL: https://issues.apache.org/jira/browse/RATIS-15 > Project: Ratis > Issue Type: Sub-task >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: RATIS-15.000.patch, RATIS-15.001.patch > > > Add call ID in raft client. A client's request and its retry will share the > same call ID. Remote Raft peers then can use "Client ID + Call ID" to > identify the retry requests. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (RATIS-30) Provide a way to pass parameters to rpc implementations
[ https://issues.apache.org/jira/browse/RATIS-30?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze resolved RATIS-30. -- Resolution: Fixed Fix Version/s: 0.1 I have committed this. > Provide a way to pass parameters to rpc implementations > --- > > Key: RATIS-30 > URL: https://issues.apache.org/jira/browse/RATIS-30 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Fix For: 0.1 > > Attachments: r30_20170301.patch, r30_20170303b.patch, > r30_20170303.patch > > > In this JIRA, we address the following comment from [~jingzhao] in RATIS-28. > {quote} > We can consider use some other way for library users to pass extra > configuration objects for their RPC engine (e.g., Hadoop Configuration) into > the RPC factory. In this way we can get a neater API for RPC creation and > avoid using an lazy initialization supplier in RaftServerImpl. > {quote} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-41) Avoid using google guava in common
[ https://issues.apache.org/jira/browse/RATIS-41?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-41: - Attachment: r41_20170313.patch r41_20170313.patch: 1st patch (depends on RATIS-39) > Avoid using google guava in common > -- > > Key: RATIS-41 > URL: https://issues.apache.org/jira/browse/RATIS-41 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r41_20170313.patch > > > Similar to RATIS-39, we remove the use of google guava in the ratis-common > module. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-41) Avoid using google guava in common
Tsz Wo Nicholas Sze created RATIS-41: Summary: Avoid using google guava in common Key: RATIS-41 URL: https://issues.apache.org/jira/browse/RATIS-41 Project: Ratis Issue Type: Improvement Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-41) Avoid using google guava in common
[ https://issues.apache.org/jira/browse/RATIS-41?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-41: - Description: Similar to RATIS-39, we remove the use of google guava in the ratis-common module. > Avoid using google guava in common > -- > > Key: RATIS-41 > URL: https://issues.apache.org/jira/browse/RATIS-41 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > > Similar to RATIS-39, we remove the use of google guava in the ratis-common > module. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Assigned] (RATIS-35) Add SafeVarargs annotation for ConfUtils methods
[ https://issues.apache.org/jira/browse/RATIS-35?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze reassigned RATIS-35: Assignee: Tsz Wo Nicholas Sze > Add SafeVarargs annotation for ConfUtils methods > > > Key: RATIS-35 > URL: https://issues.apache.org/jira/browse/RATIS-35 > Project: Ratis > Issue Type: Improvement >Reporter: Jing Zhao >Assignee: Tsz Wo Nicholas Sze >Priority: Minor > > After RATIS-34, there are a couple of methods in ConfUtils with "Possible > heap pollution from parameterized vararg type" warning. We can add > SafeVarargs annotations to suppress the warning. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-36) Use ConfUtils for other ConfigKeys
[ https://issues.apache.org/jira/browse/RATIS-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15898515#comment-15898515 ] Tsz Wo Nicholas Sze commented on RATIS-36: -- Below are lists of keys: - RaftClientConfigKeys {code} *** interface org.apache.ratis.client.RaftClientConfigKeys *** constant: PREFIX = raft.client *** interface org.apache.ratis.client.RaftClientConfigKeys$Rpc *** constant: PREFIX = raft.client.rpc key: raft.client.rpc.timeout (TimeDuration, default=300 milliseconds) {code} - RaftConfigKeys {code} *** interface org.apache.ratis.RaftConfigKeys *** constant: PREFIX = raft *** interface org.apache.ratis.RaftConfigKeys$Rpc *** constant: PREFIX = raft.rpc key: raft.rpc.type (String, default=GRPC) {code} - GrpcConfigKeys {code} *** interface org.apache.ratis.grpc.GrpcConfigKeys *** constant: PREFIX = raft.grpc *** interface org.apache.ratis.grpc.GrpcConfigKeys$OutputStream *** constant: PREFIX = raft.grpc.outputstream key: raft.grpc.outputstream.buffer.size (int, default=65536) key: raft.grpc.outputstream.retry.times (int, default=5) key: raft.grpc.outputstream.retry.interval (TimeDuration, default=300 milliseconds) key: raft.grpc.outputstream.outstanding.appends.max (int, default=128) *** interface org.apache.ratis.grpc.GrpcConfigKeys$Server *** constant: PREFIX = raft.grpc.server key: raft.grpc.server.port (int, default=0) key: raft.grpc.server.message.size.max (int, default=67108864) key: raft.grpc.server.leader.outstanding.appends.max (int, default=128) {code} - HadoopConfigKeys {code} *** interface org.apache.ratis.hadooprpc.HadoopConfigKeys *** constant: PREFIX = raft.hadoop parameter: raft.hadoop.conf (class org.apache.hadoop.conf.Configuration) *** interface org.apache.ratis.hadooprpc.HadoopConfigKeys$Ipc *** constant: PREFIX = raft.hadoop.ipc key: raft.hadoop.ipc.address (String, default=0.0.0.0:10718) key: raft.hadoop.ipc.handlers (int, default=10) {code} - NettyConfigKeys {code} *** interface org.apache.ratis.netty.NettyConfigKeys *** constant: PREFIX = raft.netty *** interface org.apache.ratis.netty.NettyConfigKeys$Server *** constant: PREFIX = raft.netty.server key: raft.netty.server.port (int, default=0) {code} > Use ConfUtils for other ConfigKeys > -- > > Key: RATIS-36 > URL: https://issues.apache.org/jira/browse/RATIS-36 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r36_20170306.patch > > > In RATIS-34, we change RaftServerConfigKeys to use ConfUtils. We do similar > changes here for RaftClientConfigKeys, RaftConfigKeys, RaftGrpcConfigKeys, > HadoopConfigKeys and NettyConfigKeys. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-33) Protobuf gets compiled only when both activation conditions are triggered
[ https://issues.apache.org/jira/browse/RATIS-33?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15893015#comment-15893015 ] Tsz Wo Nicholas Sze commented on RATIS-33: -- Thanks for working on this. Tried the patch. It is working fine. - Let's add -DskipTests and quote it by ``` for the command below. {code} run with -$ mvn install -Dcompile-protobuf +$ mvn package -Dcompile-protobuf {code} - It seems that there is no mvn command to remove the shaded source. We probably should add a new mvn target. We may do it separately. > Protobuf gets compiled only when both activation conditions are triggered > - > > Key: RATIS-33 > URL: https://issues.apache.org/jira/browse/RATIS-33 > Project: Ratis > Issue Type: Bug >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: RATIS-33.000.patch, RATIS-33.001.patch, > RATIS-33.002.patch > > > In RATIS-26 we specify the following activation conditions for compiling > protobuf files: > {code} > > > > ${sources.dir} > > > compile-protobuf > > > {code} > This does not work after maven version 3.2.2, due to MNG-4565 that changes > the activation condition relationships from OR to AND. Thus we have to do > both 1) delete ratis-proto-shaded/src/main/java, and 2) include > -Dcompile-protobuf in the command to trigger the protobuf compilation. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-98) Cache RaftId byte[] and String
[ https://issues.apache.org/jira/browse/RATIS-98?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-98: - Attachment: r98_20170802.patch r98_20170802.patch: sync'ed with trunk. > Cache RaftId byte[] and String > -- > > Key: RATIS-98 > URL: https://issues.apache.org/jira/browse/RATIS-98 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze >Priority: Minor > Attachments: r98_20170727.patch, r98_20170731.patch, > r98_20170802.patch > > > RaftId may convert the same UUID to byte[] and String multiple times. It is > better to cache it. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (RATIS-100) Test multiple raft groups with a state machine
Tsz Wo Nicholas Sze created RATIS-100: - Summary: Test multiple raft groups with a state machine Key: RATIS-100 URL: https://issues.apache.org/jira/browse/RATIS-100 Project: Ratis Issue Type: Test Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze We propose to add a test similar to ReinitializationBaseTest.runTestReinitializeMultiGroups(..) with a state machine so that it can test if the states are recorded correctly. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (RATIS-97) Leader may not have majority after setConfiguration
[ https://issues.apache.org/jira/browse/RATIS-97?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-97: - Attachment: r97_20170801b.patch r97_20170801b.patch: fixes NetUtils.address2String(..) so that it works with ipv6 addresses. > Leader may not have majority after setConfiguration > --- > > Key: RATIS-97 > URL: https://issues.apache.org/jira/browse/RATIS-97 > Project: Ratis > Issue Type: Bug >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r97_20170728.patch, r97_20170731.patch, > r97_20170801b.patch, r97_20170801.patch > > > Here is an example: Suppose a group has 3 servers and one of them is the > leader. Use setConfiguration to add 6 more servers. The leader is still > running as a leader although it does not has majority anymore. The 6 new > servers may elect a new leader among them. Finally, there are two leaders in > the group. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (RATIS-105) Server should check group id for client requests
[ https://issues.apache.org/jira/browse/RATIS-105?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-105: -- Attachment: r105_20170815.patch r105_20170815.patch: renames RaftNotLeaderExceptionBaseTest to RaftExceptionBaseTest and moves the new tests to there. > Server should check group id for client requests > - > > Key: RATIS-105 > URL: https://issues.apache.org/jira/browse/RATIS-105 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r105_20170814.patch, r105_20170815.patch > > > In RATIS-100, we found a bug that a server may response to another server > with different group so that a cluster with multiple groups may not work > correctly. The solution is to check the group id for each server request > before responding to it. > In this JIRA, we add a similar group id check for the client requests. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (RATIS-94) Expose basic information over JMX
[ https://issues.apache.org/jira/browse/RATIS-94?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16123847#comment-16123847 ] Tsz Wo Nicholas Sze commented on RATIS-94: -- [~elek], thanks a lot for the contribution! The CopyOnWriteArrayList may not work well in LeaderState since it does not support remove. :) Now, RaftReconfigurationBaseTest.testRemovePeers() fails with UnsupportedOperationException. {code} Exception in thread "Thread-102" java.lang.UnsupportedOperationException at java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1176) at org.apache.ratis.server.impl.LeaderState.updateSenders(LeaderState.java:254) at org.apache.ratis.server.impl.LeaderState.replicateNewConf(LeaderState.java:483) at org.apache.ratis.server.impl.LeaderState.checkAndUpdateConfiguration(LeaderState.java:448) at org.apache.ratis.server.impl.LeaderState.updateLastCommitted(LeaderState.java:431) at org.apache.ratis.server.impl.LeaderState.handleEvent(LeaderState.java:330) at org.apache.ratis.server.impl.LeaderState.access$500(LeaderState.java:49) at org.apache.ratis.server.impl.LeaderState$EventProcessor.run(LeaderState.java:298) {code} > Expose basic information over JMX > - > > Key: RATIS-94 > URL: https://issues.apache.org/jira/browse/RATIS-94 > Project: Ratis > Issue Type: Improvement >Reporter: Elek, Marton >Assignee: Elek, Marton > Fix For: 0.2.0-alpha > > Attachments: RATIS-94-1.patch, RATIS-94.2.patch, RATIS-94.3.patch, > RATIS-94.4.patch > > > To make it easier to debug the current state of the nodes the basic > RatisServer information should be exposed over the JMX interface. Such as: > role (leader,follower), latest term, index, follower peers (in case of LEADER) -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (RATIS-104) Add an RPC to get server information
Tsz Wo Nicholas Sze created RATIS-104: - Summary: Add an RPC to get server information Key: RATIS-104 URL: https://issues.apache.org/jira/browse/RATIS-104 Project: Ratis Issue Type: New Feature Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze We propose to add a getServerInfo RPC to get server information from a server. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (RATIS-105) Server should check group id for client requests
Tsz Wo Nicholas Sze created RATIS-105: - Summary: Server should check group id for client requests Key: RATIS-105 URL: https://issues.apache.org/jira/browse/RATIS-105 Project: Ratis Issue Type: Improvement Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze In RATIS-100, we found a bug that a server may response to another server with different group so that a cluster with multiple groups may not work correctly. The solution is to check the group id for each server request before responding to it. In this JIRA, we add a similar group id check for the client requests. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (RATIS-105) Server should check group id for client requests
[ https://issues.apache.org/jira/browse/RATIS-105?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-105: -- Attachment: r105_20170814.patch r105_20170814.patch: check group id for all client requests Note that this patch assumes RATIS-100. > Server should check group id for client requests > - > > Key: RATIS-105 > URL: https://issues.apache.org/jira/browse/RATIS-105 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r105_20170814.patch > > > In RATIS-100, we found a bug that a server may response to another server > with different group so that a cluster with multiple groups may not work > correctly. The solution is to check the group id for each server request > before responding to it. > In this JIRA, we add a similar group id check for the client requests. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (RATIS-100) Test multiple raft groups with a state machine
[ https://issues.apache.org/jira/browse/RATIS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-100: -- Attachment: r100_20170810.patch r100_20170810.patch: - reverts the changes in LeaderState.checkNewPeers() since some tests in RaftReconfigurationBaseTest fail. - changes ReinitializationBaseTest so that reinitialize calls are invoked before setConfiguration. It seems fine to assume all new servers must be initialized before setConfiguration. All tests are passed in my machine after the patch. > Test multiple raft groups with a state machine > -- > > Key: RATIS-100 > URL: https://issues.apache.org/jira/browse/RATIS-100 > Project: Ratis > Issue Type: Test >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r100_20170804.patch, r100_20170809b.patch, > r100_20170809c.patch, r100_20170809.patch, r100_20170810.patch, > r100_no_leader_case.log > > > We propose to add a test similar to > ReinitializationBaseTest.runTestReinitializeMultiGroups(..) with a state > machine so that it can test if the states are recorded correctly. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (RATIS-103) LeaderState.updateSenders may throws UnsupportedOperationException
[ https://issues.apache.org/jira/browse/RATIS-103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16123891#comment-16123891 ] Tsz Wo Nicholas Sze commented on RATIS-103: --- All tests passed after the patch. > LeaderState.updateSenders may throws UnsupportedOperationException > -- > > Key: RATIS-103 > URL: https://issues.apache.org/jira/browse/RATIS-103 > Project: Ratis > Issue Type: Bug >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze >Priority: Minor > Attachments: r103_20170811.patch > > > The CopyOnWriteArrayList may not work well in LeaderState since it does not > support remove. > RaftReconfigurationBaseTest.testRemovePeers() fails with > UnsupportedOperationException. > {code} > Exception in thread "Thread-102" java.lang.UnsupportedOperationException > at > java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1176) > at > org.apache.ratis.server.impl.LeaderState.updateSenders(LeaderState.java:254) > ... > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (RATIS-103) LeaderState.updateSenders may throws UnsupportedOperationException
[ https://issues.apache.org/jira/browse/RATIS-103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-103: -- Attachment: r103_20170811b.patch r103_20170811b.patch: uses addAll and removeAll for all mutations. > LeaderState.updateSenders may throws UnsupportedOperationException > -- > > Key: RATIS-103 > URL: https://issues.apache.org/jira/browse/RATIS-103 > Project: Ratis > Issue Type: Bug >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze >Priority: Minor > Attachments: r103_20170811b.patch, r103_20170811.patch > > > The CopyOnWriteArrayList may not work well in LeaderState since it does not > support remove. > RaftReconfigurationBaseTest.testRemovePeers() fails with > UnsupportedOperationException. > {code} > Exception in thread "Thread-102" java.lang.UnsupportedOperationException > at > java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1176) > at > org.apache.ratis.server.impl.LeaderState.updateSenders(LeaderState.java:254) > ... > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (RATIS-103) LeaderState.updateSenders may throws UnsupportedOperationException
[ https://issues.apache.org/jira/browse/RATIS-103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-103: -- Attachment: r103_20170811.patch r103_20170811.patch: uses Collectors.toList() (the current default is ArrayList) > LeaderState.updateSenders may throws UnsupportedOperationException > -- > > Key: RATIS-103 > URL: https://issues.apache.org/jira/browse/RATIS-103 > Project: Ratis > Issue Type: Bug >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze >Priority: Minor > Attachments: r103_20170811.patch > > > The CopyOnWriteArrayList may not work well in LeaderState since it does not > support remove. > RaftReconfigurationBaseTest.testRemovePeers() fails with > UnsupportedOperationException. > {code} > Exception in thread "Thread-102" java.lang.UnsupportedOperationException > at > java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1176) > at > org.apache.ratis.server.impl.LeaderState.updateSenders(LeaderState.java:254) > ... > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (RATIS-103) LeaderState.updateSenders may throws UnsupportedOperationException
[ https://issues.apache.org/jira/browse/RATIS-103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16124119#comment-16124119 ] Tsz Wo Nicholas Sze commented on RATIS-103: --- > I think it's more safe (but let me know if I am wrong) to use the normal > remove method of the List interface instead of the remove method on the > iterator. ... This is a good idea. Let's also use addAll and removeAll; otherwise, each add and remove will copy a new list in CopyOnWriteArrayList. Will update the patch. > LeaderState.updateSenders may throws UnsupportedOperationException > -- > > Key: RATIS-103 > URL: https://issues.apache.org/jira/browse/RATIS-103 > Project: Ratis > Issue Type: Bug >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze >Priority: Minor > Attachments: r103_20170811.patch > > > The CopyOnWriteArrayList may not work well in LeaderState since it does not > support remove. > RaftReconfigurationBaseTest.testRemovePeers() fails with > UnsupportedOperationException. > {code} > Exception in thread "Thread-102" java.lang.UnsupportedOperationException > at > java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1176) > at > org.apache.ratis.server.impl.LeaderState.updateSenders(LeaderState.java:254) > ... > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (RATIS-103) LeaderState.updateSenders may throws UnsupportedOperationException
[ https://issues.apache.org/jira/browse/RATIS-103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16123869#comment-16123869 ] Tsz Wo Nicholas Sze commented on RATIS-103: --- It seems that we could simply use ArrayList instead of CopyOnWriteArrayList. Will check it with the unit tests. > LeaderState.updateSenders may throws UnsupportedOperationException > -- > > Key: RATIS-103 > URL: https://issues.apache.org/jira/browse/RATIS-103 > Project: Ratis > Issue Type: Bug >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze >Priority: Minor > > The CopyOnWriteArrayList may not work well in LeaderState since it does not > support remove. > RaftReconfigurationBaseTest.testRemovePeers() fails with > UnsupportedOperationException. > {code} > Exception in thread "Thread-102" java.lang.UnsupportedOperationException > at > java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1176) > at > org.apache.ratis.server.impl.LeaderState.updateSenders(LeaderState.java:254) > ... > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (RATIS-100) Test multiple raft groups with a state machine
[ https://issues.apache.org/jira/browse/RATIS-100?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-100: -- Attachment: r100_20170811.patch r100_20170811.patch: some minor changes. Needs RATIS-103; otherwise, some tests may fail. > Test multiple raft groups with a state machine > -- > > Key: RATIS-100 > URL: https://issues.apache.org/jira/browse/RATIS-100 > Project: Ratis > Issue Type: Test >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r100_20170804.patch, r100_20170809b.patch, > r100_20170809c.patch, r100_20170809.patch, r100_20170810.patch, > r100_20170811.patch, r100_no_leader_case.log > > > We propose to add a test similar to > ReinitializationBaseTest.runTestReinitializeMultiGroups(..) with a state > machine so that it can test if the states are recorded correctly. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Resolved] (RATIS-103) LeaderState.updateSenders may throws UnsupportedOperationException
[ https://issues.apache.org/jira/browse/RATIS-103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze resolved RATIS-103. --- Resolution: Fixed Fix Version/s: 0.2.0-alpha Thanks Jing and Elek for taking a look! I have committed this. > LeaderState.updateSenders may throws UnsupportedOperationException > -- > > Key: RATIS-103 > URL: https://issues.apache.org/jira/browse/RATIS-103 > Project: Ratis > Issue Type: Bug >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze >Priority: Minor > Fix For: 0.2.0-alpha > > Attachments: r103_20170811b.patch, r103_20170811.patch > > > The CopyOnWriteArrayList may not work well in LeaderState since it does not > support remove. > RaftReconfigurationBaseTest.testRemovePeers() fails with > UnsupportedOperationException. > {code} > Exception in thread "Thread-102" java.lang.UnsupportedOperationException > at > java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1176) > at > org.apache.ratis.server.impl.LeaderState.updateSenders(LeaderState.java:254) > ... > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (RATIS-93) Filter peers from the iteration before random selection
[ https://issues.apache.org/jira/browse/RATIS-93?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16082979#comment-16082979 ] Tsz Wo Nicholas Sze commented on RATIS-93: -- Just have pushed an amend commit for fixing the wrong import. {code} commit 9ed2652d298f5b9f77f8d866bbc829f215418be9 (HEAD -> master, origin/master, origin/HEAD) Author: Tsz-Wo Nicholas SzeDate: Tue Jul 11 13:59:19 2017 -0700 Amend previous commit of RATIS-93: replace netty ThreadLocalRandom import with Java ThreadLocalRandom. diff --git a/ratis-common/src/main/java/org/apache/ratis/util/CollectionUtils.java b/ratis-common/src/main/java/org/apache/ratis/util/CollectionUtils.java index 2fdb502..d8eb674 100644 --- a/ratis-common/src/main/java/org/apache/ratis/util/CollectionUtils.java +++ b/ratis-common/src/main/java/org/apache/ratis/util/CollectionUtils.java @@ -20,9 +20,8 @@ package org.apache.ratis.util; -import org.apache.ratis.shaded.io.netty.util.internal.ThreadLocalRandom; - import java.util.*; +import java.util.concurrent.ThreadLocalRandom; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.StreamSupport; {code} > Filter peers from the iteration before random selection > --- > > Key: RATIS-93 > URL: https://issues.apache.org/jira/browse/RATIS-93 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze >Priority: Minor > Fix For: 0.2.0-alpha > > Attachments: r93_20170710.patch > > > When randomly selecting a peer, we first copy the peer list and then select a > peer in a loop indefinitely until a new peer is found. > We could first filter the peers when copying the list. Then, we can > eliminate the loop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Resolved] (RATIS-93) Filter peers from the iteration before random selection
[ https://issues.apache.org/jira/browse/RATIS-93?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze resolved RATIS-93. -- Resolution: Fixed Fix Version/s: 0.2.0-alpha Thanks Jing for reviewing the patch. I have committed this. > Filter peers from the iteration before random selection > --- > > Key: RATIS-93 > URL: https://issues.apache.org/jira/browse/RATIS-93 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze >Priority: Minor > Fix For: 0.2.0-alpha > > Attachments: r93_20170710.patch > > > When randomly selecting a peer, we first copy the peer list and then select a > peer in a loop indefinitely until a new peer is found. > We could first filter the peers when copying the list. Then, we can > eliminate the loop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (RATIS-93) Filter peers from the iteration before random selection
[ https://issues.apache.org/jira/browse/RATIS-93?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-93: - Attachment: r93_20170710.patch r93_20170710.patch: 1st patch. > Filter peers from the iteration before random selection > --- > > Key: RATIS-93 > URL: https://issues.apache.org/jira/browse/RATIS-93 > Project: Ratis > Issue Type: Improvement >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze >Priority: Minor > Attachments: r93_20170710.patch > > > When randomly selecting a peer, we first copy the peer list and then select a > peer in a loop indefinitely until a new peer is found. > We could first filter the peers when copying the list. Then, we can > eliminate the loop. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (RATIS-97) Leader may not have majority after setConfiguration
Tsz Wo Nicholas Sze created RATIS-97: Summary: Leader may not have majority after setConfiguration Key: RATIS-97 URL: https://issues.apache.org/jira/browse/RATIS-97 Project: Ratis Issue Type: Bug Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze Here is an example: Suppose a group has 3 servers and one of them is the leader. Use setConfiguration to add 6 more servers. The leader is still running as a leader although it does not has majority anymore. The 6 new servers may elect a new leader among them. Finally, there are two leaders in the group. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (RATIS-96) LeaderState computeLastCommitted may throw ArrayIndexOutOfBoundsException
[ https://issues.apache.org/jira/browse/RATIS-96?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-96: - Attachment: r96_20170720.patch r96_20170720.patch: when the indices array is empty, skip update last committed index. > LeaderState computeLastCommitted may throw ArrayIndexOutOfBoundsException > - > > Key: RATIS-96 > URL: https://issues.apache.org/jira/browse/RATIS-96 > Project: Ratis > Issue Type: Bug >Reporter: Tsz Wo Nicholas Sze > Attachments: r96_20170720.patch > > > {code} > java.lang.ArrayIndexOutOfBoundsException: 0 > at > org.apache.ratis.server.impl.LeaderState.computeLastCommitted(LeaderState.java:490) > at > org.apache.ratis.server.impl.LeaderState.updateLastCommitted(LeaderState.java:400) > at > org.apache.ratis.server.impl.LeaderState.handleEvent(LeaderState.java:329) > at > org.apache.ratis.server.impl.LeaderState.access$500(LeaderState.java:48) > {code} > This happens when followers is empty and not includeSelf == false. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Resolved] (RATIS-80) Add "Apache" to maven project.name
[ https://issues.apache.org/jira/browse/RATIS-80?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze resolved RATIS-80. -- Resolution: Fixed Thanks Enis for reviewing. I have committed this. > Add "Apache" to maven project.name > -- > > Key: RATIS-80 > URL: https://issues.apache.org/jira/browse/RATIS-80 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r80_20170427.patch > > > Currently, all the project names start with "Ratis". We should change the > name prefix to "Apache Ratis". -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-80) Add "Apache" to maven project.name
[ https://issues.apache.org/jira/browse/RATIS-80?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-80: - Attachment: r80_20170427.patch r80_20170427.patch: 1st patch. > Add "Apache" to maven project.name > -- > > Key: RATIS-80 > URL: https://issues.apache.org/jira/browse/RATIS-80 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r80_20170427.patch > > > Currently, all the project names start with "Ratis". We should change the > name prefix to "Apache Ratis". -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-80) Add "Apache" to maven project.name
Tsz Wo Nicholas Sze created RATIS-80: Summary: Add "Apache" to maven project.name Key: RATIS-80 URL: https://issues.apache.org/jira/browse/RATIS-80 Project: Ratis Issue Type: Sub-task Reporter: Tsz Wo Nicholas Sze Assignee: Tsz Wo Nicholas Sze Currently, all the project names start with "Ratis". We should change the name prefix to "Apache Ratis". -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-83) Add a DISCLAIMER file
[ https://issues.apache.org/jira/browse/RATIS-83?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-83: - Attachment: r83_20170428.patch r83_20170428.patch: adds DISCLAIMER.txt > Add a DISCLAIMER file > - > > Key: RATIS-83 > URL: https://issues.apache.org/jira/browse/RATIS-83 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r83_20170428.patch > > > We also need a DISCLAIMER file according to > http://incubator.apache.org/guides/branding.html#disclaimers -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (RATIS-63) Add NOTICE.txt
[ https://issues.apache.org/jira/browse/RATIS-63?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze resolved RATIS-63. -- Resolution: Fixed Fix Version/s: 0.1.0-alpha Thanks Jing for reviewing it. I have committed this. > Add NOTICE.txt > -- > > Key: RATIS-63 > URL: https://issues.apache.org/jira/browse/RATIS-63 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Fix For: 0.1.0-alpha > > Attachments: r63_20170412.patch > > > According to [Licensing > Documentation|http://www.apache.org/legal/release-policy.html#licensing-documentation], > we need a NOTICE file. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-65) Add a script to automate the release process
[ https://issues.apache.org/jira/browse/RATIS-65?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze updated RATIS-65: - Attachment: r65_20170427.patch r65_20170427.patch: adds a script to generate source release tar.gz > Add a script to automate the release process > > > Key: RATIS-65 > URL: https://issues.apache.org/jira/browse/RATIS-65 > Project: Ratis > Issue Type: Sub-task >Reporter: Tsz Wo Nicholas Sze >Assignee: Tsz Wo Nicholas Sze > Attachments: r65_20170427.patch > > > As suggested by [~enis] below, we should add a script to automate the release > process. > {quote} > On an unrelated note, what can help us for driving frequent releases is to > have a script to drive the release process. I think we should do something > like this: > https://github.com/apache/hbase/blob/master/dev-support/make_rc.sh. > {quote} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-78) Ratis does not compile in Intellij
[ https://issues.apache.org/jira/browse/RATIS-78?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15983084#comment-15983084 ] Tsz Wo Nicholas Sze commented on RATIS-78: -- Thanks, Jing! > Ratis does not compile in Intellij > -- > > Key: RATIS-78 > URL: https://issues.apache.org/jira/browse/RATIS-78 > Project: Ratis > Issue Type: Bug >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: RATIS-78.000.patch > > > Currently the ratis code base cannot get compiled in Intellij because the > Forked Tomcat Native cannot get located. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (RATIS-78) Ratis does not compile in Intellij
[ https://issues.apache.org/jira/browse/RATIS-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tsz Wo Nicholas Sze resolved RATIS-78. -- Resolution: Fixed I have committed this. > Ratis does not compile in Intellij > -- > > Key: RATIS-78 > URL: https://issues.apache.org/jira/browse/RATIS-78 > Project: Ratis > Issue Type: Bug >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: RATIS-78.000.patch > > > Currently the ratis code base cannot get compiled in Intellij because the > Forked Tomcat Native cannot get located. -- This message was sent by Atlassian JIRA (v6.3.15#6346)