[jira] [Resolved] (RATIS-62) Return the Exception from StateMachine#preAppendTransaction to client as StateMachineException
[ https://issues.apache.org/jira/browse/RATIS-62?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jing Zhao resolved RATIS-62. Resolution: Fixed Fix Version/s: 0.1.0-alpha Thanks for the review, Mingliang! I've committed the patch. > Return the Exception from StateMachine#preAppendTransaction to client as > StateMachineException > -- > > Key: RATIS-62 > URL: https://issues.apache.org/jira/browse/RATIS-62 > Project: Ratis > Issue Type: Bug >Reporter: Jing Zhao >Assignee: Jing Zhao > Fix For: 0.1.0-alpha > > Attachments: RATIS-62.000.patch > > > This is a TODO in RaftServerImpl#appendTransaction. The IOException thrown by > {{applyLog}} is actually from the {{StateMachine#preAppendTransaction}}. This > exception should be return to RaftClient as a {{StateMachineException}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-62) Return the Exception from StateMachine#preAppendTransaction to client as StateMachineException
[ https://issues.apache.org/jira/browse/RATIS-62?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15951717#comment-15951717 ] Mingliang Liu commented on RATIS-62: +1 > Return the Exception from StateMachine#preAppendTransaction to client as > StateMachineException > -- > > Key: RATIS-62 > URL: https://issues.apache.org/jira/browse/RATIS-62 > Project: Ratis > Issue Type: Bug >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: RATIS-62.000.patch > > > This is a TODO in RaftServerImpl#appendTransaction. The IOException thrown by > {{applyLog}} is actually from the {{StateMachine#preAppendTransaction}}. This > exception should be return to RaftClient as a {{StateMachineException}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-62) Return the Exception from StateMachine#preAppendTransaction to client as StateMachineException
[ https://issues.apache.org/jira/browse/RATIS-62?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jing Zhao updated RATIS-62: --- Attachment: RATIS-62.000.patch Upload the patch. > Return the Exception from StateMachine#preAppendTransaction to client as > StateMachineException > -- > > Key: RATIS-62 > URL: https://issues.apache.org/jira/browse/RATIS-62 > Project: Ratis > Issue Type: Bug >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: RATIS-62.000.patch > > > This is a TODO in RaftServerImpl#appendTransaction. The IOException thrown by > {{applyLog}} is actually from the {{StateMachine#preAppendTransaction}}. This > exception should be return to RaftClient as a {{StateMachineException}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Assigned] (RATIS-62) Return the Exception from StateMachine#preAppendTransaction to client as StateMachineException
[ https://issues.apache.org/jira/browse/RATIS-62?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jing Zhao reassigned RATIS-62: -- Assignee: Jing Zhao > Return the Exception from StateMachine#preAppendTransaction to client as > StateMachineException > -- > > Key: RATIS-62 > URL: https://issues.apache.org/jira/browse/RATIS-62 > Project: Ratis > Issue Type: Bug >Reporter: Jing Zhao >Assignee: Jing Zhao > > This is a TODO in RaftServerImpl#appendTransaction. The IOException thrown by > {{applyLog}} is actually from the {{StateMachine#preAppendTransaction}}. This > exception should be return to RaftClient as a {{StateMachineException}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (RATIS-62) Return the Exception from StateMachine#preAppendTransaction to client as StateMachineException
[ https://issues.apache.org/jira/browse/RATIS-62?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jing Zhao updated RATIS-62: --- Summary: Return the Exception from StateMachine#preAppendTransaction to client as StateMachineException (was: Wrap the Exception thrown by StateMachine#preAppendTransaction as StateMachineException and return the exception in RaftClientReply) > Return the Exception from StateMachine#preAppendTransaction to client as > StateMachineException > -- > > Key: RATIS-62 > URL: https://issues.apache.org/jira/browse/RATIS-62 > Project: Ratis > Issue Type: Bug >Reporter: Jing Zhao > > This is a TODO in RaftServerImpl#appendTransaction. The IOException thrown by > {{applyLog}} is actually from the {{StateMachine#preAppendTransaction}}. This > exception should be return to RaftClient as a {{StateMachineException}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (RATIS-62) Wrap the Exception thrown by StateMachine#preAppendTransaction as StateMachineException and return the exception in RaftClientReply
Jing Zhao created RATIS-62: -- Summary: Wrap the Exception thrown by StateMachine#preAppendTransaction as StateMachineException and return the exception in RaftClientReply Key: RATIS-62 URL: https://issues.apache.org/jira/browse/RATIS-62 Project: Ratis Issue Type: Bug Reporter: Jing Zhao This is a TODO in RaftServerImpl#appendTransaction. The IOException thrown by {{applyLog}} is actually from the {{StateMachine#preAppendTransaction}}. This exception should be return to RaftClient as a {{StateMachineException}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (RATIS-52) Refactor RaftUtils into different classes
[ https://issues.apache.org/jira/browse/RATIS-52?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15951388#comment-15951388 ] Enis Soztutar commented on RATIS-52: bq. I think for this patch we can do the code refactoring work only, i.e., only moving the existing reflection-related methods out of RaftUtils.java Fair enough. Let me commit the fixed version without new code. > 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-fix.patch, 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] [Resolved] (RATIS-10) Add retry cache support in raft peers for client requests
[ https://issues.apache.org/jira/browse/RATIS-10?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jing Zhao resolved RATIS-10. Resolution: Fixed Fix Version/s: 0.1.0-alpha Most of the work has been done for the retry cache. We can resolve it now. > Add retry cache support in raft peers for client requests > - > > Key: RATIS-10 > URL: https://issues.apache.org/jira/browse/RATIS-10 > Project: Ratis > Issue Type: Improvement >Reporter: Jing Zhao >Assignee: Jing Zhao >Priority: Critical > Fix For: 0.1.0-alpha > > > We need retry cache support on Raft servers to correctly handle client's > retry requests. During leader re-election, a client may hit a > {{NotLeaderException}} while the request has been committed by the old > leader. The new leader should be able to correctly recognize the retry > request from the client. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (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:all-tabpanel ] Jing Zhao resolved RATIS-17. Resolution: Fixed Fix Version/s: 0.1.0-alpha I've committed this. > 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 > Fix For: 0.1.0-alpha > > 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-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&focusedCommentId=15950439#comment-15950439 ] Jing Zhao commented on RATIS-17: Thanks for the review, Nicholas! Since RATIS-52 got reopened, I will commit the 006 patch shortly :) > 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] [Updated] (RATIS-52) Refactor RaftUtils into different classes
[ https://issues.apache.org/jira/browse/RATIS-52?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jing Zhao updated RATIS-52: --- Attachment: ratis-52-fix.patch The bug was caused by the newly added methods in ReflectionUtils.java, and it's mainly because of the several varargs methods. I think for this patch we can do the code refactoring work only, i.e., only moving the existing reflection-related methods out of RaftUtils.java. And we can add new methods when they are used in the replicated map work. > 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-fix.patch, 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] [Comment Edited] (RATIS-52) Refactor RaftUtils into different classes
[ https://issues.apache.org/jira/browse/RATIS-52?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15950424#comment-15950424 ] Jing Zhao edited comment on RATIS-52 at 3/31/17 7:05 AM: - Ahh, I just fixed it... haha I will post my change here and maybe it's helpful for the later fix. was (Author: jingzhao): Ahh, I just fixed it... haha I will posted my change here and maybe it's helpful for the later fix. > 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-fix.patch, 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-52) Refactor RaftUtils into different classes
[ https://issues.apache.org/jira/browse/RATIS-52?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15950424#comment-15950424 ] Jing Zhao commented on RATIS-52: Ahh, I just fixed it... haha I will posted my change here and maybe it's helpful for the later fix. > 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)