Samy Al Bahra
fdc2061935
regressions/ck_ring: Always treat buffer as opaque.
11 years ago
Samy Al Bahra
f9ae05b15a
regressions/ck_ring: Drop template variants.
11 years ago
Samy Al Bahra
b6a1914085
ck_ring: Prefer treatment of ck_ring_buffer_t as an opaque type.
11 years ago
Samy Al Bahra
b6f085a62e
ck_ring: Minor style change.
11 years ago
Samy Al Bahra
e6c0ef01a5
ck_spinlock: Revert previous change, do not splice too early.
11 years ago
Olivier Houchard
2b08211d60
regressions: Mark the core variable as unused, to appease the compiler.
11 years ago
Samy Al Bahra
e8b26ec212
ck_spinlock: Minor readability changes to ck_hclh.
11 years ago
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
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
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