Commit graph

404 commits

Author SHA1 Message Date
Sears Russell
397b0fa245 remove indirect page implementation 2009-07-07 20:03:52 +00:00
Sears Russell
2593de7a2c Move page type to Page_s struct. This breaks indirect.c (which is poorly thought out, and will be removed shortly), and was the next step on the road to segment-based recovery 2009-07-07 19:20:22 +00:00
Sears Russell
b66328192c in-memory group by implementation 2009-07-01 01:33:24 +00:00
Sears Russell
120665ae53 cleaned up arrayList. stasis_record_write no longer takes an LSN (it was ignoring it anyway). Added some missing calls to stasis_page_lsn_write (each time a page is written to, stasis_page_lsn_write should be called; this happens automatically for operations called via tupdate 2009-06-02 18:25:35 +00:00
Sears Russell
3cc48c4fc4 check for page leaks at shutdown; move myrandom() into check_includes.h, fix a number of page leaks / double frees 2009-05-30 02:23:17 +00:00
Sears Russell
8a95f5859d fixes Issue 8: When passed a prefix of an existing key, pageOrientedList will no longer treat the prefix and the existing key interchangably 2009-05-21 04:13:50 +00:00
Sears Russell
7db06197ca refactored truncation + dirty page table, fixed doxygen warnings. 2009-05-20 21:23:51 +00:00
Sears Russell
87218ad929 yet another refactoring; broke groupForce into its own module, removed more static variables and namespace violations 2009-05-13 18:04:53 +00:00
Sears Russell
bc554efc85 renamed some functions to match naming convention 2009-05-08 06:53:30 +00:00
Sears Russell
651a1a22e5 more refactoring; removed static variables from pageHandle.c 2009-05-08 04:56:34 +00:00
Sears Russell
7b4cf40221 refactored/created stasis_buffer_manager_open and stasis_handle_open 2009-05-07 08:52:06 +00:00
Sears Russell
b2ff81fc8e build / test fault_injection by default 2009-04-21 19:03:50 +00:00
Ashok Sudarsanam
2533dd921b fault injection tool for stasis 2009-04-21 18:34:46 +00:00
Sears Russell
434a5fdb55 build unit tests even if check is not installed 2009-04-18 04:57:07 +00:00
Sears Russell
02469fb735 remove dependency on the check unit test suite 2009-04-14 21:55:47 +00:00
Sears Russell
5bb8dbc2b9 centralized #include <check.h>, removed obsolete (uncompiled) unit test. 2009-04-14 20:21:05 +00:00
Sears Russell
731da7456a more eclipse refactoring; cleaned up some names, whitespace and documentation 2009-04-13 22:50:12 +00:00
Sears Russell
4b07b538a6 Renamed some methods; fixed bug that caused recovery to create potentially unbounded numbers of concurrent, active transactions.
(Note: this commit contains quite a few instances of auto-cleaned whitespace....)
2009-04-11 17:17:42 +00:00
Sears Russell
564dfe426b Renamed / refactored operation implementation + registration functions. Added support for third party operations 2009-03-31 05:02:54 +00:00
Sears Russell
83ad15b6d0 more benchmarks; transactions can now be multithreaded 2009-03-20 11:36:27 +00:00
Sears Russell
d413bb27f3 support for lsn-free writeback; partial benchmark code for submission 2009-03-19 03:36:13 +00:00
Sears Russell
b1f44ab005 added simplistic support for log reordering 2009-03-16 08:11:49 +00:00
Sears Russell
45a2410a25 add support for lsn-free set (but not alloc, etc...) 2009-03-15 07:21:37 +00:00
Sears Russell
bd2015443f expose nextAvailableLSN for lsn-free pages 2009-03-15 02:43:09 +00:00
Sears Russell
1a1268ac36 re-enable majority of linearHashNTA tests. (Ooops!) 2009-03-15 02:42:00 +00:00
Sears Russell
2ecc822561 more iterator tests 2009-03-15 02:14:03 +00:00
Sears Russell
5ba41bb3cb renamed logWriter.[ch] to safeWrites.[ch] 2008-12-29 20:01:37 +00:00
Sears Russell
6f809b00e2 renamed open/deleteLogWriter 2008-12-29 19:46:51 +00:00
Sears Russell
2dcc6598d2 added support for softcommit, and for compile / runtime configuration of stasis log + storefile locations 2008-12-01 22:45:32 +00:00
Sears Russell
17d4bb3ed4 log refactoring 2008-12-01 19:48:59 +00:00
Sears Russell
53a7982f47 fixes numerous blob bugs, allowing linearHashNTA to store arbitrary length key,value pairs. 2008-11-13 04:18:50 +00:00
Sears Russell
e842987915 check that TrecordSize() works for blobs. 2008-11-13 04:17:59 +00:00
Sears Russell
46fbfa3c35 Implement blob deallocation; add test case 2008-11-13 00:13:11 +00:00
Sears Russell
f5d1229941 Recovery now maintains XactionTable's state in the same way as forward operation.
Internal transactional2.c state is now declared static.
2008-11-13 00:06:35 +00:00
Sears Russell
484cd7fd38 fix new gcc compiler warnings 2008-11-11 01:15:25 +00:00
Sears Russell
fc5b5a2b29 do away with librw 2008-11-07 03:44:41 +00:00
Sears Russell
c7c729acfa Fix typo in last commit 2008-11-03 21:51:23 +00:00
Sears Russell
2c2c603dd2 all naive linear hash methods now start with TnaiveHash; removed references to ThashAlloc from documentation 2008-11-03 21:42:42 +00:00
Sears Russell
a20d28d369 removed dead code; added additional check for TpagedListInsert() 2008-10-04 07:18:25 +00:00
Sears Russell
42d779838e Check TarrayListLength() 2008-10-04 07:01:38 +00:00
Sears Russell
35216c4ee4 check ring buffer error handling, deallocation 2008-10-04 01:39:23 +00:00
Sears Russell
6354fe8a2f use pageid instead of int; Tupdate now takes a pageid instead of a recordid 2008-10-03 02:42:25 +00:00
Sears Russell
c0f7336772 fixed broken test cases 2008-10-03 02:41:14 +00:00
Sears Russell
5195eca7f9 fix pobj warning; add pobj tests to cmake 2008-10-02 07:15:35 +00:00
Sears Russell
545fe27019 increased test timeout 2008-10-01 17:59:16 +00:00
Sears Russell
4afe95cda7 unit test was setting page lsns to invalid values, breaking truncation 2008-10-01 15:57:29 +00:00
Sears Russell
defbcbfde1 Fixed bug in check_bufferManager.c. It wasn't marking pages dirty or setting LSN's. 2008-09-30 17:49:39 +00:00
Sears Russell
db1d79efcd Removed Tinstant* and broken logical hash stuff 2008-09-30 15:34:42 +00:00
Sears Russell
b91050755a Shortened tests again (hitting timeouts...) 2008-09-29 14:38:19 +00:00
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