Commit graph

1208 commits

Author SHA1 Message Date
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
d01e63e1e4 add build to eclipse C indexer path 2009-10-05 20:48:30 +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
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
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
b25d77f05c Fix 32-bit builds. 2009-08-06 04:55:46 +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
3243396cb4 add dirtyPageTable unit test 2009-08-05 19:51:46 +00:00
Sears Russell
69490f1c98 implement convention that stop=0 means flush to EOF 2009-08-05 19:50:07 +00:00
Sears Russell
16c137aaf7 remove unnecessary checks 2009-08-05 19:48:59 +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
5282d4ad15 fix automake build 2009-07-30 22:46:56 +00:00
Sears Russell
95fe755df5 fixed out of date obsolescence message 2009-07-30 22:27:57 +00:00
Sears Russell
c961b34903 forgot to commit b-tree source files 2009-07-29 21:04:08 +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
081c61b414 cleaned up includes, autoconf is now optional, since cmake now creates a config.h 2009-07-26 18:51:45 +00:00
Sears Russell
260310e151 Add page ops for tree implementations. 2009-07-26 06:18:54 +00:00
Sears Russell
5ca3a008fa Code / whitespace cleanup (no logic changes) 2009-07-25 23:17:03 +00:00
Sears Russell
8c012bd1c8 Silence extraneous warning, add '--mode -1' to the slotted benchmark (-1 bypasses function dispatch when setting the records) 2009-07-25 23:02:27 +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
9ef3adf40c - Fix compile warning + broken fcn pointer from last commit.
- Address crashes in Tupdate() and recovery caused by mixing segments and page oriented recovery  (add loadPageForOperation() call)
2009-07-16 03:05:32 +00:00
Sears Russell
b44f8b17b3 Add getCachedPage() call. This allows dirtyPageTable to write back pages with out accidentally reading them back in from disk with loadPage(). This should improve performance and allow loadPageOfType() to be used safely. 2009-07-14 07:46:47 +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
d6c91241d6 fixed bug that caused loadPageOfType to ignore type parameter. Recovery is still broken, since it calls loadPage, even when it can't 2009-07-10 01:19:44 +00:00