Samy Al Bahra
c219593967
ck_spinlock: First round of improvements to ck_hclh.
...
* Drop unnecessary volatile stores.
* Use more expressive ck_pr_fence_X_Y semantics.
11 years ago
Samy Al Bahra
0e5ce1aae7
ck_spinlock: Simple whitespace changes (wrap long lines).
11 years ago
Olivier Houchard
0f92cbab08
ck_spinlock: Commit the missing HCLH bits.
11 years ago
Samy Al Bahra
3e47af544d
ck_hs: Silence false positive warning from older GCC versions.
11 years ago
Samy Al Bahra
ce7533e98a
regressions/ck_ht: Use random seed for ck_ht_gc.
11 years ago
Samy Al Bahra
6818335303
regressions/ck_ht: ck_ht_gc coverage.
11 years ago
Samy Al Bahra
aa0c303554
ck_ht: Add ck_ht_gc functionality, similar to ck_hs_gc.
...
This allows for incremental reprobe to shorten over-all probe sequences
in delete heavy workloads.
11 years ago
Olivier Houchard
e5f7639962
ck_spinlock: Add a HCLH implementation.
11 years ago
Olivier Houchard
3edb523da5
ck_ring: Move the ring buffer outside of the ck_ring_t
...
Remove the ring buffer from the struct ck_ring, it is now required to
explicitely pass the ring buffer for enqueue/dequeue. That can be useful for
systems with multiple address spaces.
11 years ago
Samy Al Bahra
554f11229e
ck_ht: Drop usage of ck_ht_t.
11 years ago
Olivier Houchard
4c878ff1de
regressions: Implement aff_iterate() for FreeBSD.
11 years ago
Olivier Houchard
b553f42fae
Reduce the memory size used for testing ck_fifo_mpmc, to make it easier for
...
low-memory machines (such as your typical arm hardware).
Approved by: mux (mentor)
11 years ago
Samy Al Bahra
7b49b3babf
doc: Add ck_hs_rebuild references.
11 years ago
Samy Al Bahra
2fe939c99d
doc: Add ck_hs_rebuild manual page.
11 years ago
Samy Al Bahra
30c05c49bc
doc: Add references to ck_hs_put_unique.
11 years ago
Samy Al Bahra
8d6de575cc
ck_ht: Style changes.
11 years ago
Samy Al Bahra
4954816d61
ck_ht: Predict empty slot to be likely on grow.
11 years ago
Samy Al Bahra
d204976c7a
ck_ht: Backport probe sequence from ck_hs.
11 years ago
Samy Al Bahra
ab1bd7688b
ck_internal: Use bsf for bsf_64 if available as a built-in.
11 years ago
Samy Al Bahra
7865d65fd3
doc: Add ck_hs_put_unique manual page.
11 years ago
Samy Al Bahra
b778a32b0e
Merge branch 'master' of git.concurrencykit.org:ck
11 years ago
Samy Al Bahra
f759f56dee
ck_hs: Style change.
11 years ago
Samy Al Bahra
566d0c68be
regressions/ck_hs: Move sliding window.
11 years ago
Samy Al Bahra
6d0b9fc4b7
ck_hs: Explicitly disallow tables of size smaller than L1 probe length.
11 years ago
Samy Al Bahra
abd504823d
ck_hs: Minor change for sake of readers.
11 years ago
Samy Al Bahra
3c1c91bd25
regressions: Update ck_hs_gc coverage.
11 years ago
Samy Al Bahra
0d6a0508cc
ck_hs: Allow for amortization and partial rebuild in ck_hs_gc.
11 years ago
Samy Al Bahra
69a3047012
ck_hs: Enable ck_hs_gc for resequencing in absence of DELETE workload.
11 years ago
Samy Al Bahra
956904c2ef
ck_hs: Enable necessary probe sequence optimization in ck_hs_gc.
11 years ago
Samy Al Bahra
895208d56f
ck_hs: Re-detect global maximum in GC and fix typo in remove.
11 years ago
Samy Al Bahra
cc6a7bf7bd
ck_hs: Remove useless mask in ck_hs_gc.
11 years ago
Samy Al Bahra
f085d75ff6
regressions/ck_hs: Performance coverage.
11 years ago
Samy Al Bahra
5f6cbabc4b
regressions/ck_hs: Serial coverage for rebuild.
11 years ago
Samy Al Bahra
f7eff4d61b
ck_hs: Add ck_hs_gc, mechanism for tombstone clean-up.
...
This is treated as an explicit garbage collection step
which will block writers.
11 years ago
Samy Al Bahra
5d4f9ae23d
ck_hs: Add ck_hs_rebuild operation.
...
This operation is short-hand notation for rebuilding
a hash table. This rebuild can occur in the presence
of concurrent readers and will require twice the amount
of memory of the existing hash table until completion.
11 years ago
Samy Al Bahra
25873e2641
Merge branch 'master' of git.concurrencykit.org:ck
11 years ago
Samy Al Bahra
c2f5ca52f6
regressions/ck_hs: Serial benchmark coverage for DELETE mode.
11 years ago
Samy Al Bahra
e87a4b78c9
ck_hs: Bound delete to local maxim.
11 years ago
Samy Al Bahra
aadae2bf13
regressions/ck_hs: Coverage for delete mode.
11 years ago
Samy Al Bahra
2ad920cd85
ck_hs: Add improved support for delete-heavy workloads.
...
This borrows from a technique described by Purcell and Harris
in "Non-blocking hashtables with open addressing" technical report.
Essentially, every slot will have an associated local probe maxim,
including tombstones. Highly aggressive workloads may still require
occassional garbage collection.
11 years ago
Samy Al Bahra
30d956d682
ck_hs: Re-order includes in header file.
11 years ago
Samy Al Bahra
84943b5787
ck_ht: Remove remnants of MPMC implementation from write-side probe.
11 years ago
Samy Al Bahra
fa9f3540fe
ck_hs: Various fixes for pointer comparison.
...
This abstracts away pointer packing tricks to a macro,
fixes comparison of pointers to occur in absence of
embedded values and improves robustness of pointer marshaling
for write-side operations for pointers that may already have
had pointer packing tricks played on them.
11 years ago
Samy Al Bahra
7355d0ea49
ck_internal: Fix bsf behavior.
11 years ago
Samy Al Bahra
f74c0eca62
ck_hs: Saturate to quadratic probe from double hashing.
...
This should primarily affect specific delete-heavy workloads.
11 years ago
Samy Al Bahra
f805ee746e
regressions: Coverage for ck_hs_put_unique.
11 years ago
Samy Al Bahra
a3532d52ce
ck_hs: Add ck_hs_put_unique function for fast-path unique inserts.
...
This function allows for faster insertions into tombstone-heavy
probe sequences by short-circuiting on tombstones rather than
continuing to probe. The user must already guarantee that the
entry being inserted is unique. If a non-unique key is inserted
with this operation, undefined behavior will result.
11 years ago
Samy Al Bahra
2dacc08443
ck_hs: Bump back to default linear probe length.
11 years ago
Samy Al Bahra
6e7ac5bee6
ck_hs: Increase linear probe factor to twice what it was.
...
This assumes adjacent sector prefetch and appears to have minimal
clustering effect. In addition to this, developers are free to define
their own linear probe length by defining CK_HS_PROBE_L1_SHIFT.
11 years ago
Samy Al Bahra
2769ce1a09
regressions/ck_hs: Add ck_hs tombstone stride workload to serial benchmark.
...
This measures clustering effect of tombstones on average probe sequence
length.
11 years ago