Commit graph

722 commits

Author SHA1 Message Date
Sears Russell
4e100479d1 Add TarrayListDealloc() to arrayList. Remove one region allocation from each array list alloc. Add unit test for dealloc.
Also, removed some old compensations cruft.
2010-02-18 04:12:39 +00:00
Sears Russell
adfecfada3 Fix LSN handling in loadUninitializedPage() 2010-02-18 04:11:22 +00:00
Sears Russell
ba3179710b Suppress shutdown warning when empty transactions are automatically rolled back. 2010-02-17 05:10:30 +00:00
Sears Russell
98e0cb1fab implement TregionSize(), add TregionForce() 2010-02-12 16:44:28 +00:00
Sears Russell
c440f7ad62 fix typo in uncompiled code 2010-02-11 22:18:17 +00:00
Sears Russell
078d518bb6 cleaned up some lsn-free stuff 2010-02-11 21:21:31 +00:00
Sears Russell
757a877c84 added VALGRIND_MODE 2010-02-11 21:18:26 +00:00
Sears Russell
1ff9afb753 added new constant: INVALID_SIZE 2010-02-11 20:36:33 +00:00
Sears Russell
fac5d2ff37 fix default LSN handling for pages with headers 2010-02-11 20:35:38 +00:00
Sears Russell
9bdaf23764 add some more thread-safe pblHt wrappers to fix lockManager 2010-01-23 00:27:01 +00:00
Sears Russell
031e21fa6c fix race condition introduced by last commit 2010-01-22 23:52:57 +00:00
Sears Russell
3e2bbc2eb6 move lsn sets into reserve_entry. write_entry is now a no-op 2010-01-22 23:41:10 +00:00
Sears Russell
bb182ee0b0 fix new truncation check; it was using values for the old copy of the log to check the new copy. 2010-01-22 19:13:14 +00:00
Sears Russell
49979ffa52 unit test for libredblack 2010-01-21 23:48:43 +00:00
Sears Russell
51dc17d1c3 fail earlier on mismatched truncation file. One run of check_multiplexer saw truncation leave a zero byte log 2010-01-21 23:48:04 +00:00
Sears Russell
bb92d86c85 fix check_lockManager. The lock manager now relies on a global mutex to protect its hashtables. Eventually, it should be ported over to the concurrentHash API (or something more general purpose...) 2010-01-21 22:43:38 +00:00
Sears Russell
434cec1b6a fix for regression in r1335. nextUnstableLSN needs to point to the beginning of a valid log entry. Add sizeof(lsn_t) to its computation so that we point at the beginning of the next entry, not to its size 2010-01-21 22:30:02 +00:00
Sears Russell
17ac09c652 fix deadlock in check_multiplexer. 2010-01-21 21:53:18 +00:00
Sears Russell
e2498b62be fix deadlock; reorderingHandle was acquiring a write latch while writing a log entry, leading to an inconsistent latch ordering 2010-01-21 21:05:25 +00:00
Sears Russell
dbf253275f fix nested top action log race; because of a refactoring mistake, it was releasing a mutex without acquiring it... 2010-01-21 20:27:35 +00:00
Sears Russell
5f705a4463 skip the log force when TforceCommits() is called and the entire log has already been forced. The old behavior generated a redundant CRC entry and force wrote it. 2010-01-21 18:42:50 +00:00
Sears Russell
f2ee7b6573 fix bug exposed by new group commit behavior; nextUnstableLSN was returning the offset of the beginning of the CRC entry, not the end of it. This was causing an assertion to fail. 2010-01-21 18:28:34 +00:00
Sears Russell
250223086c reordered includes for compatibility with gcc3 2010-01-21 00:03:17 +00:00
Sears Russell
b1f7d1947a more log refactoring. safeWrites now holds a latch across reserve_entry, write_entry, and write_entry_done 2010-01-19 02:14:09 +00:00
Sears Russell
18508fd2f1 fix stasis_log_force and groupForce to handle INVALID_LSN properly; instead of bypassing group force in LOG_FORCE_COMMIT mode, they now unconditionally group commit. This allows TforceCommits() to take advantage of group commit 2010-01-19 01:54:53 +00:00
Sears Russell
19061227b3 fix recovery corner case; it is possible that Tdealloc() is called before the regions are registered with the allocator 2010-01-19 01:48:17 +00:00
Sears Russell
c8cc188b71 unsigned int -> uint32_t 2010-01-19 01:47:13 +00:00
Sears Russell
560cdc2330 fix compiler warning 2010-01-11 23:13:53 +00:00
Sears Russell
46b428547d fix log entry leak in redorderingHandle 2010-01-11 23:07:08 +00:00
Sears Russell
022136d3c3 move inMemoryLog, to the new api 2010-01-11 22:55:55 +00:00
Sears Russell
67b8808739 fix flex test 2010-01-11 21:00:46 +00:00
Sears Russell
d71e248291 removed freeLogEntry 2010-01-11 20:41:59 +00:00
Sears Russell
44e5e8b4fc Refactor regions to avoid hack during startup. It used to allocate a dummy log entry, then free it. This causes trouble with the upcoming log api, since the log implementation will need to manage log entry memory for performance reasons. 2010-01-07 21:57:13 +00:00
Sears Russell
f3d06543e5 silence spammy debugging messages; clean up check_io test case implementation a bit 2010-01-06 23:44:07 +00:00
Sears Russell
078a8619fe check flex version (fixes compilation under rhel 5) 2010-01-06 23:43:31 +00:00
Sears Russell
1af589dd18 remove malloc and memcpy from the in_memory_log read path 2009-12-31 23:25:56 +00:00
Sears Russell
1409a9eb27 more refactoring; log handles now manage their log entries memory 2009-12-31 23:01:37 +00:00
Sears Russell
a5788688c8 refactor getUpdateArgs; remove a bunch of casts, fix a bunch of warnings 2009-12-31 20:20:47 +00:00
Sears Russell
1c82f9e76e add parens to ambiguous if 2009-12-31 19:47:27 +00:00
Sears Russell
9aa1d9d652 pull memcpy out of allocUpdateEntry() 2009-12-31 19:30:40 +00:00
Sears Russell
32e40c949d added log modes to sequentialThroughput benchmark, added methods for concurrent appends to log api (and stubbed them out) 2009-12-31 19:02:34 +00:00
Sears Russell
69c513b913 some untested code to deal with perl hashes 2009-12-31 17:39:35 +00:00
Sears Russell
7ff80f37ef add deferred, end of transaction callbacks. addresses issue 15 2009-12-15 06:30:37 +00:00
Sears Russell
dfe83a215d reorder initialization code so that the i/o backend stuff happens all at once 2009-12-09 19:56:19 +00:00
Sears Russell
a6bd46fef5 revert commit to referential that breaks build on machines without libcheck 2009-12-09 19:46:08 +00:00
Sears Russell
ed1ed5fcf2 perl unit tests are now automatically run 2009-12-08 23:17:17 +00:00
Sears Russell
83a0ec68fe fix rose bit rot, have unintialized page clear the impl pointer (for tidyness), remove some resolved @todos. 2009-12-04 19:33:09 +00:00
Sears Russell
2e237f2e2b fix memory allocation bug in rose benchmark initialization code 2009-12-04 19:26:23 +00:00
Sears Russell
16372e46d2 fix warning + problem with tdestroy() detection 2009-11-30 19:38:35 +00:00
Sears Russell
85c8e9f82c initial openbsd port 2009-11-29 06:57:16 +00:00
Sears Russell
2ff421bff0 initial opensolaris port 2009-11-29 03:22:36 +00:00
Sears Russell
1d7e60dbd0 fix more automake build errors 2009-11-24 18:42:44 +00:00
Sears Russell
2535f69fbc switch the concurrent hash to use lru->getStaleAndRemove; fix crashes due to partial leak of thread local pages on thread shutdown 2009-11-24 01:43:36 +00:00
Sears Russell
dd0c96a8a7 fixed implementation of hashtable_test_and_set 2009-11-24 01:32:59 +00:00
Sears Russell
675bdce24a wrote some wrappers that emulate redblack; default to stl tree for now 2009-11-24 00:24:18 +00:00
Sears Russell
0f3902b34a fix build error 2009-11-23 23:04:01 +00:00
Sears Russell
0ae8267f2c cleaned up comparators; did not fix any bugs though 2009-11-10 02:15:58 +00:00
Sears Russell
07c3ad7979 less concurrent latching 2009-11-10 02:15:39 +00:00
Sears Russell
51911f79f2 fix compiler warning 2009-11-09 23:45:50 +00:00
Sears Russell
1b0c10b37b clean up handling of uninitialized pages (removes some special case code) 2009-11-09 23:02:27 +00:00
Sears Russell
b4a0f2436b concurrent lru implementation for new buffer manager 2009-11-09 20:53:05 +00:00
Sears Russell
8bd0616f97 new concurrent buffer manager 2009-11-09 19:50:00 +00:00
Sears Russell
f5e3ab2d91 concurrent hashtable seems to be working; still need to work out atomicity primitives (eg; options to leave the bucket locked on success) 2009-10-19 21:55:25 +00:00
Sears Russell
1cf16f62f2 add optional support for gcc atomics to transaction table 2009-10-15 22:46:25 +00:00
Sears Russell
e6a718a7f9 improved concurrency for transaction table 2009-10-15 20:11:43 +00:00
Sears Russell
5df5512d91 fixed unit test bug; logWriters may now return NULL when readers attempt to read before the beginning of the log 2009-10-15 18:48:58 +00:00
Sears Russell
331f680c09 partial rewrite of transaction table to reduce thread contention 2009-10-15 02:33:08 +00:00
Sears Russell
4565aff9de more refactoring; no more globals in transactionTable.c 2009-10-14 21:22:50 +00:00
Sears Russell
dbe3ecf0d0 refactoring transaction table; moved implementation into its own file. still need to remove globals 2009-10-14 18:57:50 +00:00
Sears Russell
20ef74b104 use pthread_rwlock instead of rwlock userspace emulation of it 2009-10-13 00:29:35 +00:00
Sears Russell
4cb618988d improve performance of noop transactions 2009-10-12 22:29:57 +00:00
Sears Russell
0e93a577c9 use INVALID_LSN instead of hardcoded -1 2009-10-12 22:26:32 +00:00
Sears Russell
5f55abfa23 add support for #!/usr/bin/env timer.pl 2009-10-12 22:25:55 +00:00
Sears Russell
20a3fe9df5 add support for soft commits, and making prior soft commits durable 2009-10-12 19:16:41 +00:00
Sears Russell
942ba7fffc bugfixes + support for hard limits on log size 2009-10-08 22:48:58 +00:00
Sears Russell
8c2ce5f56e fix typo 2009-10-06 00:12:39 +00:00
Sears Russell
6a02f2f159 buffer manager implementation is now determined by an overridable factory method 2009-10-05 22:39:09 +00:00
Sears Russell
24650fa190 buffer manager refactoring; started work on new dirty page table writeback interface (to avoid circular dependencies) 2009-10-05 21:19:01 +00:00
Sears Russell
8bf64aed58 fix compiler warning 2009-10-05 20:48:04 +00:00
Sears Russell
0a1ca5e1cc make compilation succeed on macosx; this will still run macs out of disk space. Also, it disables a number of binaries that probably should be supported on macs. 2009-10-02 00:45:10 +00:00
Sears Russell
95d0df4a36 ashok's patch - fix more realloc problems 2009-10-01 02:13:32 +00:00
Sears Russell
4689582cb5 improve log performance by disabling O_SYNC by default (and use fdatasync instead) 2009-09-12 16:20:13 +00:00
Sears Russell
e48bc7adf3 partial b-tree stuff 2009-09-10 21:02:56 +00:00
Sears Russell
6abdb3c1c1 fix deadlock in inMemoryLog 2009-08-31 00:51:45 +00:00
Sears Russell
75ed19556b Disable NAIVE_LOCKING in lhtable. (Should never have been enabled...) 2009-08-27 15:28:01 +00:00
Sears Russell
6562d6dd53 Add parens to comparators in allocationPolicy and dirtyPageTable. 2009-08-23 00:32:50 +00:00
Sears Russell
c4e80b41b5 more include cleaning on alloc, begin cleaning of bufferHash 2009-08-22 21:29:27 +00:00
Sears Russell
1ce1496226 dependency cleanups; removed compenastions from alloc.c 2009-08-22 00:01:02 +00:00
Sears Russell
94c542f8b1 Increase dirtyPageTable concurrency
Add special-casing of lhtable; special case for buffer manager.
2009-08-14 06:31:13 +00:00
Sears Russell
dd0bcae074 add thread synchronization logic to ensure that only one thread is performing writeback at a time. This fixes weird I/O interleavings on some machines 2009-08-13 23:18:49 +00:00
Sears Russell
0154f7d29d IMPORTANT API CHANGE: stasis_dirty_page_table_flush_range() no longer force writes to disk. You now need to call forcePageRange() after flush page range returns.
This commit should significantly improve sequential write thoughput.

I found a segfault bug this morning, but cannot reproduce.  Could be a heisenbug, or could have been a hardware fault (gojira repeatedly kernel paniced, then both problems went away...)
2009-08-13 05:53:48 +00:00
Sears Russell
0cc65aefaf Remove LRU-ordered writeback. Instead, writeback pages sequentially once some fraction of the page file is dirty. Also. further simplifies writeback code. 2009-08-11 17:23:43 +00:00
Sears Russell
0f2b2ff200 remove special write path in deinit. (instead, attempt to avoid random I/O on shutdown) 2009-08-08 16:07:20 +00:00
Sears Russell
a0f9a7bc81 Cleaned up page locking + a harmless memory bug. Add missing locks to page writeback. 2009-08-08 07:59:19 +00:00
Sears Russell
907a24b68e dirty page table flush was pinning pages, then asserting they were not pinned; updated page writeback api to allow correct usage 2009-08-08 01:43:03 +00:00
Sears Russell
c92ee87c32 improved behavior for sequential I/O performance, fixed races during writeback 2009-08-07 18:27:52 +00:00
Sears Russell
68e947fb6d added missing case to allocationPolicy 2009-08-07 17:26:40 +00:00
Sears Russell
a6aa8ed942 added method to access dirtyPageTable 2009-08-05 20:02:33 +00:00
Sears Russell
573cbaa98e implemented missing api calls 2009-08-05 19:56:35 +00:00
Sears Russell
69490f1c98 implement convention that stop=0 means flush to EOF 2009-08-05 19:50:07 +00:00