Commit graph

1063 commits

Author SHA1 Message Date
Bradley C. Kuszmaul
e832247e8e Add test for {{{sync_lock_test_and_set}}}. Refs #1738.
git-svn-id: file:///svn/toku/tokudb@11679 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:51 -04:00
Bradley C. Kuszmaul
03917acaf2 Add a test for the {{{__sync_lock_test_and_set}}} intrinsic. Refs #1738.
git-svn-id: file:///svn/toku/tokudb@11677 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:51 -04:00
Bradley C. Kuszmaul
3e024139cf Add a test for the {{{__sync_lock_test_and_set}}} intrinsic. Refs #1738.
git-svn-id: file:///svn/toku/tokudb@11676 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:51 -04:00
Bradley C. Kuszmaul
c2a17a61ff Add a test for the {{{__sync_lock_test_and_set}}} intrinsic. Refs #1738.
git-svn-id: file:///svn/toku/tokudb@11675 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:51 -04:00
Bradley C. Kuszmaul
f205dde77b Write better timing code for trylock. Refs #1738.
git-svn-id: file:///svn/toku/tokudb@11673 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:51 -04:00
Bradley C. Kuszmaul
a9b8ed234c Write better timing code for trylock. Refs #1738.
git-svn-id: file:///svn/toku/tokudb@11672 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:51 -04:00
Barry Perlman
0124e8fe7d Addresses #1736, #1398 Move extern declaration of STRADDLE_HACK_INSIDE_CALLBACK from cachetable.c to cachetable.h to allow build on Windows.
git-svn-id: file:///svn/toku/tokudb@11660 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:51 -04:00
Barry Perlman
646141a74c Addresses #1736, #1398 When inside straddle_hack callback don't use normal rwlock_read_lock for get_and_pin, but simply increment reader count instead. This prevents deadlock where callback waits for end_checkpoint to release write lock, but while end_checkpoint waits for callback to release read lock.
git-svn-id: file:///svn/toku/tokudb@11658 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:51 -04:00
Yoni Fogel
61a2a36b8c Addresses #1730 Put in attempted fix for race condition.
Closign and opening a cachefile is now threadsafe (race condition when trying to open during a close).
If race condition hits, it will stall the open till the close is done.
All opens are now single threaded.  This can be improved if it causes a bottleneck.

Added comments for possible future race conditions after lock refinement.

git-svn-id: file:///svn/toku/tokudb@11644 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:51 -04:00
Rich Prohaska
84cf612572 add interactive help to brtdump. closes #1732
git-svn-id: file:///svn/toku/tokudb@11637 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:51 -04:00
Yoni Fogel
482ff6bd1b Removed debug entry
git-svn-id: file:///svn/toku/tokudb@11569 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:51 -04:00
Yoni Fogel
09944a690e Closes #1693 Zombie brts pass off responsibilities to others.
When a new brt is open, it takes over responsibilities of all existing zombie brts, and closes them.
When a brt closes, if other brts exist, it passes off responsibilities and closes immediately.  It only becomes a zombie if no other brts exist.

(Everything above is in context of a single header).

git-svn-id: file:///svn/toku/tokudb@11533 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:51 -04:00
Barry Perlman
d06afaee2d Addresses #1510 Added some breadcrumbs to checkpoint function,
may be useful for debugging.  In any case, they're harmless.

git-svn-id: file:///svn/toku/tokudb@11410 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:50 -04:00
Yoni Fogel
46d1cde8f5 Addresses #1691 Further fixes to a race condition where refcounts in a cachefile were not protected by any lock.
See [11371] removed most of the causes of this (by limiting the places where refcount was edited).
Now (cachefile) refcounts are protected by the cachetable_lock.

git-svn-id: file:///svn/toku/tokudb@11408 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:50 -04:00
Yoni Fogel
35090f156a Addresses #1691 Fix bug where abort(truncate) could crash us.
Remove transactions' need to count references to cachefiles (they already have references to brts)
Errors in rolling back certain functions were ignored (r = blah; return something_else);
They are now reported, so diskfull had to be updated to expect ENOSPC under certain circumstances.

git-svn-id: file:///svn/toku/tokudb@11371 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:50 -04:00
Yoni Fogel
bba8a8a3c7 Addresses #1691 Txn that created or locked when empty is now per dictionary (in header instead of brt)
We clear it when the transaction closes (this means we cannot change it when it is already set till that transaction finishes).
This fixes a crash in windows in root_fifo_2.tdb

git-svn-id: file:///svn/toku/tokudb@11365 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:50 -04:00
Barry Perlman
d560f9c9a4 Addresses #1697 Incorrect value was used to set new file size
in logic that shrinks files (to free disk space) when possible.

git-svn-id: file:///svn/toku/tokudb@11340 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:50 -04:00
Yoni Fogel
91fd49318c Windows ports Addresses #1665
git-svn-id: file:///svn/toku/tokudb@11337 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:50 -04:00
Yoni Fogel
fe30f59982 Fix typo = -> ==
git-svn-id: file:///svn/toku/tokudb@11336 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:50 -04:00
Yoni Fogel
74efd7aa38 Addresses #1665 Windows port of minicron
git-svn-id: file:///svn/toku/tokudb@11334 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:49 -04:00
Yoni Fogel
358afe6814 Addresses #1692 Fixes the crash.
A memory leak is exposed by src/tests/root_fifo_1.c
It gets cleaned up when the transaction commits, but our VM could grow unbounded meanwhile

git-svn-id: file:///svn/toku/tokudb@11309 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:49 -04:00
Yoni Fogel
115a711093 Closes #1681, Closes #1682 two-header choosing logic is more robust
version now comes before 'size' in header
Some cleanup/defined new error codes instead of '-1'

git-svn-id: file:///svn/toku/tokudb@11304 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:49 -04:00
Yoni Fogel
c743484ba1 Addresses #1665 minicron-test is quiet unless verbose is on
git-svn-id: file:///svn/toku/tokudb@11302 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:49 -04:00
Yoni Fogel
c2d7fd1f8a Fixes #1686 Added ydb-level functions to get/set interval for automatic recurring checkpointing.
git-svn-id: file:///svn/toku/tokudb@11298 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:49 -04:00
Yoni Fogel
82a33bb35c Addresses #1683 Assert shutdown is not called twice on the same minicron
git-svn-id: file:///svn/toku/tokudb@11297 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:49 -04:00
Barry Perlman
79a2393ae5 Addresses #1510 Added callback to toku_checkpoint(), primarily intended for use in testing.
git-svn-id: file:///svn/toku/tokudb@11286 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:49 -04:00
Barry Perlman
fba0209490 Fixes #1683 Created separate toku_cachetable_minicron_shutdown() to be called when no locks are held. Note, toku_cachetable_close() still calls minicron_shutdown() if it was not already shut down to avoid rewriting tests.
git-svn-id: file:///svn/toku/tokudb@11285 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:49 -04:00
Yoni Fogel
aa12e43b83 Addresses #1683 Destroy lock when closing down.
git-svn-id: file:///svn/toku/tokudb@11282 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:49 -04:00
Yoni Fogel
a9d1268ecd Closes #1680 Moved assertion that cachefile is not in a checkpoint to when a cachefile actually closes
instead of just reducing reference count.

git-svn-id: file:///svn/toku/tokudb@11268 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Bradley C. Kuszmaul
d6ab1513e8 Merge the tokudb.1665 branch into the main line. Fixes #1665.
{{{
svn merge -r 11185:11261 https://svn.tokutek.com/tokudb/toku/tokudb.1665
}}}


git-svn-id: file:///svn/toku/tokudb@11264 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Yoni Fogel
faa3df9e03 Addresses #1670 fix bug in descriptor versino upgrades.
If descriptor contents stay the same but version goes up, record new version (instead of ignore it).


git-svn-id: file:///svn/toku/tokudb@11263 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Bradley C. Kuszmaul
17e5214663 Refs #1529.
git-svn-id: file:///svn/toku/tokudb@11223 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Bradley C. Kuszmaul
6855f750d5 Refs #1529.
git-svn-id: file:///svn/toku/tokudb@11222 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Bradley C. Kuszmaul
1ed3f26d65 Add #ident Id info to all the newbrt/*.c and newbrt/*.h files. Refs #1529.
git-svn-id: file:///svn/toku/tokudb@11221 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Bradley C. Kuszmaul
1c2996546d Merge in [11215], Refs #1672. Consolidate tdiff. Fixes #1673.
git-svn-id: file:///svn/toku/tokudb@11217 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Yoni Fogel
48245c848f Addresses #1670
Serialize descriptor with each brtnode (leaf and nonleaf) 
Deserialize descriptor with each brtnode (to be thrown away). 
    Don't malloc+memdup the descriptor for brtnodes, since that would waste time.




git-svn-id: file:///svn/toku/tokudb@11200 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Yoni Fogel
1b96373aca Addresses #1670 Standardized descriptor (de)serialization.
Added versioning to descriptor.
Changing a descriptor REQUIRES the version to increase.
Version 0 is reserved for a non-descriptor db. (cannot be set).
Not yet added to brtnodes.
Still possible to change descriptor with an open brt (which would not be upgraded).


git-svn-id: file:///svn/toku/tokudb@11198 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Bradley C. Kuszmaul
1a48d75807 Merge in the 1390 fixes, and delete 1390. Fixes #1390.
{{{
svn merge -r10820:HEAD https://svn.tokutek.com/tokudb/toku/tokudb.1390
}}}


git-svn-id: file:///svn/toku/tokudb@11192 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Yoni Fogel
5c108195c3 Addresses #1603 Root fifo is gone.
git-svn-id: file:///svn/toku/tokudb@11165 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Yoni Fogel
ca0865e525 Addresses #1603 Rollback of a bug introduced.
Do not compare idx and index in remove_txn and remove_brt.  idx is from the iterating OMT and index is from the other OMT.
There is no reason they should match, therefore do not assert that they should

git-svn-id: file:///svn/toku/tokudb@11164 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Yoni Fogel
abb505fadf Fix windows build, delete unused function.
git-svn-id: file:///svn/toku/tokudb@11158 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Yoni Fogel
60812ccbfe Addresses #1603 Row descriptor changed from DB->DBT to DB->DBT*
Will aid in having multiple DB handles to a single brt, which is needed to kill root fifo

git-svn-id: file:///svn/toku/tokudb@11157 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:48 -04:00
Yoni Fogel
6f213717c3 Addresses #1510 Improved concurrency of checkpoint (end) function
git-svn-id: file:///svn/toku/tokudb@11113 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:47 -04:00
Yoni Fogel
6561bd1af8 Addresses #1510 Final merge into main. Delete #1510 branch.
svn merge -r 11048:11110 ../tokudb.1510

git-svn-id: file:///svn/toku/tokudb@11112 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:47 -04:00
Yoni Fogel
b510293d32 Addresses #1651, #1510 Merge crash fix to main.
svn merge -r 11027:11048 ../tokudb.1510

git-svn-id: file:///svn/toku/tokudb@11060 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:47 -04:00
Yoni Fogel
60f7d6efd3 Addresses #1640 Reported toku_pthread_rwlocks to windows XP (merge from #1510)
git-svn-id: file:///svn/toku/tokudb@11028 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:47 -04:00
Yoni Fogel
631fe49fc1 Addresses #1510 Merge 1510 up to and including [11022]
Fixes windows build issues
Add checkpoint-safe fast truncate

git-svn-id: file:///svn/toku/tokudb@11023 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:47 -04:00
Yoni Fogel
8f2b0a7e11 Addresses #1510 Merge of 1510 (so far) back into main
Several fixes are included, particulary db remove after db truncate (with descriptor) does not crash anymore.
svn merge -r 10931:11019 ../tokudb.1510

git-svn-id: file:///svn/toku/tokudb@11020 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:47 -04:00
Yoni Fogel
0b981a3796 Addresses #1639 Can now remove (unnamed) old version dbs. Test included
git-svn-id: file:///svn/toku/tokudb@10925 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:47 -04:00
Yoni Fogel
de8165e246 Addresses #1510 Fix memory leak in end checkpoint
git-svn-id: file:///svn/toku/tokudb@10921 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:57:47 -04:00