minor changes

This commit is contained in:
Sears Russell 2005-03-09 03:24:36 +00:00
parent e22d4b8e59
commit 935de3aeb5
6 changed files with 18 additions and 11 deletions

View file

@ -83,7 +83,7 @@ available.%
nearly as flexible as modern programming languages or typical nearly as flexible as modern programming languages or typical
in-memory data structure libraries {[}Java Collections, in-memory data structure libraries {[}Java Collections,
STL{]}. Historically, programming language and software library STL{]}. Historically, programming language and software library
development has focused upon the production of wide array of development has focused upon the production of a wide array of
composable general purpose tools, allowing the application developer composable general purpose tools, allowing the application developer
to pick algorithms and data structures that are most appropriate for to pick algorithms and data structures that are most appropriate for
the problem at hand.} the problem at hand.}
@ -131,7 +131,7 @@ popularity of MySQL~\cite{mysql}, which allows some of these
constraints to be relaxed at the discretion of a developer or end constraints to be relaxed at the discretion of a developer or end
user. user.
\item{\bf OODBMS / XML database systems provide model tied closely to PL \item{\bf OODBMS / XML database systems provide models tied closely to PL
or hierarchical formats, but, like the relational model, these or hierarchical formats, but, like the relational model, these
models are extremely general, and might be inappropriate for models are extremely general, and might be inappropriate for
applications with stringent performance demands, or that use these applications with stringent performance demands, or that use these
@ -248,7 +248,7 @@ not provided by existing systems.
%errors in data structures, errors in the log format, etc) %errors in data structures, errors in the log format, etc)
% second point: more difficult techniques can be used to optimize % second point: more difficult techniques can be used to optimize
% log bandwidth. _in ways that other techniques cannot provide % log bandwidth. _in ways that other techniques cannot provide_
% to application developers. % to application developers.
Instead of providing a comprehensive discussion of ARIES, we will Instead of providing a comprehensive discussion of ARIES, we will
@ -679,6 +679,8 @@ LLADD's linear hash table uses linked lists of overflow buckets.
\begin{enumerate} \begin{enumerate}
\item {\bf Comparison of transactional primatives (best case for each operator)}
\item {\bf Serialization Benchmarks (Abstract log) } \item {\bf Serialization Benchmarks (Abstract log) }
{\bf Need to define application semantics workload (write heavy w/ periodic checkpoint?) that allows for optimization.} {\bf Need to define application semantics workload (write heavy w/ periodic checkpoint?) that allows for optimization.}

View file

@ -1,11 +1,16 @@
#define __USE_GNU
#define _GNU_SOURCE
#include <pthread.h>
#include <lladd/transactional.h> #include <lladd/transactional.h>
#include <lladd/hash.h> #include <lladd/hash.h>
#include <stdlib.h> #include <stdlib.h>
#include <assert.h> #include <assert.h>
#include <string.h> #include <string.h>
#define __USE_GNU /*#ifndef PTHREAD_MUTEX_RECURSIVE
#include <pthread.h> #define PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP
#endif*/
/** A quick note on the format of linked lists. Each entry consists /** A quick note on the format of linked lists. Each entry consists
of a struct with some variable length data appended to it. of a struct with some variable length data appended to it.
@ -394,7 +399,7 @@ compensated_function int TlinkedListNext(int xid, lladd_linkedList_iterator * it
if(it->next.size == -1) { free(it); return 0; } if(it->next.size == -1) { free(it); return 0; }
int done = 0; int done = 0;
int ret; int ret = 0;
lladd_linkedList_entry * entry; lladd_linkedList_entry * entry;
begin_action_ret(pthread_mutex_unlock, &linked_list_mutex, compensation_error()) { begin_action_ret(pthread_mutex_unlock, &linked_list_mutex, compensation_error()) {
pthread_mutex_lock(&linked_list_mutex); pthread_mutex_lock(&linked_list_mutex);

View file

@ -180,12 +180,12 @@ compensated_function int TpagedListMove(int xid, recordid start_list, recordid e
try_ret(compensation_error()) { try_ret(compensation_error()) {
int valueSize = TpagedListFind(xid, start_list, key, keySize, &value); int valueSize = TpagedListFind(xid, start_list, key, keySize, &value);
if(valueSize != -1) { if(valueSize != -1) {
int ret = TpagedListRemove(xid, start_list, key, keySize); ret = TpagedListRemove(xid, start_list, key, keySize);
assert(ret); assert(ret);
ret = TpagedListInsert(xid, end_list, key, keySize, value, valueSize); ret = TpagedListInsert(xid, end_list, key, keySize, value, valueSize);
assert(!ret); assert(!ret);
if(value) { free(value); } if(value) { free(value); }
ret = 1; // ret = 1;
} else { } else {
ret = 0; ret = 0;
} }

View file

@ -1,7 +1,7 @@
INCLUDES = @CHECK_CFLAGS@ INCLUDES = @CHECK_CFLAGS@
if HAVE_CHECK if HAVE_CHECK
## Had to disable check_lht because lht needs to be rewritten. ## Had to disable check_lht because lht needs to be rewritten.
TESTS = check_logEntry check_logWriter check_page check_operations check_transactional2 check_recovery check_blobRecovery check_bufferManager check_indirect check_pageOperations check_linearHash check_logicalLinearHash check_header check_linkedListNTA check_linearHashNTA check_pageOrientedList check_lockManager check_compensations check_errorHandling TESTS = check_logEntry check_logWriter check_page check_operations check_transactional2 check_recovery check_blobRecovery check_bufferManager check_indirect check_pageOperations check_linearHash check_logicalLinearHash check_header check_linkedListNTA check_linearHashNTA check_pageOrientedList check_lockManager check_compensations check_errorHandling check_ringbuffer
#check_lladdhash #check_lladdhash
else else
TESTS = TESTS =

View file

@ -18,7 +18,7 @@ START_TEST(simpleDeadlockTest) {
int xid = Tbegin(); int xid = Tbegin();
recordid rid = Talloc(xid, sizeof(int)); recordid rid = Talloc(xid, sizeof(int));
recordid rid2 = Talloc(xid, sizeof(int)); Talloc(xid, sizeof(int));
Tcommit(xid); Tcommit(xid);
assert(!compensation_error()); assert(!compensation_error());

View file

@ -44,7 +44,7 @@ void * pageWorkerThread(void * j) {
// } end_ret(); // } end_ret();
} else { } else {
// writelock // writelock
int locked = 0; // int locked = 0;
// begin_action_ret(NULL, NULL, 0) { // begin_action_ret(NULL, NULL, 0) {
if(LLADD_DEADLOCK == globalLockManager.writeLockPage(xid, m)) { if(LLADD_DEADLOCK == globalLockManager.writeLockPage(xid, m)) {