Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Thread-safe (lock-free) maps #18

Open
1 of 2 tasks
kirillDanshin opened this issue Dec 21, 2016 · 3 comments
Open
1 of 2 tasks

Thread-safe (lock-free) maps #18

kirillDanshin opened this issue Dec 21, 2016 · 3 comments
Assignees

Comments

@kirillDanshin
Copy link
Collaborator

kirillDanshin commented Dec 21, 2016

We want to get rid from using mutex when working with maps.
We need to fix concurrent read/write in maps.
To do that we need to remove throws about concurrent write/read-write, fix growWork and evacuate() and write as many as possible tests for maps.

  • basic implementation
  • tests
@kirillDanshin kirillDanshin self-assigned this Dec 21, 2016
@kirillDanshin kirillDanshin added this to the Goodlang First release milestone Dec 21, 2016
@bcmills
Copy link
Contributor

bcmills commented Feb 2, 2017

See also golang/go#18177.

@kirillDanshin
Copy link
Collaborator Author

@bcmills thanks. glad to see that Golang team is working on this.
notice, that this issue is about replacing maps to its thread-safe and lock-free implementation, so it's not about adding something, it's about fixing original implementation while saving backward compatibility.
but, as you can see here, Go will not support thread-safe lock-free map implementation. but I'll do.

@kirillDanshin
Copy link
Collaborator Author

kirillDanshin commented Feb 2, 2017

also, about the status of this issue. now I'm testing it in my stage and production environments, there's no data corruptions, no panics etc, so I think it's ready.

upd: when I'm done with testing, I'll push the implementation, and I should write some tests (about 50-100 should be enough).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants