Commit graph

17 commits

Author SHA1 Message Date
Sears Russell
fdf5344ec3 Implemented 'compensations' for C. They're not proper compensations, but they're more flexible than pthread's mechanisms, as they allow the stack to be partially rolled up. (Although calling functions need to either check for errors and return manually, or wrap calls to error-producing callees in a begin_action{ }end_action block. 2005-02-14 02:49:59 +00:00
Sears Russell
b8a67cbfb2 Numerous lock manager fixes; more realistic test case for lock manager, added support for optional page-level locking.(Still need to report deadlocks back up to the caller.) 2005-02-10 03:51:09 +00:00
Sears Russell
bb69197a65 Fixed blob implementation (it was impossible to distinguish between a blob and a record of length 12), removed jbhash, and ported cht to linearHashNTA. 2005-01-31 01:29:52 +00:00
Sears Russell
17f76264aa Implemented pageOrientedList, also did some bug fixing, and added some support functions to alloc.c 2005-01-28 03:32:17 +00:00
Sears Russell
443a90ad7c Implemented TrecordType() 2004-12-01 01:26:25 +00:00
Sears Russell
f0dfa98b8e Test case for new code that checks page type. 2004-11-24 23:23:01 +00:00
Sears Russell
5064e3fac2 Implemented pages that store fixed sized records efficiently, and a java-style ArrayList data structure that efficiently supports (relatively) clustered, O(1) access time expandable arrays. (This will be used for the hash implementation...) 2004-10-06 06:08:09 +00:00
Sears Russell
96e7af92a4 Added test cases for Tprepare(), implemented some redo-only operations, and started to clean up record allocation/deallocation.
Also, numerous bugfixes.
2004-10-02 07:29:34 +00:00
Sears Russell
811bc5c710 Implemented a freespace manager that should safely allocate space, even in the face of crashes, and can reclaim unused space (unless an application opens more than one simultaneous transaction that performs allocations)
Fixed some blob bugs (by adding extra fdatasync() calls).

Began factoring out the page management code so that it is an extenstion, and a less integral part of lladd.
2004-08-21 00:03:30 +00:00
Sears Russell
b4d7883f66 Fixed regressions, major update of page / slotted interfaces in anticipation of moving LLADD towards a generic transactional page system. 2004-08-17 01:46:17 +00:00
Sears Russell
961b63af15 Rewrote / refactored page.h. Now, it uses a freelist to reclaim slotid's within a page, and is implemented as two seperate modules. The first handles lsn's, and (will soon) check the type of each page, and then delegate work to a particular implementation of the second module. 2004-07-30 01:28:39 +00:00
Sears Russell
8cb59f0c23 Blobs are now re-entrant. 2004-07-26 20:37:04 +00:00
Sears Russell
422198418a bufferMananger is (really!) re-entrant now, performed big refactoring to prevent deadlocks, check_transactional2 ran overnight without coring, w/ 25 threads, and 10000 allocate/write/reads per thread. (The whole test suite was run in a loop...) 2004-07-23 20:21:44 +00:00
Sears Russell
490dd86c09 pageCache.c is now re-entrant. 2004-07-20 00:15:17 +00:00
Sears Russell
9712e291e6 Moved page.h and some of the logging headers out of the public API. 2004-07-14 21:25:59 +00:00
Sears Russell
2b42451280 Cleaning up bufferManager / page for locking. Want to limit access to the Page struct. 2004-07-14 20:49:18 +00:00
Sears Russell
475b8141d3 page.c is re-entrant (mostly), and now reuses DeRalloced space properly. (For now, BufferManager still is not re-entrant, and also prevents space from being reused.) 2004-07-13 23:48:20 +00:00