junction.git
6 years agoFix #31: Entries can disappear when deleted key is reassigned during a migration
Jeff Preshing [Sat, 30 Dec 2017 16:33:49 +0000 (11:33 -0500)]
Fix #31: Entries can disappear when deleted key is reassigned during a migration

Bug was in the Mutator classes. In the Mutator constructor: If an existing
cell was found, and that cell's value was Redirect, Mutator::m_value was
assigned to Redirect. The constructor would then loop a second time.
On the second iteration of the loop, if no existing cell was found, a new
cell was inserted, but Mutator::m_value was left set to Redirect. This
left the Mutator in an inconsistent state, so that on the next exchangeValue(),
it thought there was a racing write to the same key (which there wasn't), and
neglected to write the new value.

Fix is to avoid ever setting Mutator::m_value to Redirect.

6 years agoUpdate README with rules about valid keys & values
Jeff Preshing [Thu, 23 Nov 2017 00:57:45 +0000 (19:57 -0500)]
Update README with rules about valid keys & values

6 years agoMerge pull request #28 from zuyu/readme-fix
Jeff Preshing [Fri, 21 Jul 2017 05:42:33 +0000 (01:42 -0400)]
Merge pull request #28 from zuyu/readme-fix

[README] Updated path for generated Turf config file.

6 years agoUpdated path for generated Turf config file.
Zuyu Zhang [Thu, 20 Jul 2017 04:13:42 +0000 (23:13 -0500)]
Updated path for generated Turf config file.

6 years agoMention limitation on value types in the README
Jeff Preshing [Fri, 21 Apr 2017 15:26:46 +0000 (11:26 -0400)]
Mention limitation on value types in the README

7 years agoFix minor typo in README.md
Jeff Preshing [Wed, 18 Jan 2017 03:23:35 +0000 (22:23 -0500)]
Fix minor typo in README.md

7 years agoMerge pull request #23 from mdw55189/issue-19
Jeff Preshing [Tue, 17 Jan 2017 13:19:14 +0000 (08:19 -0500)]
Merge pull request #23 from mdw55189/issue-19

Fixes #19.  Add destructor to ConditionBank.

7 years agoFixes #19. Add destructor to ConditionBank.
Matt Weiss [Mon, 16 Jan 2017 16:26:10 +0000 (10:26 -0600)]
Fixes #19.  Add destructor to ConditionBank.

Added a destructor to the ConditionBank class to deallocate the m_pair array.
Valgrind was used to test the shutdown of samples/MallocTest was clean.

Additional changes were needed in MallocTest to register with and update QSBR
so the table migration would be cleaned up.

7 years agoUpdate README to explicitly state that functions must be invertible (fix #16)
Jeff Preshing [Thu, 1 Dec 2016 16:34:18 +0000 (11:34 -0500)]
Update README to explicitly state that functions must be invertible (fix #16)

7 years agoReplace insert with assign to fix issue #15
Jeff Preshing [Thu, 25 Aug 2016 16:47:40 +0000 (12:47 -0400)]
Replace insert with assign to fix issue #15

7 years agoFixes for C++98
Jeff Preshing [Wed, 18 May 2016 18:19:40 +0000 (14:19 -0400)]
Fixes for C++98

8 years agoRename set() to assign()
Jeff Preshing [Mon, 14 Mar 2016 15:53:08 +0000 (11:53 -0400)]
Rename set() to assign()

Will avoid ambiguity when ConcurrentSets are added to Junction, and more
consistent with C++17's insert_or_assign.

8 years agoAdd SingleMap_Leapfrog
Jeff Preshing [Mon, 29 Feb 2016 18:40:25 +0000 (13:40 -0500)]
Add SingleMap_Leapfrog

8 years agoRename LeapFrog to Leapfrog
Jeff Preshing [Mon, 29 Feb 2016 13:59:57 +0000 (08:59 -0500)]
Rename LeapFrog to Leapfrog

8 years agoRename insert() to set() to avoid confusion with std::map::insert()
Jeff Preshing [Sun, 21 Feb 2016 18:38:01 +0000 (13:38 -0500)]
Rename insert() to set() to avoid confusion with std::map::insert()

std::map::insert() will only store the value if the key doesn't already exist.
junction::ConcurrentMap_xxx::set() stores the value unconditionally.

8 years agoRename SimpleRelaxed to Crude
Jeff Preshing [Thu, 18 Feb 2016 14:01:51 +0000 (09:01 -0500)]
Rename SimpleRelaxed to Crude

8 years agoAdd Rules and Behavior section to README
Jeff Preshing [Wed, 17 Feb 2016 22:18:33 +0000 (17:18 -0500)]
Add Rules and Behavior section to README

8 years agoFix compile error in SimpleRelaxed using C++11 atomics
Jeff Preshing [Tue, 16 Feb 2016 21:19:41 +0000 (16:19 -0500)]
Fix compile error in SimpleRelaxed using C++11 atomics

8 years agoMapLinearizabilityTest now uses SimpleRelaxed map by default
Jeff Preshing [Tue, 16 Feb 2016 20:37:33 +0000 (15:37 -0500)]
MapLinearizabilityTest now uses SimpleRelaxed map by default

Also fix incorrect classification of an IRIW history as non-linearizable

8 years agoAdd ConcurrentMap_SimpleRelaxed
Jeff Preshing [Tue, 16 Feb 2016 14:42:32 +0000 (09:42 -0500)]
Add ConcurrentMap_SimpleRelaxed

Nearly identical to http://preshing.com/20130605/the-worlds-simplest-lock-free-hash-table/

8 years agoAdd MapLinearizabilityTest
Jeff Preshing [Tue, 16 Feb 2016 02:06:23 +0000 (21:06 -0500)]
Add MapLinearizabilityTest

8 years agoEliminate redundant load in insert constructors
Jeff Preshing [Tue, 16 Feb 2016 01:54:07 +0000 (20:54 -0500)]
Eliminate redundant load in insert constructors

8 years agoCheck that Redirect is not passed to exchange()
Jeff Preshing [Mon, 15 Feb 2016 23:46:26 +0000 (18:46 -0500)]
Check that Redirect is not passed to exchange()

8 years agoRevert unneeded changes to LeapFrog and Grampa
Jeff Preshing [Mon, 15 Feb 2016 20:23:00 +0000 (15:23 -0500)]
Revert unneeded changes to LeapFrog and Grampa

Fix was only needed for Linear.

8 years agoFix possible infinite loop
Jeff Preshing [Thu, 11 Feb 2016 19:27:32 +0000 (14:27 -0500)]
Fix possible infinite loop

If the keys are badly distributed, beginTableMigration's estimatedInUse
may be too low. In extreme cases, exchangeValue could loop infinitely
migrating to the same size. Encountered once while testing
ConcurrentMap_Linear after previous commit.

Fix is to force a doubling on second loop iteration.

8 years agoImprove ConcurrentMap_Linear scalability
Jeff Preshing [Thu, 11 Feb 2016 17:27:24 +0000 (12:27 -0500)]
Improve ConcurrentMap_Linear scalability

Removed shared variable Table::valuesRemaining. Instead, detect and
handle overflows during migration, like ConcurrentMap_LeapFrog.

Added #defines to force migration overflows during testing:
JUNCTION_LINEAR_FORCE_MIGRATION_OVERFLOWS

6 cores runs ~57% faster on Win32.

8 years agoFix MSVC warnings with u64 keys
Jeff Preshing [Wed, 10 Feb 2016 13:59:29 +0000 (08:59 -0500)]
Fix MSVC warnings with u64 keys

8 years agoFixes for clang without -std=c++11
Jeff Preshing [Tue, 9 Feb 2016 19:21:01 +0000 (14:21 -0500)]
Fixes for clang without -std=c++11

8 years agoDon't copy CMake scripts to install folder
Jeff Preshing [Tue, 9 Feb 2016 01:18:01 +0000 (20:18 -0500)]
Don't copy CMake scripts to install folder

8 years agoImprove integration steps in README
Jeff Preshing [Tue, 9 Feb 2016 01:08:18 +0000 (20:08 -0500)]
Improve integration steps in README

8 years agoSimplify CMake scripts
Jeff Preshing [Tue, 9 Feb 2016 00:46:59 +0000 (19:46 -0500)]
Simplify CMake scripts

Delete FindTurf.cmake as it was more complicated than necessary.

8 years agoAdd project description to license
Jeff Preshing [Tue, 9 Feb 2016 00:45:30 +0000 (19:45 -0500)]
Add project description to license

8 years agoRun clang-format
Jeff Preshing [Sat, 6 Feb 2016 17:55:15 +0000 (12:55 -0500)]
Run clang-format

8 years agoMake Junction installable
Jeff Preshing [Sat, 6 Feb 2016 16:51:52 +0000 (11:51 -0500)]
Make Junction installable

8 years agoDelete JunctionProjectDefs.cmake; simplify AddSample.cmake and move it to samples
Jeff Preshing [Sat, 6 Feb 2016 04:37:33 +0000 (23:37 -0500)]
Delete JunctionProjectDefs.cmake; simplify AddSample.cmake and move it to samples

8 years agoAdd libcuckoo to test suite
Jeff Preshing [Tue, 2 Feb 2016 22:15:02 +0000 (17:15 -0500)]
Add libcuckoo to test suite

8 years agoDelete unused junction/Averager.h
Jeff Preshing [Tue, 2 Feb 2016 21:24:53 +0000 (16:24 -0500)]
Delete unused junction/Averager.h

8 years agoMerge pull request #1 from richardkogelnig/patch-1
Jeff Preshing [Mon, 1 Feb 2016 15:33:35 +0000 (10:33 -0500)]
Merge pull request #1 from richardkogelnig/patch-1

Fix turf github link

8 years agoFix turf github link
Richard Kogelnig [Mon, 1 Feb 2016 13:59:15 +0000 (14:59 +0100)]
Fix turf github link

8 years agoFix image links in README.md
Jeff Preshing [Mon, 1 Feb 2016 13:13:15 +0000 (08:13 -0500)]
Fix image links in README.md

8 years agoInitial commit
Jeff Preshing [Mon, 1 Feb 2016 13:09:52 +0000 (08:09 -0500)]
Initial commit