Sears Russell
9aa1d9d652
pull memcpy out of allocUpdateEntry()
2009-12-31 19:30:40 +00:00
Sears Russell
2ff421bff0
initial opensolaris port
2009-11-29 03:22:36 +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
07053987ef
speed up test a bit
2009-11-09 22:58:55 +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
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
4b2cfb2b23
fix latching bug in unit test
2009-10-15 17:45:43 +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
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
6a02f2f159
buffer manager implementation is now determined by an overridable factory method
2009-10-05 22:39:09 +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
4689582cb5
improve log performance by disabling O_SYNC by default (and use fdatasync instead)
2009-09-12 16:20:13 +00:00
Sears Russell
1ce1496226
dependency cleanups; removed compenastions from alloc.c
2009-08-22 00:01:02 +00:00
Sears Russell
3760fd1fea
Add missing page lock acquisition to unit test.
2009-08-08 07:52:02 +00:00
Sears Russell
4d2e70f9f3
Set appropriate timeout.
2009-08-08 07:50:06 +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
3243396cb4
add dirtyPageTable unit test
2009-08-05 19:51:46 +00:00
Sears Russell
5b10bcc63b
Reimplemented allocationPolicy.c; updated API + added more cases to the unit tests.
2009-08-05 06:35:11 +00:00
Sears Russell
beb14ec917
implemented timeouts
2009-07-30 23:16:15 +00:00
Sears Russell
ebd6b14dbf
single-page btrees are working
2009-07-29 21:03:16 +00:00
Sears Russell
0a308f035c
more header cleaning; updated INSTALL
2009-07-26 19:47:05 +00:00
Sears Russell
260310e151
Add page ops for tree implementations.
2009-07-26 06:18:54 +00:00
Sears Russell
7f2edd880d
New (more thorough, less frequent) tests for slotted pages. Renamed slotted methods, added microbenchmark for slotted pages.
2009-07-20 17:42:43 +00:00
Sears Russell
4493dbb88b
Added support for segment based recovery. For now, Stasis doesn't support hybrid recovery, so mixing page deallocation and segments will make recovery corrupt data / segfault.
2009-07-13 17:18:01 +00:00
Sears Russell
cf49c7dbf1
forgot to svn rm indirect's files
2009-07-07 20:05:15 +00:00
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