Commit graph

275 commits

Author SHA1 Message Date
Sears Russell
b126b45bcc Improve sequential write performance of buffer manager.
This patch adds support for "asyncForce" which forces all pages to disk that
were dirtied before the *previous* call call to asyncForce.  This method
only applies to dirty pages in the Linux file cache (not in the Stasis buffer
pool), and is used by new writeback logic that bounds the amount of such
backlog that exists at any given time.

This patch also changes writeback behavior; the dirty page table now sorts
pages by pageid instead of LSN when it is invoked by writeback.  When it is
invoked by log truncation, it still sorts by LSN.
2011-10-08 22:01:04 +00:00
Sears Russell
64653e3cbe fix some obscure rose bugs detected by static analysis 2011-10-06 17:12:38 +00:00
Sears Russell
557c63a0f3 remove duplicated implementations of log2 2011-10-06 17:11:22 +00:00
Sears Russell
52cd86f7f6 move myrandom into stasis/util, rename it stasis_util_random64 2011-08-31 19:25:09 +00:00
Sears Russell
08c8be07b1 add support for fallocate(); enable it by default if it is available at build time. 2011-08-25 21:29:51 +00:00
Sears Russell
9083bca1c3 Implement CLOCK replacement policy, and set it to be the default. Add flags to configure the default replacement policy. 2011-08-23 18:25:26 +00:00
Sears Russell
c79f22a277 remove an unnecessary (and contended) latch acquisition from dirty page table 2011-08-19 22:43:28 +00:00
Sears Russell
98da9a54b8 remove docmentation cruft 2011-07-26 19:16:44 +00:00
Sears Russell
e692682cf8 remove questionable truncate and append api from handle.c 2011-07-26 19:15:14 +00:00
Sears Russell
7f332f85cc fix deadlock in filePool logger. The deadlock was due to pages being evicted before Tupdate() released the log entry for writeback. Now, we track another timestamp, so that Tupdate() starts with something analogous to a writelock, and downgrades it to a readlock before pinning pages, and invoking callbacks 2011-07-15 17:37:50 +00:00
Sears Russell
852c46b97b move gcc atomic stuff into centralized location, add methods for atomically manipulating 64 bit integers (since 32 bit machines need gcc to emit special instructions) 2011-07-15 17:34:44 +00:00
Sears Russell
90bc92c6ca switch concurrent hash to crc32 2011-07-07 22:14:28 +00:00
Sears Russell
d8621db18f move latching stuff to util/, blobs to operations/ 2011-06-13 11:26:25 +00:00
Sears Russell
a89c09d87c moved in-memory data structures and hash functions to util/ 2011-06-13 10:19:44 +00:00
Sears Russell
87d4563ab5 move compression and latchFree page formats to experimental/ 2011-06-13 08:02:20 +00:00
Sears Russell
377788a13e move a bunch of multiplexer and lsm related stuff into experimental/ directory 2011-06-13 06:58:34 +00:00
Sears Russell
312f8182f9 delete dead tsearchcompat stuff 2011-06-12 10:34:59 +00:00
Sears Russell
4fb44b6f5f whitespace fixup after removal of compensations 2011-06-12 09:20:58 +00:00
Sears Russell
c5a36c032d remove compensations.h (This is a big change, and impacts lots of whitespace. I have left some indentation breakage in place in order to minimize the size of the diff) 2011-06-12 08:13:34 +00:00
Sears Russell
bb89c5a0cf stop gratuitiously forcing the log to disk each time it is read (which was causing Tabort() to run extremely slowly). Also, add a "tryflush()" method to ringbuffer. 2011-06-12 05:15:42 +00:00
Sears Russell
801fb6de26 bugfixes and optimizations for the new log format; log preallocation and truncation utilities 2011-05-14 03:49:38 +00:00
Sears Russell
47a587ff81 fix memory leak in bTree 2011-04-26 04:16:07 +00:00
Sears Russell
1b71865b7d minor log fixes. add stasis_log_chunk_name flag. 2011-04-20 21:50:56 +00:00
Sears Russell
853394f022 fix compiler warnings regarding min and concurrentRingbuffer 2011-04-20 20:34:39 +00:00
Sears Russell
fbdc102d6c change replacementPolicy to avoid a malloc / free during page pins 2011-04-20 20:25:17 +00:00
Sears Russell
84bbeca165 filePool implementation is more-or-less complete. added remaining functions and latching 2011-04-19 18:51:43 +00:00
Sears Russell
2f664271b4 partial implementation of filePool log format. force and truncate are unimplemented, as is attempting to read unflushed data. 2011-04-18 20:31:19 +00:00
Sears Russell
175c26e125 add flush and shutdown apis to concurrent ringbuffer, tighten up get_rd_buf api 2011-04-18 20:21:16 +00:00
Sears Russell
ab058db5d3 add stasis_double_to_timeval() 2011-04-18 20:08:40 +00:00
Sears Russell
e087c9c073 add alternative implementation of min aggregate for small sets. It avoids red black overheads, but some operations are linear in the number of values considered by the aggregate 2011-04-18 20:04:33 +00:00
Sears Russell
304b439217 new data structures: min aggregate and concurrent ringbuffer 2011-04-14 23:03:20 +00:00
Sears Russell
e1201970b6 add firstPendingEntry call to log API, use finer grained latches in Tupdate(). 2011-04-01 17:25:46 +00:00
Sears Russell
188b03152c fix blob recovery issue; pages were being initialized outside of tupdate, breaking recovery 2011-03-29 22:27:31 +00:00
Sears Russell
b20cd8cd0f document the fact that LSN 0 is reserved 2011-03-25 20:24:40 +00:00
Sears Russell
5364377fd9 Fix handling of lsns in loadUninitializedPage(). This change is more of a hack than I would like. 2011-03-25 20:03:50 +00:00
Sears Russell
e7280de51f add ints to enum definition 2011-03-21 21:25:32 +00:00
Sears Russell
bb5efafcd7 comment out declaration of non-existant function 2011-03-21 21:25:00 +00:00
Sears Russell
50335355a4 fix linker error in build 2011-03-18 23:35:26 +00:00
Sears Russell
22802f72c3 add percentile handling to histogram 2011-02-25 19:47:14 +00:00
Sears Russell
de8bf53e98 fix some header #include problems 2011-02-22 19:12:38 +00:00
Sears Russell
fb5791e7e4 one line fix to concurrentHashTable, plus documentation and improved unit tests. 2011-02-15 02:57:19 +00:00
Sears Russell
c4ebeb1285 add missing calls to various pthread destructors 2011-02-02 21:20:18 +00:00
Sears Russell
0a461faa04 add "raid1" a simple mirroring I/O handle implementation 2010-12-03 03:51:24 +00:00
Sears Russell
c7e07c5c5d cleaned up initialization code for stasis handles; it is no longer possible to instantiate the (long broken) non-blocking handle implementation 2010-12-03 02:18:56 +00:00
Sears Russell
a7f71d6dbf add convenience macros to latency profiler; turn on pread/pwrite profiling by default 2010-11-30 18:33:22 +00:00
Sears Russell
d8634edb3d add --target-ops option for the bufferManager benchmark. 2010-11-29 19:17:13 +00:00
Sears Russell
1708a716e1 add custom slab allocator for stlredblack 2010-11-13 06:08:57 +00:00
Sears Russell
0d5c22991d add util/multiset; optimize flush with target lsn 2010-11-13 06:03:30 +00:00
Sears Russell
6b302226ab fix transaction table leaks during recovery; add debugging field to xact table entries 2010-11-05 18:57:18 +00:00
Sears Russell
36546b3a2d add factory methods for log implementation 2010-11-05 18:53:10 +00:00