Struct concread::hashmap::HashMap [−][src]
pub struct HashMap<K, V> where
K: Hash + Eq + Clone + Debug + Sync + Send + 'static,
V: Clone + Sync + Send + 'static, { /* fields omitted */ }Expand description
A concurrently readable map based on a modified B+Tree structured with fast parallel hashed key lookup.
This structure can be used in locations where you would otherwise us
RwLock<HashMap> or Mutex<HashMap>.
This is a concurrently readable structure, meaning it has transactional properties. Writers are serialised (one after the other), and readers can exist in parallel with stable views of the structure at a point in time.
This is achieved through the use of COW or MVCC. As a write occurs subsets of the tree are cloned into the writer thread and then commited later. This may cause memory usage to increase in exchange for a gain in concurrent behaviour.
Transactions can be rolled-back (aborted) without penalty by dropping
the HashMapWriteTxn without calling commit().
Implementations
Initiate a read transaction for the Hashmap, concurrent to any other readers or writers.
Initiate a write transaction for the map, exclusive to this writer, and concurrently to all existing reads.
Attempt to create a new write, returns None if another writer already exists.