minor changes
This commit is contained in:
parent
e22d4b8e59
commit
935de3aeb5
6 changed files with 18 additions and 11 deletions
|
@ -83,7 +83,7 @@ available.%
|
|||
nearly as flexible as modern programming languages or typical
|
||||
in-memory data structure libraries {[}Java Collections,
|
||||
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
|
||||
to pick algorithms and data structures that are most appropriate for
|
||||
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
|
||||
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
|
||||
models are extremely general, and might be inappropriate for
|
||||
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)
|
||||
|
||||
% 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.
|
||||
|
||||
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}
|
||||
|
||||
\item {\bf Comparison of transactional primatives (best case for each operator)}
|
||||
|
||||
\item {\bf Serialization Benchmarks (Abstract log) }
|
||||
|
||||
{\bf Need to define application semantics workload (write heavy w/ periodic checkpoint?) that allows for optimization.}
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
#define __USE_GNU
|
||||
#define _GNU_SOURCE
|
||||
#include <pthread.h>
|
||||
|
||||
#include <lladd/transactional.h>
|
||||
#include <lladd/hash.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
|
||||
#define __USE_GNU
|
||||
#include <pthread.h>
|
||||
/*#ifndef PTHREAD_MUTEX_RECURSIVE
|
||||
#define PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP
|
||||
#endif*/
|
||||
|
||||
/** A quick note on the format of linked lists. Each entry consists
|
||||
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; }
|
||||
|
||||
int done = 0;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
lladd_linkedList_entry * entry;
|
||||
begin_action_ret(pthread_mutex_unlock, &linked_list_mutex, compensation_error()) {
|
||||
pthread_mutex_lock(&linked_list_mutex);
|
||||
|
|
|
@ -180,12 +180,12 @@ compensated_function int TpagedListMove(int xid, recordid start_list, recordid e
|
|||
try_ret(compensation_error()) {
|
||||
int valueSize = TpagedListFind(xid, start_list, key, keySize, &value);
|
||||
if(valueSize != -1) {
|
||||
int ret = TpagedListRemove(xid, start_list, key, keySize);
|
||||
ret = TpagedListRemove(xid, start_list, key, keySize);
|
||||
assert(ret);
|
||||
ret = TpagedListInsert(xid, end_list, key, keySize, value, valueSize);
|
||||
assert(!ret);
|
||||
if(value) { free(value); }
|
||||
ret = 1;
|
||||
// ret = 1;
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
INCLUDES = @CHECK_CFLAGS@
|
||||
if HAVE_CHECK
|
||||
## 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
|
||||
else
|
||||
TESTS =
|
||||
|
|
|
@ -18,7 +18,7 @@ START_TEST(simpleDeadlockTest) {
|
|||
int xid = Tbegin();
|
||||
|
||||
recordid rid = Talloc(xid, sizeof(int));
|
||||
recordid rid2 = Talloc(xid, sizeof(int));
|
||||
Talloc(xid, sizeof(int));
|
||||
|
||||
Tcommit(xid);
|
||||
assert(!compensation_error());
|
||||
|
|
|
@ -44,7 +44,7 @@ void * pageWorkerThread(void * j) {
|
|||
// } end_ret();
|
||||
} else {
|
||||
// writelock
|
||||
int locked = 0;
|
||||
// int locked = 0;
|
||||
// begin_action_ret(NULL, NULL, 0) {
|
||||
|
||||
if(LLADD_DEADLOCK == globalLockManager.writeLockPage(xid, m)) {
|
||||
|
|
Loading…
Reference in a new issue