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