Samy Al Bahra
6faceae8ad
ck_ht: Make deprecation official.
10 years ago
Samy Al Bahra
03915998a8
ck_ht: Defer version counter increment to re-use.
...
This has been on the TODO for a while and helps reduce
read-side retries. It also has the advantage of providing
true wait-freedom on insertion (including termination safety).
10 years ago
Samy Al Bahra
48b407f396
ck_ht: Several critical bug fixes (impacts TSO).
...
The tombstone and version counter update invariant was not respected
in all necessary places.
- If a concurrent load operation is preempted after observing
the version counter and key field of a slot, then the slot is moved
and re-used by another key-value pair, the load operation would
observe an inconsistent pair without the relevant version counter
update.
- On RMO architectures, a store fence was missing on the delete path
(tombstone placement must always be followed by version counter
update).
10 years ago
Samy Al Bahra
b1acbf1b0a
ck_ht: Set floor to cacheline entries.
10 years ago
Samy Al Bahra
c72686f06b
ck_rhs: Set size floor to cacheline entries.
10 years ago
Samy Al Bahra
f9a127fffb
Merge branch 'master' of https://github.com/concurrencykit/ck
10 years ago
Samy Al Bahra
db58fe870a
ck_hs: Set floor to cache line entries.
10 years ago
Phil Sorber
887f4a510d
ck_ht: Fix build warnings on 32bit platforms.
10 years ago
Samy Al Bahra
22e00af6f5
ck_hs: Drop legacy atomic operations.
10 years ago
Samy Al Bahra
0dfd145aa6
whitespace: Update Copyright messages.
10 years ago
Samy Al Bahra
7d70240449
general: First pass cast qualifier warning fixes.
10 years ago
Olivier Houchard
677a901ded
ck_rhs: Realign comments correctly.
10 years ago
Olivier Houchard
70e59219bc
ck_rhs: Use CK_RHS_MAX_RH instead of hardcoding 512.
10 years ago
Samy Al Bahra
b3f374cb55
ck_epoch: Allow for deferral from callbacks.
...
This makes things much easier in cases where deferral is mixed
with other reclamation mechanisms such as reference counters.
10 years ago
Olivier Houchard
3aa63b3912
ck_rhs: Implement ck_rhs_apply, similarly to what has been done in ck_hs.
11 years ago
Samy Al Bahra
384e8048eb
whitespace: Remove extraneous lines.
11 years ago
Samy Al Bahra
744b525528
ck_hs: Account for deletions in apply accounting.
11 years ago
Samy Al Bahra
d6ba2a6273
whitespace: Sweeping whitespace changes.
...
Removing trailing whitespaces and newlines.
11 years ago
Samy Al Bahra
29db80432f
ck_hs: Remove redundant whitespace (whitespace).
11 years ago
Samy Al Bahra
d167c417a4
ck_hs: Merge post-insertion logic into one function.
11 years ago
Samy Al Bahra
bc0618e1b4
ck_hs: Add ck_hs_apply function for in-band mutation.
...
Allows for the application of a user-specified function to avoid
re-probe for get conditional put / delete and in-band mutation
use-cases.
11 years ago
Samy Al Bahra
84cd66b2ed
build: ck_rhs was not properly included in Makefile.
11 years ago
Olivier Houchard
20f082797f
ck_rhs: Change a check from == to >=
...
wanted_probe can't ever be > to map->probe_maximum, but static analyzers can't
know this, so consider it a potential bug.
11 years ago
Samy Al Bahra
fa7ab0760d
ck_rhs: Remove inline from put_internal.
11 years ago
Wez Furlong
9c6b95c4dc
add --with(out)?-pic configure options
...
This makes configure smell more like standard configure scripts and
easier for larger build systems to control the nature of the build.
When building non-pic, don't build the shared object, as a non-pic
shared object doesn't make a huge amount of sense.
11 years ago
Samy Al Bahra
b97b0021f9
ck_barrier: Just pass-through tournament barrier with only one participating thread.
11 years ago
Samy Al Bahra
8f0b88afeb
ck_rhs: Localized style(9) clean-up.
11 years ago
Samy Al Bahra
76e43825a7
Merge remote-tracking branch 'origin/cognet'
11 years ago
Olivier Houchard
efc88a5af5
ck_rhs: style(9)
11 years ago
Olivier Houchard
8f1ea8043b
ck_rhs: Use inlined functions instead of gruesome macros.
11 years ago
Samy Al Bahra
20b98dc271
ck_rhs: Additional clean-up.
11 years ago
Samy Al Bahra
ddab0f1820
ck_rhs: Remove unnecessary parentheses.
11 years ago
Samy Al Bahra
6d26a2b4da
ck_rhs: Move probe function to right namespace.
...
Sleep deprivation...
11 years ago
Samy Al Bahra
0e0fca638f
ck_rhs: Various clean-up.
11 years ago
User Doginou
eaff3ac2b3
ck_rhs: remove debugging printfs
11 years ago
User Doginou
59cedf10c6
ck_rhs: Add a read mostly mode.
...
Add a read-mostly mode, in which entries won't share cache lines with
associated datas (probes, probe_bound, etc).
This makes write operations slower, but make get faster.
11 years ago
Olivier Houchard
0f908f1e31
ck_hrs: Update probe_bound for every slot shifted.
...
In ck_rhs_do_backward_shift_delete(), find if any entry with the same hash
is stored further, and if not, update probe_bound for every entry being
shifted, instead of just doing it for the slot being emptied.
11 years ago
Samy Al Bahra
9d40e6b52f
ck_ht: Optimize ck_ht_gc for empty tables.
11 years ago
Samy Al Bahra
3339b2eb22
ck_hs: Optimize GC for empty sets.
11 years ago
Samy Al Bahra
1fe1ed1d60
ck_ht: Fix typo in ck_ht_gc for direct mode.
11 years ago
Olivier Houchard
e47caab029
ck_rhs: Increase CK_RHS_G from 2 to 1024, since it's used a lot more.
11 years ago
Olivier Houchard
bf686c0a42
ck_rhs: Add.
...
Introduce ck_rhs, a variant of ck_hs that uses the robin hood algorithm for
insertion, and backward shift delete for deletion.
11 years ago
Samy Al Bahra
c197b37df1
legal: Update Copyright statements.
11 years ago
Samy Al Bahra
92d662fa5e
ck_hs: Simplification of probe sequence limit.
11 years ago
Samy Al Bahra
2c2d7fab90
ck_hs: Tombstone probe limit modification is absolutely unnecessary.
...
Premature commit.
11 years ago
Samy Al Bahra
355bd611b4
ck_hs: Short-circuit more aggressively in put_unique.
11 years ago
Samy Al Bahra
afe696cc2f
ck_hs: Utilize probe bounds on write operations.
11 years ago
Samy Al Bahra
ec79ea0b2d
ck_hs: Use slot bound limit for ck_hs_fas operation.
11 years ago
Samy Al Bahra
822b842d1e
ck_ht: Fix bug in ck_ht_gc and backport garbage collector improvements from ck_hs.
11 years ago
Samy Al Bahra
e8969ad66f
ck_hs: More aggressive clean-up in ck_hs_gc.
...
* Reset maximum value when doing full scan.
* Reset per-slot bounds to 0 when possible.
11 years ago