concread | Concurrently Readable Data Structures for Rust

 by   kanidm Rust Version: Current License: MPL-2.0

kandi X-RAY | concread Summary

kandi X-RAY | concread Summary

concread is a Rust library. concread has no bugs, it has a Weak Copyleft License and it has low support. However concread has 1 vulnerabilities. You can download it from GitHub.

In a multithread application, data is commonly needed to be shared between threads. In sharing this there are multiple policies for this - Atomics for single integer reads, Mutexs for single thread access, RwLock for many readers or one writer, all the way to Lock Free which allows multiple read and writes of queues. Lock Free however has the limitation of being built on Atomics. This means it can really only update small amounts of data at a time consistently. It also means that you don’t have transactional behaviours. While this is great for queues, it’s not so good for a tree or hashmap where you want the state to be consistent from the state to the end of an operation. In the few places that lock free trees exist, they have the properly that as each thread is updating the tree, the changes are visibile immediately to all other readers. Your data could change before you know it. Mutexs and RwLock on the other hand allow much more complex structures to be protected. The guarantee that all readers see the same data, always, and that writers are the only writer. But they cause stalls on other threads waiting to access them. RwLock for example can see large delays if a reader won’t yield, and OS policy can cause reader/writer to starve if the priority favours the other. Concurrently readable structures sit in between these two points. They provide multiple concurrent readers, with transactional behaviour, while allowing single writers to proceed simultaneously. This is achieved by having writers copy the internal data before they modify it. This allows readers to access old data, without modification, and allows the writer to change the data inplace before commiting. Once the new data is stored, old readers continue to access their old data - new readers will see the new data. This is a space-time trade off, using more memory to achieve better parallel behaviour.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              concread has a low active ecosystem.
              It has 56 star(s) with 4 fork(s). There are 5 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 5 open issues and 20 have been closed. On average issues are closed in 88 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of concread is current.

            kandi-Quality Quality

              concread has no bugs reported.

            kandi-Security Security

              concread has 1 vulnerability issues reported (0 critical, 0 high, 1 medium, 0 low).

            kandi-License License

              concread is licensed under the MPL-2.0 License. This license is Weak Copyleft.
              Weak Copyleft licenses have some restrictions, but you can use them in commercial projects.

            kandi-Reuse Reuse

              concread releases are not available. You will need to build from source code and install.
              Installation instructions are not available. Examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of concread
            Get all kandi verified functions for this library.

            concread Key Features

            No Key Features are available at this moment for concread.

            concread Examples and Code Snippets

            No Code Snippets are available at this moment for concread.

            Community Discussions

            No Community Discussions are available at this moment for concread.Refer to stack overflow page for discussions.

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install concread

            You can download it from GitHub.
            Rust is installed and managed by the rustup tool. Rust has a 6-week rapid release process and supports a great number of platforms, so there are many builds of Rust available at any time. Please refer rust-lang.org for more information.

            Support

            Please open an issue, pr or contact me directly by email (see github).
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/kanidm/concread.git

          • CLI

            gh repo clone kanidm/concread

          • sshUrl

            git@github.com:kanidm/concread.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link