vorner/contrie

Finishing the ConSet

Closed this issue · 3 comments

The master already contain the ConSet type, with basic set of methods. However, two things are missing:

  • Tests
  • Iterator related traits (Extend, .iter, IntoIter for reference and FromIter).

The ConSet type is very similar to the ConMap one, so the implementations of the above will end up being similar too. Few notable things:

  • The tests of ConMap also indirectly test the underlying implementation that is shared. There's no need to do as thorough tests once again with sets (like all the multi-threaded inserts). Few tests that try to call each method in one or two scenarios should be enough.
  • The ConMap Extend and FromIter work both on tuples (K, V) and prepared Arc<Element>s. The set has no such thing, they would simply take T directly.

If considering working on this, please write a comment to claim the issue (and specify if you want to tackle both or only one of the subtasks). It is fine to put into review in parts as smaller pull requests or as one bigger, as you prefer.

Don't hesitate to ask if you have any questions or want some help.

Hey @vorner , thank you for opening your project at GoodFirstIssues; I'm reading/studying a bit around the topic of concurrent data structures and I hope to get more understanding starting with some small contribution.

I still have to properly get into the details of the paper that you linked and of your implementation; needless to say it's already quite interesting.

There is some work-in-progress in #4; any comment is more than welcome and feel free to drop there any consideration. Thanks in advance.

You're welcome, I'll be glad to get some contributions :-).

As for studying, few notes:

  • These „good first issue“ tasks are meant to be possible without understanding the concurrent parts, they are hidden inside the raw module. Nevertheless, I'll appreciate if you read through the raw module as well ‒ and I'll be glad for any clarifications in the comments, pointing out of things that I've overlooked, etc, or even making the code more readable (which I'm less able to judge as he author).
  • My implementation is only inspired by the paper, but is simplified a lot. So I think it makes sense to read the implementation first and then proceed to the paper.

I'll get around to looking at the code soon, but I won't promise it'll be today (maybe, maybe not).

OK, this seems to be completed, so closing.

If anyone is looking for further easy tasks, I'll make sure to get around to creating few more soon.