Commit graph

846 commits

Author SHA1 Message Date
Russell Sears
f198ec1b84 #define _GNU_SOURCE in files that need it (instead of globally). 2013-02-13 17:47:21 -08:00
Russell Sears
610096a965 clean up headers to reduce warnings about _GNU_SOURCE 2013-02-13 16:48:54 -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
e35d078dde add casts to buffer manager implementations 2013-01-30 17:00:11 -08:00
Rusty Sears
9503882489 add casts for buffer manager, replacement policy 2013-01-30 16:37:01 -08:00
Rusty Sears
814614b0bb add casts; fix legacy fcn declaration 2013-01-30 15:42:36 -08:00
Rusty Sears
2504600f3b add casts 2013-01-30 14:50:28 -08:00
Rusty Sears
54b0a14b2d add casts; remove dead variable 2013-01-30 14:34:28 -08:00
Rusty Sears
d2b41603bd add commented out lines that make it easy to build stasis using G++ 2013-01-30 14:19:49 -08:00
Rusty Sears
ae086372dd fix regression in C build 2013-01-30 14:19:24 -08:00
Rusty Sears
11336cde4c add casts; change variable name from new to newval 2013-01-30 14:10:01 -08:00
Rusty Sears
e08d89e5d6 fix erroneous const declaration 2013-01-30 14:09:14 -08:00
Rusty Sears
b31fe84427 add casts 2013-01-30 14:08:42 -08:00
Rusty Sears
b11d7fb4a7 change declartions of fcn() to fcn(void) 2012-12-04 18:17:23 -08:00
Rusty Sears
cafe26e728 get rid of variables named "new" 2012-12-04 16:22:08 -08:00
Rusty Sears
286370a3f1 realloc -> stasis_realloc 2012-11-30 19:15:18 -08:00
Rusty Sears
649f85d218 fix apparent arithmetic error in filePool; realloc->stasis_realloc for filePool 2012-11-30 18:50:51 -08:00
Rusty Sears
f72498969d calloc -> stasis_calloc 2012-11-30 18:29:28 -08:00
Rusty Sears
4d51fe2212 change more malloc calls to use stasis_malloc/stasis_alloc 2012-11-30 17:15:03 -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
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
0058042987 test + fix allocation of zero byte records 2011-11-07 22:53:55 +00:00
Sears Russell
b39403ea02 remove dead "raw" page format 2011-11-07 22:38:23 +00:00
Sears Russell
20d2196040 printf -> DEBUG for ringbuffer 2011-11-06 15:49:33 +00:00
Sears Russell
4b300dda7a printf -> DEBUG for filePool 2011-11-06 15:48:50 +00:00
Sears Russell
682a6a20f2 move asyncForce outside of conditional to better bound number of dirty pages in os cache 2011-11-04 20:45:55 +00:00
Sears Russell
e081793f32 increase log file chunk size to avoid running out of file descriptors 2011-11-04 20:45:06 +00:00
Sears Russell
650e8ed7e1 tweak flags for better support for multiple concurrent sequential writes 2011-10-10 05:14:19 +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
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
829a2441e5 disable pfile latency profile by default 2011-08-19 22:17:50 +00:00
Sears Russell
41f57f46ba remove redundant rwlatch acquistions from pageHandle 2011-08-19 22:11:51 +00:00
Sears Russell
6f3399a9a7 whitespace fixes in comment 2011-08-19 22:08:11 +00:00
Sears Russell
6e1ba8fe48 clarified some comments 2011-08-19 22:07:22 +00:00
Sears Russell
50ec28e806 fix build on machines that have sync_file_range 2011-08-03 20:22:48 +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