You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ratis.apache.org by Josh Elser <jo...@gmail.com> on 2018/08/06 22:14:58 UTC

Replicated-List example

In the spirit of the Replicated-Map (RATIS-51), I tried my hand at 
making a simple StateMachine that could give some basic List-like 
functionality.

Client/test: 
https://github.com/joshelser/incubator-ratis/blob/rlist/ratis-replicated-list/src/test/java/org/apache/ratis/rlist/RListTest.java

StateMachine: 
https://github.com/joshelser/incubator-ratis/blob/rlist/ratis-replicated-list/src/main/java/org/apache/ratis/rlist/RListStateMachine.java

Is something like this useful for new developers in the core codebase? I 
was pretty much copy-pasting stuff from other examples (arithmetic, 
filestore, rmap), so I am worried that I might contribute to "death by 
example" :)

Let me know what you think of it and if you see any problems with it. My 
unit test passes, but that's the only amount of testing I've done with 
it! I tried to leave comments for myself (and others), but there's some 
more I want to start digging into now to better understand it all.

- Josh

Re: Replicated-List example

Posted by Anu Engineer <ae...@hortonworks.com>.
For Ozone, it is very useful to get Replicated-Map completed and hosted as first-class object inside RATIS.
That would allow Ozone/HDDS to take dependency on Replicated Map. Right now, it seems to be an internal Ratis only object.

Thanks
Anu


On 8/6/18, 3:15 PM, "Josh Elser" <jo...@gmail.com> wrote:

    In the spirit of the Replicated-Map (RATIS-51), I tried my hand at 
    making a simple StateMachine that could give some basic List-like 
    functionality.
    
    Client/test: 
    https://github.com/joshelser/incubator-ratis/blob/rlist/ratis-replicated-list/src/test/java/org/apache/ratis/rlist/RListTest.java
    
    StateMachine: 
    https://github.com/joshelser/incubator-ratis/blob/rlist/ratis-replicated-list/src/main/java/org/apache/ratis/rlist/RListStateMachine.java
    
    Is something like this useful for new developers in the core codebase? I 
    was pretty much copy-pasting stuff from other examples (arithmetic, 
    filestore, rmap), so I am worried that I might contribute to "death by 
    example" :)
    
    Let me know what you think of it and if you see any problems with it. My 
    unit test passes, but that's the only amount of testing I've done with 
    it! I tried to leave comments for myself (and others), but there's some 
    more I want to start digging into now to better understand it all.
    
    - Josh