Commit graph

355 commits

Author SHA1 Message Date
Sears Russell
466c58a141 Shortened test so that it can terminate in a reasonable amount of time. 2008-09-29 14:20:43 +00:00
Sears Russell
0ec7af69a2 fixed locking bugs, cleanup, added diagnostic messages 2008-09-29 04:30:21 +00:00
Sears Russell
ff0887624c Simplified the page locking conventions.
Added paranoid calls to assertlock() to page.c

Fixed race in abort():

 - pick CLR LSN

 - release page lock

 - someone else updates page

 - lock page

 - apply undo
2008-09-28 05:50:59 +00:00
Sears Russell
6d17442380 Major refactoring:
- Changed operations to take only two arguments
     - No more hacks regarding log argument sizes

     - Set pageid = INVALID_PAGE if you want a logical operation

  - Ported operation implementations to new api; exposed + fixed a number of concurrency bugs

  - More fixes to prepare

  - Fixed to nested top actions

  - More coherent operations api / recovery implmentation

  - TnaiveHash* and Tinstant* are (and were already) broken, and are set for removal

  - Removed some instances of fail_unless

  - Fixed design flaws in blob implementation.

  - New naming convention for operation callback functions.
2008-09-28 03:11:24 +00:00
Sears Russell
3da2d2b71c fix compile warnings 2008-09-28 01:45:18 +00:00
Sears Russell
41cd975e91 fixed new const warnings from gcc 2008-09-24 06:40:34 +00:00
Sears Russell
944c7e984f fixes / cleanups of Tprepare() 2008-09-24 03:08:32 +00:00
Sears Russell
afbd89e3ff All headers now live in the header directory. (stasis/, not src/stasis) 2008-04-13 04:02:57 +00:00
Sears Russell
034343737b Preliminary cmake build system (just enough for unit testing; misses lots of old code and benchmarks...) 2008-03-02 23:25:31 +00:00
Sears Russell
e49d51cb7e Clean up includes for new cmake build system. 2008-03-02 23:21:39 +00:00
Sears Russell
7dc83577c5 Make valgrind happy by zeroing out partially initialized struct. 2008-03-01 19:35:16 +00:00
Sears Russell
673f6b55d3 Allocation bugfixes 2008-02-29 18:03:32 +00:00
Sears Russell
0fc93d07d3 remove dead code. 2008-02-20 22:50:19 +00:00
Sears Russell
516410ef47 Don't register regions on behalf of another allocation manager (otherwise, recovery fails...) 2008-02-20 22:48:30 +00:00
Sears Russell
4fe834e37b Valgrind fixes / properly completes writes now. 2008-02-19 21:56:32 +00:00
Sears Russell
3c4b7f6601 lsmTree's page lookup semantics changed so that returns the page id that a tuple would be on. The test was written assuming the user passes in a tuple that
appears at the beginning of the page.
2007-11-09 20:05:40 +00:00
Sears Russell
7e2c37534e Partial implementation of a collection oriented interface for ROSE. (Checking in to create version to diff against.) 2007-11-01 20:09:55 +00:00
Sears Russell
4daffabdf3 Partially implemented this unit test. 2007-11-01 19:46:20 +00:00
Sears Russell
1e4f3937fd Fixed bug that only occurs during nightly (more thorough) regression runs; stack allocation was failing. 2007-10-30 16:26:29 +00:00
Sears Russell
e322ec2795 smoketest shouldn't call truncate if the handle doesn't support it. 2007-10-23 23:26:33 +00:00
Sears Russell
b167b98085 * Remove spurious warnings messages from tests that intentionally crash stasis.
* Move and rename lladd_autoTruncation flag to stasis_truncation_automatic in flags.c
2007-10-23 23:16:58 +00:00
Sears Russell
9b8fefe68d Added force() to the handle API. It is now called from tests, and by the buffer manager 2007-10-23 01:51:03 +00:00
Sears Russell
5df9fbdc9c Increased verbosity of output. 2007-10-22 20:48:12 +00:00
Sears Russell
7fb4fd4c1a Updated svn:ignore. 2007-10-03 01:52:41 +00:00
Sears Russell
c9bbf3af94 Converted page.h to follow new naming convention; documented new page api; begun stasis documentation cleanup. 2007-10-02 00:18:33 +00:00
Sears Russell
9c1c284406 Implemented range scans; lsmTree now supports keys that are stored as fixed length byte arrays. 2007-08-20 16:53:16 +00:00
Sears Russell
90f011b049 New access method for the buffer manager; write coalescing; runtime bufferManager selection and a few bufferManager bugfixes. 2007-08-20 16:23:57 +00:00
Sears Russell
8963d6d381 Fixed recordNext(), add unit test for recordNext() on slotted and fixed pages. 2007-08-20 16:04:44 +00:00
Sears Russell
9745d62887 Preliminary LSM tree implementation (hardcodes keys as ints for now) 2007-08-14 01:17:31 +00:00
Sears Russell
a773c4d8b7 Bugfixes and improved error handling for recovery tests and registerPageType() 2007-07-19 23:47:06 +00:00
Sears Russell
799300753c This test was broken by the pageLoaded / pageFlushed callbacks; it overwrote the page type with garbage, then stasis attempted to interpret the page type 2007-07-19 16:34:18 +00:00
Sears Russell
9fd91cffb8 Updated page api to handle page types that need to grab resources on record read/ write, or that perform callbacks when read / written to disk. 2007-07-18 20:09:14 +00:00
Sears Russell
356387eafe support "make install", and use libtool to generate .so, .a files. 2007-06-25 15:47:28 +00:00
no author
d0274c3304 Renamed 'lladd' directories and python module to 'stasis' 2007-06-11 21:36:57 +00:00
Sears Russell
4998e57566 Updated for the new page API 2007-06-07 21:53:09 +00:00
Sears Russell
b93ee3853b Ignore core dumps, and all the .log files 2007-06-01 22:22:36 +00:00
Sears Russell
dd7c6b857d Added assertlock() and call it when page implementations assume a page has already been latched. (Fixed
associated bugs as well)
2007-06-01 21:32:33 +00:00
Sears Russell
d1aeba8a82 Cleaned up obsolete @todo's; fixed inconsistent page file initialization 2007-06-01 21:06:18 +00:00
Sears Russell
951a897040 Add casts to prevent warnings on (upcoming changes to) recordRead, recordWrite 2007-05-31 22:40:19 +00:00
Sears Russell
bff22716a7 Updated page.h's interface to make it more consistent. 2007-05-31 01:15:12 +00:00
Sears Russell
15addf35aa Ignre
Ignore data files emitted by tests.
2007-05-30 18:38:47 +00:00
Sears Russell
84f0137d3e Added entries 2007-05-25 21:14:11 +00:00
Sears Russell
91cbaa607d Fixed compiler warning. 2007-04-21 20:35:37 +00:00
Sears Russell
662311e6ef Shortened test to prevent timeout on tardis. (It runs fast enough on my laptop; should figure out why
tardis performance is so poor...)
2007-04-21 05:48:27 +00:00
Sears Russell
22306e68ed reopen tests were unnecessarily and incorrectly init'ing the buffer manager. 2007-04-21 02:27:54 +00:00
Sears Russell
2b1ac8dbc0 Was init'ing buffer manager without de-init'ing it; Cleaned out old comments. 2007-04-20 07:14:19 +00:00
Sears Russell
362b1036de Changed CLR log format so that it is identical to update entries. The old format pointed back to an earlier
entry in the log, complicating truncation significantly.  The new format copies log entries into their CLRs,
and is somewhat redundant, as redo and undo information is stored in the CLR, but the undo information will
never be used...
2007-04-03 09:18:45 +00:00
Sears Russell
1fdaf05b11 Changed fail_unless() to assert(); fixed test that used '4' instead of XABORT. 2007-03-30 07:36:02 +00:00
Sears Russell
6df9f538f4 Randomized allocation test. 2007-03-27 22:07:13 +00:00
Sears Russell
039630df09 Cleaned up #includes a little. 2007-03-20 00:56:34 +00:00
Sears Russell
3ca1c30bce set 20 minute timeout. 2007-03-13 18:20:08 +00:00
Sears Russell
c439d3a111 Update for new API (need an extra field for getNode, setNode). 2007-03-13 09:56:39 +00:00
Sears Russell
59d59bde13 Increased timeout. (Maybe it'll stop timing out now. ;) 2007-03-13 08:43:41 +00:00
Sears Russell
2c6e674ab3 Streamlined bufferHash implementation, with new test-cases. 2007-03-11 07:55:00 +00:00
Sears Russell
2e288817ff Update for new replacement policy api 2007-03-11 07:53:32 +00:00
Sears Russell
15e77da1d4 more tests / bugfixes for buffermanager. 2007-03-10 01:29:43 +00:00
Sears Russell
eba02ee311 Balanced each call to Tinit() with a corresponding call to Tdeinit(). 2007-03-08 07:48:42 +00:00
Sears Russell
8f3d503ea8 Added TdurabilityLevel().
Test cases now pass with LOG_TO_MEMORY and BUFFER_MANAGER_MEM_ARRAY
2007-03-07 06:45:28 +00:00
Sears Russell
237bbe0fbe Added ability to override default bufferManager implementation with
-DUSE_BUFFER_MANAGER
2007-03-06 00:00:26 +00:00
Sears Russell
d2e3aea23e Fixed compiler warning. 2007-03-04 02:45:48 +00:00
Sears Russell
5650953c4f Added .cvsignore files. 2007-03-04 00:40:15 +00:00
Sears Russell
26e5aa3069 truncation.c no longer includes on pageFile.h 2007-03-04 00:36:45 +00:00
Sears Russell
078b45dbcc Removed and/or flagged #include dependencies on pageFile.h (in the process of further factoring bufferManager implementation out of Stasis.) 2007-03-03 02:26:17 +00:00
Sears Russell
60b505fbf9 More problematic seeds. 2007-03-03 01:56:05 +00:00
Sears Russell
b3152261b4 Xid -1 leads to illegal memory accesses. Added checks for it; fixed
problematic unit test.
2007-03-03 01:48:58 +00:00
Sears Russell
3884c8f6cd enabled some old tests 2007-03-03 01:46:06 +00:00
Sears Russell
006cd1e621 Moved roundUp/Down to 'static inline' in header; completed unit test's checks. 2007-02-12 07:54:32 +00:00
Sears Russell
1757eaeb03 Better return checking 2007-02-12 07:18:14 +00:00
Sears Russell
d2d631ff30 Rewrote pinnedRanges. 2007-02-07 03:04:19 +00:00
Sears Russell
fe30fbbd74 RangeTracker seems to be working; still need to write unit tests for its return value. 2007-02-06 02:32:01 +00:00
Sears Russell
99bcf8acd9 Randomized test; bugfixes 2007-01-25 22:38:22 +00:00
Sears Russell
c2fa9913b1 Added partial implementation of range tracking for pinning arbitrary
regions.  Currently, tracks regions, and is O(m log(n)) for each
operation, where m is the number of transition points per range, and n
is the number of transition points in the system.  A transition point is
a place in memory where the pincount changes.
2007-01-24 01:03:52 +00:00
Sears Russell
f522aab6ad Typo (misspelled logfile name) 2006-12-14 02:53:55 +00:00
Sears Russell
4e4461a193 check.h contains the work "end", which is #defined by the compenstaion stuff; moved check.h to be the first include. 2006-11-22 05:05:58 +00:00
Sears Russell
3c3ccd9df7 Uncommented the file and memory tests. 2006-11-22 05:03:32 +00:00
Sears Russell
4520f672ac The test sometimes calls append, append, truncate, where the first append terminates after the append, and returns EDOM. Check for this, and allow the test to pass. 2006-11-21 06:49:16 +00:00
Sears Russell
cb90e015a1 Fixed printf warnings 2006-11-10 19:32:44 +00:00
Sears Russell
b8d0ccce79 Modularized the build; made berkeleydb and confuse optional. No longer build as many things by default. 2006-11-09 23:00:50 +00:00
Sears Russell
6efa862485 Fixed 64->32bit cast warnings. 2006-11-07 22:36:46 +00:00
Sears Russell
c86688884a Updates for 32-bit x86. There are still real 32-bit bugs being emitted as compiler warnings. 2006-11-07 20:36:59 +00:00
Sears Russell
8481e9cdd6 non_blocking is closer to working (it now flushes writes out in the background). This required some api changes. It still passes unit tests, but it's losing data on close()... 2006-10-28 03:33:02 +00:00
Sears Russell
faf55911df Added non-blocking io implementation. It doesn't actually work yet, but it passes the unit tests. ;) 2006-10-26 05:48:30 +00:00
Sears Russell
10b77729f5 Simple (blocking, poor truncation performance) file handle implementation. 2006-10-18 00:57:36 +00:00
Sears Russell
f2e7a6b3a8 Fixed bug (assert was calling a handle method with an outstanding read buffer). 2006-10-17 03:28:24 +00:00
Sears Russell
45ef627c49 Updated to build check_io.c 2006-10-13 09:03:32 +00:00
Sears Russell
80a4148543 First cut at a new io API, with an in-memory reference implementation + test case. 2006-10-13 04:39:03 +00:00
Sears Russell
e81bf95553 Added a 10 minute timeout. 2006-10-07 00:26:18 +00:00
Sears Russell
1575d97a6b Fixed recovery bug. TregionDealloc was being called during redo(), causing an assert to fail. Without the
assert, would have gone into infinite recursion.
2006-10-05 22:08:42 +00:00
Sears Russell
a3e3ad2453 Added a 20 minute timeout to prevent deadlocks and other problems from blocking the test. 2006-10-05 01:00:10 +00:00
Sears Russell
8092fcb5a5 Made test longer again. (The group commit signal strangeness was preventing it from terminating...) 2006-10-05 00:52:41 +00:00
Sears Russell
fce66d97f5 Less output for short tests; removed obsolete "rm blob[01]_file.txt" 2006-10-04 04:44:49 +00:00
Sears Russell
61c6c6ec2c Fixed compile warning. 2006-10-04 04:43:17 +00:00
Sears Russell
6e222e6259 Cleaned comments, output. 2006-10-04 04:34:23 +00:00
Sears Russell
58c99d52ba cleaned comments, output 2006-10-04 04:29:57 +00:00
Sears Russell
9169bfc075 Cleaned up comments and output. 2006-10-04 04:27:24 +00:00
Sears Russell
963b0d2b30 Updated for new logger API. 2006-10-04 04:22:31 +00:00
Sears Russell
8d93f9d7a9 More thorough multithreading, and truncation, re-opening tests. 2006-10-04 04:21:53 +00:00
Sears Russell
20060a099c Quieter output. 2006-10-04 03:48:08 +00:00
Sears Russell
f9eb6657b9 Simplistic checks to make sure log closes and reopens correctly. 2006-10-03 01:51:14 +00:00
Sears Russell
36157b5a51 Fixes for inMemoryLog 2006-09-27 20:37:56 +00:00
Sears Russell
17b21aedfa updates for new logger API. 2006-09-27 20:35:30 +00:00
Sears Russell
3dc35ff20d removed mysterious LSN = 0 lines. 2006-09-27 20:35:08 +00:00
Sears Russell
25d415decb Another attempt to avoid running out of space... 2006-09-26 20:22:20 +00:00
Sears Russell
fc4c22ec8a Fixed compile warning. 2006-09-25 22:33:52 +00:00
Sears Russell
986ee57020 More fixes to prevent tardis from running out of disk space. 2006-09-25 22:27:13 +00:00
Sears Russell
e434c35203 shortened test so that tardis will stop running out of space... 2006-09-13 19:53:45 +00:00
Sears Russell
32d21cd398 Fixed compiler warning... 2006-08-11 19:36:46 +00:00
Sears Russell
b615f0bc3e Towards 64-bit pageids. bufferManager can handle 64-bit offsets, but recordid.page is still 32 bit... 2006-08-11 19:31:42 +00:00
Sears Russell
33ca0d3254 Fix memory leak; initialize p.lockCount (for debugging) 2006-08-11 00:02:16 +00:00
Sears Russell
f74df8a0fe Test is more stringent now; it runs in roughly the same amount of time
becase pageFile.c is no longer using O_DIRECT.
2006-08-10 23:35:21 +00:00
Sears Russell
c413203ec8 Talloc() now reuses space when possible. It still needs to call slottedCompact() intelligentally. Also, allocationPolicy should support an extra tier
of pages, so it doesn't suggest ones that aren't already in the buffer pool unless it has to.
2006-07-29 00:56:54 +00:00
Sears Russell
78f7b5a12e Added tests for concurrent transactions + aborts(). Still doesn't test
latching, as it is single threaded.
2006-07-27 00:16:24 +00:00
Sears Russell
62abe94bf5 added fsckRegions(), and call it from the unit tests. 2006-07-25 22:23:15 +00:00
Sears Russell
89b45da869 Fixed a bunch of gcc type punned pointer warnings. 2006-07-25 21:14:33 +00:00
Sears Russell
35b0978859 Removed some debugging output. 2006-07-22 00:00:19 +00:00
Sears Russell
715f9c4395 Shorter runs for interactive unit testing. 2006-07-21 23:58:32 +00:00
Sears Russell
0725af91be Fixed page leak in Talloc(). 2006-07-21 01:07:09 +00:00
Sears Russell
3d8a5dbcd2 Unit test for region allocator. 2006-07-20 21:54:32 +00:00
Sears Russell
ffd3bd960b switched to region allocator, but TpageAlloc currently grabs its own region... 2006-07-20 01:29:39 +00:00
Sears Russell
eabb8010f4 minor change to aid in debugging 2006-06-21 00:41:47 +00:00
Sears Russell
c8c9b7af19 the logger understands special record types. (At least partially...); shortened blob tests, since the blob
implementation is fundamentally broken, and slow
2006-06-20 23:02:27 +00:00
Sears Russell
0c6c0ec50b Removed pbl header; fixed makefile bugs and the compilation warnings
they obscured.
2006-06-20 22:05:45 +00:00
Sears Russell
6485a4aae9 No more PBL. 2006-06-20 21:44:17 +00:00
Sears Russell
bbe16e3a59 Allow blob count to be set independently of record count 2006-06-20 21:41:39 +00:00
Sears Russell
5de8c9fc6e Changed test case output to avoid spurious errors in flamebox 2006-06-20 20:48:28 +00:00
Sears Russell
e14877821f Fixed blob bug. The reason it's so slow is that it's logging a preimage + postimage of each blob and then synchronously writing to a second copy each time the blob is
written to(!!!)
2006-06-20 00:03:38 +00:00
Sears Russell
dc8a3e5d60 Eliminated slottedPreRalloc 2006-06-16 00:05:44 +00:00
Sears Russell
ffac2d6362 minor changes to check_mutliplexer. It still doesn't work on multicore. 2006-06-15 22:30:27 +00:00
Sears Russell
50515ffd23 More steps toward factoring page allocation out of record allocation. 2006-06-15 05:31:20 +00:00
Sears Russell
59bd80a2a8 half-hearted attempt to fix -Wextra warnings... 2006-06-13 23:58:04 +00:00
Sears Russell
a3678aad5c Now AM_CFLAGS can be set by modifying GLOBAL_CFLAGS in the root
Makefile.am
2006-06-13 22:48:50 +00:00
Sears Russell
f53a46e788 removed heisenbug 2006-06-13 22:47:38 +00:00
Sears Russell
014c1e3e75 removed derefereneced void* 2006-06-13 22:47:04 +00:00
Sears Russell
164f84a533 fixed compiler warning. 2006-06-12 22:51:14 +00:00
Sears Russell
cef9e2c4ce Added settings for longer-running tests 2006-06-12 22:45:41 +00:00
Sears Russell
fd19036843 Added more complete hashtable test; fixed incorrect return value in LH_ENTRY(find) 2006-05-31 00:37:56 +00:00
Sears Russell
6138c77306 Documentation fix 2006-05-31 00:37:23 +00:00
Sears Russell
1d9f7b314f Added -fno-strict-aliasing to the CFLAGS for the unit tests... This is
easier than making all this code -O2 clean...  (The rest of lladd now
compiles without warning under -O2, so this seems like a good
tradeoff...)
2006-05-25 22:50:28 +00:00
Sears Russell
c45b384b3b was passing unitialized pointer into pthread_join... 2006-05-25 22:49:19 +00:00
Sears Russell
fda416090b Fixed a bunch of 'easy' warnings 2006-05-25 00:02:46 +00:00
Sears Russell
229a296f54 Disabled timeout; fixed compilation warning. 2006-05-24 23:25:01 +00:00
Sears Russell
03b5c12fdd test file for linear hash 2006-05-24 02:26:54 +00:00
Sears Russell
2e06cafaa8 2006-05-24 02:19:04 +00:00
Sears Russell
4c168d8fb2 Fixed truncation bugs, and a minor test case bug. 2006-05-22 23:59:02 +00:00
Sears Russell
ef43d5e4ce Implemented log truncation. 2006-04-14 03:45:26 +00:00
Sears Russell
c1d8906d28 removed memcpy() calls from inMemoryLog; added "const" qualifier to many LogEntry pointers. 2006-04-11 02:20:21 +00:00
Sears Russell
7decae7172 All tests that pass with LOG_TO_FILE now pass with LOG_TO_MEMORY, but LOG_TO_MEMORY is slow, and seems to be
killing malloc's performance for some reason.  (linearHashNTA spends many seconds in free() between unit
tests...)
2006-04-08 00:05:09 +00:00
Sears Russell
d3d7f2c788 Implemented "LOG_TO_MEMORY", which mostly works (linear hash NTA goes into an infinite loop....) 2006-04-07 03:40:40 +00:00
Sears Russell
91381bffc2 Switched from mixture of int and lsn_t to lsn_t 2006-04-04 23:00:08 +00:00
Sears Russell
ced022d0fe partial fixes 2006-03-28 20:15:31 +00:00