Commit graph

291 commits

Author SHA1 Message Date
Russell Sears
1a94f8bf89 more cleanup of include directives; keyword use 2013-02-13 17:23:58 -08:00
Russell Sears
4886bbd090 fix a bunch of incomplete struct initializers 2013-02-13 16:34:33 -08:00
Russell Sears
7c09a7280f fix some casts, sign errors, initializations, stack arrays 2013-02-13 16:18:19 -08:00
Russell Sears
4adc546a8e add -ansi flag to gcc/g++, eliminate use of typeof() 2013-02-13 14:00:28 -08:00
Russell Sears
330e3bf227 tests compile under g++ now; fix casts, stack allocated arrays, macro issues, some sign problems 2013-02-13 13:27:51 -08:00
Russell Sears
3d707c71b6 fix casts; add missing BEGIN_C_DECLS; designated initializers; libstasis.so now builds + runs under both g++ and gcc! 2013-02-08 18:51:38 -08:00
Rusty Sears
ed791137b1 fix INT64_MAX in C++; add some missing casts 2013-01-30 14:07:16 -08:00
Rusty Sears
b11d7fb4a7 change declartions of fcn() to fcn(void) 2012-12-04 18:17:23 -08:00
Rusty Sears
286370a3f1 realloc -> stasis_realloc 2012-11-30 19:15:18 -08:00
Rusty Sears
f72498969d calloc -> stasis_calloc 2012-11-30 18:29:28 -08:00
Rusty Sears
0153160218 more malloc fixes; add stasis_alloc, stasis_malloc_trailing_array 2012-11-14 23:04:03 -08:00
Rusty Sears
8c2547974a replace malloc with stasis_malloc in many places 2012-11-14 18:35:45 -08:00
Rusty Sears
523766f140 new malloc macros to facilitate compiling under both c99 and c++ 2012-11-14 18:34:23 -08:00
Gregory Burd
3a559a3b3c merge in changes from svn[r1572..r1601]
------------------------------------------------------------------------
r1601 | sears.russell@gmail.com | 2012-03-20 18:43:00 -0400 (Tue, 20
Mar 2012) | 1 line

commit bLSM bloom filter to stasis/util, which is where it really
belongs
------------------------------------------------------------------------
r1600 | sears.russell@gmail.com | 2012-03-04 01:58:38 -0500 (Sun, 04
Mar 2012) | 1 line

fix memory leak in skiplist unit test (now it is valgrind clean)
------------------------------------------------------------------------
r1599 | sears.russell@gmail.com | 2012-03-04 01:58:05 -0500 (Sun, 04
Mar 2012) | 1 line

fix typo in finalize type
------------------------------------------------------------------------
r1598 | sears.russell@gmail.com | 2012-03-04 00:59:59 -0500 (Sun, 04
Mar 2012) | 1 line

add comparator and finalizer parameters to skiplist constructor
------------------------------------------------------------------------
r1597 | sears.russell@gmail.com | 2012-03-03 18:23:16 -0500 (Sat, 03
Mar 2012) | 1 line

bugfixes for skiplist
------------------------------------------------------------------------
r1596 | sears.russell@gmail.com | 2012-03-02 15:05:07 -0500 (Fri, 02
Mar 2012) | 1 line

updated concurrentSkipList.  Seeing strange crashes
------------------------------------------------------------------------
r1595 | sears.russell@gmail.com | 2012-03-01 16:51:59 -0500 (Thu, 01
Mar 2012) | 1 line

add progress reports
------------------------------------------------------------------------
r1594 | sears.russell@gmail.com | 2012-02-28 13:17:05 -0500 (Tue, 28
Feb 2012) | 1 line

experimental support for automatic logfile preallocation
------------------------------------------------------------------------
r1593 | sears.russell@gmail.com | 2012-02-28 12:10:01 -0500 (Tue, 28
Feb 2012) | 1 line

add histogram reporting to rawIOPS benchmark
------------------------------------------------------------------------
r1592 | sears.russell@gmail.com | 2012-02-24 16:31:36 -0500 (Fri, 24
Feb 2012) | 1 line

userspace raid 0 implementation
------------------------------------------------------------------------
r1591 | sears.russell@gmail.com | 2012-02-12 01:47:25 -0500 (Sun, 12
Feb 2012) | 1 line

add skiplist unit test, fix compile warnings
------------------------------------------------------------------------
r1590 | sears.russell@gmail.com | 2012-02-12 00:52:52 -0500 (Sun, 12
Feb 2012) | 1 line

fix compile error
------------------------------------------------------------------------
r1589 | sears.russell@gmail.com | 2012-02-12 00:50:21 -0500 (Sun, 12
Feb 2012) | 1 line

fix some bugs in hazard.h surrounding thread list management and
overruns of R under high contention
------------------------------------------------------------------------
r1588 | sears.russell@gmail.com | 2012-02-11 14:23:10 -0500 (Sat, 11
Feb 2012) | 1 line

add hazard pointer for get_lock.  It was implicitly blowing away the
hazard pointer protecting y in the caller
------------------------------------------------------------------------
r1587 | sears.russell@gmail.com | 2012-02-10 18:51:25 -0500 (Fri, 10
Feb 2012) | 1 line

fix null pointer bug
------------------------------------------------------------------------
r1586 | sears.russell@gmail.com | 2012-02-10 18:03:39 -0500 (Fri, 10
Feb 2012) | 1 line

add simple refcounting scheme to concurrentSkipList.  This solves the
problem where a deleted node points to another deleted node, and we
only have a hazard pointer for the first node.
------------------------------------------------------------------------
r1585 | sears.russell@gmail.com | 2012-02-10 14:19:14 -0500 (Fri, 10
Feb 2012) | 1 line

add hazard pointers for update using the smallest free slot first.  The
old method left a race condition, since hazard_scan stops at the first
null pointer.
------------------------------------------------------------------------
r1584 | sears.russell@gmail.com | 2012-02-10 02:45:30 -0500 (Fri, 10
Feb 2012) | 1 line

add hazard pointers for update array
------------------------------------------------------------------------
r1583 | sears.russell@gmail.com | 2012-02-10 00:04:50 -0500 (Fri, 10
Feb 2012) | 1 line

skiplist update: concurrent, but broken
------------------------------------------------------------------------
r1582 | sears.russell@gmail.com | 2012-02-09 17:44:27 -0500 (Thu, 09
Feb 2012) | 1 line

skip list implementation.  Not concurrent yet.
------------------------------------------------------------------------
r1581 | sears.russell@gmail.com | 2012-02-08 13:33:29 -0500 (Wed, 08
Feb 2012) | 1 line

Commit of a bunch of new, unused code: KISS random number generator,
Hazard Pointers, SUX latches (untested) and bit twiddling for
concurrent b-tree
------------------------------------------------------------------------
r1580 | sears.russell@gmail.com | 2012-01-17 19:17:37 -0500 (Tue, 17
Jan 2012) | 1 line

fix typo
------------------------------------------------------------------------
r1579 | sears.russell@gmail.com | 2012-01-11 18:33:31 -0500 (Wed, 11
Jan 2012) | 1 line

static build fixes for linux.  hopefully these do not break macos...
------------------------------------------------------------------------
r1578 | sears.russell@gmail.com | 2012-01-09 19:13:34 -0500 (Mon, 09
Jan 2012) | 1 line

fix cmake under linux
------------------------------------------------------------------------
r1577 | sears.russell@gmail.com | 2012-01-09 18:37:15 -0500 (Mon, 09
Jan 2012) | 1 line

fix linux static binary compilation bugs
------------------------------------------------------------------------
r1576 | sears.russell | 2012-01-09 18:00:08 -0500 (Mon, 09 Jan 2012) |
1 line

port to macos x
------------------------------------------------------------------------
r1575 | sears.russell | 2012-01-09 17:39:43 -0500 (Mon, 09 Jan 2012) |
1 line

add missing _ from sync call name
------------------------------------------------------------------------
r1574 | sears.russell@gmail.com | 2012-01-09 14:26:31 -0500 (Mon, 09
Jan 2012) | 1 line

add -rt flag to static builds
------------------------------------------------------------------------
r1573 | sears.russell@gmail.com | 2011-12-20 23:38:29 -0500 (Tue, 20
Dec 2011) | 1 line

Simple makefile geared toward building libstasis.so and libstasis.a
(and nothing else)
------------------------------------------------------------------------
r1572 | sears.russell@gmail.com | 2011-12-20 22:37:54 -0500 (Tue, 20
Dec 2011) | 1 line

add some missing #include<config.h> lines
2012-04-21 12:52:31 -04:00
Sears Russell
7660467f8e Refactor page implementation to use multiple include trick (so the backing representation can be changed).
Also, fix apparent bug in stasis_page_fixed_set_record_type().

Otherwise, this change should not make any semantic changes.
2011-11-09 21:37:38 +00:00
Sears Russell
b39403ea02 remove dead "raw" page format 2011-11-07 22:38:23 +00:00
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