remove more cruft

This commit is contained in:
Sears Russell 2009-04-18 05:14:07 +00:00
parent ab236ca2fe
commit 7e70dc7340
6 changed files with 7 additions and 1838 deletions

View file

@ -2,14 +2,13 @@ Author:
Russell Sears sears@cs.berkeley.edu Russell Sears sears@cs.berkeley.edu
The following people contributed to this software in the past: The following people contributed to this software in the past:
------------------------------------------------------------ --------------------------------------------------------------
Initial version of library: Initial version of library:
Jason Bayer bayer@xcf.berkeley.edu Jason Bayer bayer@xcf.berkeley.edu
Jim Blomo jim@xcf.berkeley.edu Jim Blomo jim@xcf.berkeley.edu
Jimmy Kittiyachavalit jkit@xcf.berkeley.edu Jimmy Kittiyachavalit jkit@xcf.berkeley.edu
The following libraries are bundled with this software: The following libraries are bundled with this software:
------------------------------------------------------ ------------------------------------------------------
@ -22,6 +21,7 @@ The following libraries are bundled with this software:
(lladd/src/lladd/crc32.c) (lladd/src/lladd/crc32.c)
Earlier versions of this software made use of: Earlier versions of this software made use of:
----------------------------------------------
PBL - The Program Base Library PBL - The Program Base Library
http://www.mission-base.com/peter/source/ http://www.mission-base.com/peter/source/
@ -30,3 +30,8 @@ Earlier versions of this software made use of:
implementation that includes (deprecated) compatibility with the implementation that includes (deprecated) compatibility with the
pblHt* interface. pblHt* interface.
check - C Unit Test Framework
http://check.sourceforge.net/
check has been replaced with test/check_impl.h, which implements a subset
of the check API.

306
ChangeLog
View file

@ -1,306 +0,0 @@
2005-03-14 sears@euglenoid <sears@euglenoid>
* linearHashNTA.h:
This commit breaks the build so that Jimmy and I can sync. Sorry. :(
2005-03-10 sears@euglenoid <sears@euglenoid>
* linearHashNTA.h:
Fixed unit tests, added iterator interface, and generic (almost) iterator test harness.
2005-03-02 sears@euglenoid <sears@euglenoid>
* linearHashNTA.h, linkedListNTA.h: Compiles on FreeBSD!
2005-03-01 sears@euglenoid <sears@euglenoid>
* noop.h: Bugfixes for OASYS.
2005-02-24 sears@euglenoid <sears@euglenoid>
* alloc.h, pageOrientedListNTA.h:
Fixeds cht test / finished error checking within LLADD, but haven't tested error handling yet.
2005-02-22 sears@euglenoid <sears@euglenoid>
* linkedListNTA.h: Error handling for linked list.
* linearHashNTA.h, pageOperations.h, pageOrientedListNTA.h, arrayList.h:
More error handling...
2005-02-16 sears@euglenoid <sears@euglenoid>
* linearHashNTA.h, set.h: Started adding error handling code to LLADD.
2005-01-31 sears@euglenoid <sears@euglenoid>
* pageOrientedListNTA.h: Bugfix for pageOrientedList.
2005-01-29 sears@euglenoid <sears@euglenoid>
* pageOrientedListNTA.h:
Re-implemented pageOrientedListNTA from scratch. It's now more flexible, but relies on features that are not provided by Talloc/Tdealloc, so performance isn't as good as it could be.
2005-01-28 sears@euglenoid <sears@euglenoid>
* linearHashNTA.h, pageOrientedListNTA.h:
Working, but slow and non-concurrent variable length key/value support for linear hashtable.
* alloc.h, pageOrientedListNTA.h:
Implemented pageOrientedList, also did some bug fixing, and added some support functions to alloc.c
2005-01-21 sears@euglenoid <sears@euglenoid>
* linearHashNTA.h, prepare.h, alloc.h: More documentation updates.
2005-01-20 sears@euglenoid <sears@euglenoid>
* noop.h, pageOperations.h, prepare.h, set.h, increment.h, instantSet.h, linearHash.h, linearHashNTA.h, linkedListNTA.h, lladdhash.h, naiveLinearHash.h, nestedTopActions.h, alloc.h, arrayList.h, decrement.h:
Documentation update.
2005-01-15 sears@euglenoid <sears@euglenoid>
* linearHashNTA.h, nestedTopActions.h:
- linkedListNTA is now re-entrant.
- linearHashNTA now uses nested top actions, is re-entrant, and supports a
non-re-entrant iterator
- 'recursive' nested top actions allow nested top actions to be nested within each
other.
2005-01-14 sears@euglenoid <sears@euglenoid>
* linkedListNTA.h, nestedTopActions.h:
The linked list implementation now uses nested top actions. (Also, many bugfixes regarding nested top actions were introduced.)
* linearHash.h, linearHashNTA.h, linkedListNTA.h, naiveLinearHash.h:
Working, non-concurrent linear hash and linked list implementations.
The idea is to implement the non-concurrent versions, and then convert
them to concurrent versions using nested top actions.
2005-01-10 sears@euglenoid <sears@euglenoid>
* naiveLinearHash.h:
Starting to rip the old jbhash implementation out, and replace it with a
linear hash implementation. In particular, I've implemented (sort of) an
iterator for linear hash, and (sort of) ported libdfa to linearhash.c
I say 'sort of' since this functionality is broken with this commit. On the other hand, CVS should build now, and the tests under lladd will pass. libdfa's new tests don't pass at the moment.
2004-12-03 sears@euglenoid <sears@euglenoid>
* set.h: Implemented TsetRange, fixed bug in linear hash.
2004-12-01 sears@euglenoid <sears@euglenoid>
* alloc.h: Implemented TrecordType()
2004-11-29 sears@euglenoid <sears@euglenoid>
* nestedTopActions.h:
Support for nested top actions, with simple unit test. (Haven't tested for thread safety yet.)
* naiveLinearHash.h:
Implemented recover_split(), which is needed by the linear hash to recover properly from crashes. It hasn't been tested at all, and is not currently called by anything.
2004-11-28 sears@euglenoid <sears@euglenoid>
* naiveLinearHash.h: Did some misc. cleanup work on linearHash
2004-10-20 sears@euglenoid <sears@euglenoid>
* linearHash.h:
Starting work on the actual graph-generation portion of the benchmarks. :)
2004-10-19 sears@euglenoid <sears@euglenoid>
* arrayList.h, linearHash.h, naiveLinearHash.h:
Lots of optimizations; re-did on-disk layout for the linear hash table.
2004-10-18 sears@euglenoid <sears@euglenoid>
* arrayList.h, linearHash.h, naiveLinearHash.h:
Preliminary version of logical logging linear hash. (No latching yet, and there are some bugs re-opening a closed hash.)
2004-10-17 sears@euglenoid <sears@euglenoid>
* linearHash.h:
Optimized the 'naive' linear hash table, and moved to sourceforge. :)
2004-10-12 sears@euglenoid <sears@euglenoid>
* linearHash.h:
Implemented a linear hash from scratch. Concurrency hasn't been done, but it's probably correct in the single thread case.
2004-10-06 sears@euglenoid <sears@euglenoid>
* arrayList.h:
Implemented pages that store fixed sized records efficiently, and a java-style ArrayList data structure that efficiently supports (relatively) clustered, O(1) access time expandable arrays. (This will be used for the hash implementation...)
2004-10-02 sears@euglenoid <sears@euglenoid>
* alloc.h, instantSet.h, noop.h, prepare.h:
Added test cases for Tprepare(), implemented some redo-only operations, and started to clean up record allocation/deallocation.
Also, numerous bugfixes.
2004-10-02 sears@euglenoid <sears@euglenoid>
* alloc.h, instantSet.h, noop.h, prepare.h:
Added test cases for Tprepare(), implemented some redo-only operations, and started to clean up record allocation/deallocation.
Also, numerous bugfixes.
2004-08-21 sears@euglenoid <sears@euglenoid>
* pageOperations.h:
Implemented a freespace manager that should safely allocate space, even in the face of crashes, and can reclaim unused space (unless an application opens more than one simultaneous transaction that performs allocations)
Fixed some blob bugs (by adding extra fdatasync() calls).
Began factoring out the page management code so that it is an extenstion, and a less integral part of lladd.
2004-08-03 sears@euglenoid <sears@euglenoid>
* lladdhash.h, pageOperations.h:
Added (untested) support for whole-page operations, lladdhash now works.
rr 2004-07-20 sears <sears@Morphix>
* bufferManager.c, common.c, operations/alloc.c, page.c, page.h, pageCache.c, pageFile.c, transactional2.c:
Continuing work on multi-threading. r/w access to buffer manager getting close, but still buggy.
* logger/logWriter.c, pageFile.c, pageFile.h, bufferManager.c, common.c, latches.h, page.c, page.h, pageCache.c:
pageCache.c is now re-entrant.
2004-07-15 sears <sears@Morphix>
* Makefile.am, blobManager.c, bufferManager.c, logger/logWriter.c, page.h, pageCache.c, pageFile.c, pageFile.h:
pageCache is now re-entrant, in theory.
2004-07-14 sears <sears@Morphix>
* blobManager.c, blobManager.h, bufferManager.c, logger/logHandle.c, logger/logHandle.h, logger/logWriter.c, logger/logWriter.h, logger/logger2.c, operations.c, operations/alloc.c, operations/prepare.c, page.c, page.h, pageCache.c, recovery2.c, transactional2.c:
Moved page.h and some of the logging headers out of the public API.
* blobManager.c, bufferManager.c, latches.h, logger/logEntry.c, logger/logWriter.c, logger/logger2.c, operations.c, operations/alloc.c, page.c, pageCache.c, recovery2.c, transactional2.c:
Cleaning up bufferManager / page for locking. Want to limit access to the Page struct.
2004-07-13 sears <sears@Morphix>
* page.c, pageCache.c:
page.c is re-entrant (mostly), and now reuses DeRalloced space properly. (For now, BufferManager still is not re-entrant, and also prevents space from being reused.)
2004-07-09 sears <sears@Morphix>
* bufferManager.c, page.c: Made pageWriteLSN static.
2004-07-06 sears <sears@Morphix>
* bufferManager.c, page.c: More documentation fixes.
* blobManager.h: Fixed groupings for LLADD API docs.
* operations/alloc.c, operations/lladdhash.c, logger/logWriter.c, logger/logger2.c, logger/logEntry.c, operations.c, page.c, pageCache.c, recovery2.c, stats.c, transactional2.c, Makefile.am, blobManager.c, blobManager.h, bufferManager.c, common.c, latches.h, linkedlist.c:
Ported LLADD to Fedora, cleaned up autoconf setup, and numerouse #includes that were problematic.
2004-07-04 sears <sears@Morphix>
* Makefile.am, blobManager.c, blobManager.h, bufferManager.c, common.c, logger/logHandle.c, logger/logWriter.c, logger/logger2.c, operations.c, operations/alloc.c, page.c, pageCache.c, recovery2.c, stats.c, transactional2.c:
Documentation update, added latch profiling tools.
2004-07-01 sears <sears@Morphix>
* logger/logHandle.c, logger/logWriter.c, operations.c:
Log truncation. (But no checkpoints, so it doesn't get called... it does pass testing though. :)
2004-06-30 sears <sears@Morphix>
* Makefile.am, blobManager.c, blobManager.h, bufferManager.c, logger/logWriter.c, operations/alloc.c, operations/prepare.c, page.c, pageCache.c, transactional2.c:
Logwriter can now handler partial log entries correctly (it ignores them)
Buffer Mananger no longer steals pages pre-maturely
Alloc is an operation, and correct.
Caching broken out into a new module
Wrote a utility to translate a log file into human-readable ascii.
2004-06-28 sears <sears@Morphix>
* logger/logstreamer.h, operations/alloc.c, operations/prepare.c, blobManager.c, blobManager.h, bufferManager.c, logger/logEntry.c, logger/logWriter.c, logger/logger.c, logger/logger2.c, logger/logparser.c, logger/logparser.h, logger/logstreamer.c, page.c, recovery.c, recovery.h, recovery2.c, transactional.c, transactional2.c:
Cleaned out old cruft, such as commented out code, dead data structures, and dead files. sloccount went from $75,000 to $50,000 on src/lladd. ;)
* blobManager.c, blobManager.h, bufferManager.c, logger/logger2.c, operations.c, operations/alloc.c, operations/decrement.c, operations/increment.c, operations/set.c, page.c, recovery2.c, transactional2.c:
Bugfixes ; blobs pass regression. Next stop: Delete old cruft.
2004-06-26 sears <sears@Morphix>
* blobManager.c: Wrote blobmanager, didn't compile it yet.
2004-06-25 sears <sears@Morphix>
* blobManager.c, blobManager.h: blob manager commit.
* Makefile.am, bufferManager.c, page.c:
Preliminary implementation of blobManager
2004-06-24 sears <sears@Morphix>
* logger/.deps/logger.Po, logger/.deps/logparser.Po, logger/.deps/logstreamer.Po:
Need to send laptop in for warranty service, so it's time to put this code into CVS. :)
Vs. the paper version of LLADD, this version has a re-written logger + recovery system. It also includes unit tests and API documentation.
* logger/.deps/logger.Po, logger/.deps/logparser.Po, logger/.deps/logstreamer.Po:
New file.
* logger/logEntry.c, logger/logWriter.c, logger/logger.c, logger/logparser.c, logger/logparser.h:
Need to send laptop in for warranty service, so it's time to put this code into CVS. :)
Vs. the paper version of LLADD, this version has a re-written logger + recovery system. It also includes unit tests and API documentation.
* logger/logEntry.c, logger/logWriter.c, logger/logger.c, logger/logparser.c, logger/logparser.h:
New file.
* logger/Makefile.am-old, logger/logHandle.c, logger/logger2.c, logger/logstreamer.c, logger/logstreamer.h, operations/.deps/increment.Po, operations/.deps/set.Po:
Need to send laptop in for warranty service, so it's time to put this code into CVS. :)
Vs. the paper version of LLADD, this version has a re-written logger + recovery system. It also includes unit tests and API documentation.
* logger/Makefile.am-old, logger/logHandle.c, logger/logger2.c, logger/logstreamer.c, logger/logstreamer.h, operations/.deps/increment.Po, operations/.deps/set.Po:
New file.
* operations/.deps/decrement.Po, operations/.deps/lladdhash.Po, operations/.deps/prepare.Po, operations/alloc.c, operations/decrement.c, operations/increment.c, operations/lladdhash.c, operations/prepare.c:
Need to send laptop in for warranty service, so it's time to put this code into CVS. :)
Vs. the paper version of LLADD, this version has a re-written logger + recovery system. It also includes unit tests and API documentation.
* operations/.deps/decrement.Po, operations/.deps/lladdhash.Po, operations/.deps/prepare.Po, operations/alloc.c, operations/decrement.c, operations/increment.c, operations/lladdhash.c, operations/prepare.c:
New file.
* linkedlist.c, linkedlist.h, operations.c, operations/Makefile.am-old, operations/set.c, transactional.c:
Need to send laptop in for warranty service, so it's time to put this code into CVS. :)
Vs. the paper version of LLADD, this version has a re-written logger + recovery system. It also includes unit tests and API documentation.
* linkedlist.c, linkedlist.h, operations.c, operations/Makefile.am-old, operations/set.c, transactional.c:
New file.
* page.c, transactional2.c:
Need to send laptop in for warranty service, so it's time to put this code into CVS. :)
Vs. the paper version of LLADD, this version has a re-written logger + recovery system. It also includes unit tests and API documentation.
* page.c, transactional2.c: New file.
* Makefile.am, bufferManager.c, recovery.c, recovery.h:
Need to send laptop in for warranty service, so it's time to put this code into CVS. :)
Vs. the paper version of LLADD, this version has a re-written logger + recovery system. It also includes unit tests and API documentation.
* Makefile.am, bufferManager.c, recovery.c, recovery.h: New file.
* 1, recovery2.c:
Need to send laptop in for warranty service, so it's time to put this code into CVS. :)
Vs. the paper version of LLADD, this version has a re-written logger + recovery system. It also includes unit tests and API documentation.
* 1, recovery2.c: New file.

3
NEWS
View file

@ -1,3 +0,0 @@
Jun 9, 2004:
Set version number to 0.5, retired old directory structure, and added autoconf / unit testing framework.

160
NOTES
View file

@ -1,160 +0,0 @@
create new record
get a page with enough free space
check existing pages for free space
create a new emtpy page
alloc a record on that page
increment number of records on this page
update free space pointer
write to record
load the page into memory
find the page on disk
put the page in memory
lock the page
get the memory address of the record
look up the record offset in the slot directory
write to that record
update log
update lsn on page
read record
load the page into memory
get the address of the record
read that record
begin xaction
commit xaction
flush
unlock
abort xaction
delete page from memory
unlock
================================================================================
recordid memory.ralloc(int xid, size_t size) {
for each page in the page table // page table are pages in RAM
if locked, continue
// context switch here SUCKS
lock page
break if freeSpace(page) >= size
free page
if no free page
create a new page and lock and load
return (recordid) page.recordAllocate(page, size)
}
void page.writeRecord(recordid rid, void *data) {
assert page locked and loaded
if xid and recordid is in hash table, do nothing
else make shadow record
memcpy()
}
void *page.readRecord(recordid rid, void *buff) {
make sure page is loaded
memcpy()
return pointer
}
commitXaction(int xid) {
for each page that this xid has locked
unlock page
if pin count of page == 0
flush
}
abortXaction(int xid) {
for each locked page
restore shadow records
unlock page
}
================================================================================
transactional.c
Tread
Tbegin
Tcommit
Tabort
operations.h
Tset
Tdec
Tinc
struct page {
void *memAddr
long lsn
semaphore lock
}
bufferManager.c
struct page loadPage(pageid)
flushPage(struct page) // maybe take pageid
dropPage(struct page) // maybe take pageid
bufTransCommit(xid) // call flush and dropPage on page buffer
bufTransAbort(xid) // call flush and dropPage on page buffer
pin
unpin
page.c
rid ralloc(int size) // depends on bufferManager
writeRecord(rid, data)
readRecord(rid, buff)
recovery.c
logger.c
constants.h
==============================
buffer needs
xid => ( pages )
(dirty pages)
page, first write LSN
page needs
xid => ( recordids )
xid,recordid => data
================
Testing
in main.c we can write something to the effect of
begin
write
for(;;)
printf("looping");
commit
this way, when we see that "looping is printing, we can purposefully crash the program with control-c
not sure that this is anydifferent than having main.c {begin, write, exit}

1194
lladd.prj

File diff suppressed because it is too large Load diff

173
lladd.pws
View file

@ -1,173 +0,0 @@
[executer]
RunInTerminal=true
[Project State]
clean before build=false
[File View]
filter.file.unmatch=*.so *.o *.a *.la
filter.file.ignore.hidden=0
filter.dir.ignore.hidden=0
[filenumbers]
0=170
1=70
2=21
3=50
4=1
5=1
6=89
7=22
8=1
9=1
10=153
11=102
12=4
13=6
14=1
15=69
16=148
17=1
18=1
19=1
20=13
21=43
22=87
23=2
24=1
25=106
26=106
27=124
28=151
29=158
30=324
31=145
32=46
33=5
34=38
35=49
36=11
37=47
38=76
39=29
40=1
41=324
42=66
43=167
[filemarkers]
0=
1=
2=
3=
4=
5=
6=
7=
8=
9=
10=
11=
12=
13=
14=
15=
16=
17=
18=
19=
20=
21=
22=
23=
24=
25=
26=
27=
28=
29=
30=
31=
32=
33=
34=
35=
36=
37=
38=
39=
40=
41=
42=
43=
[filelist]
0=/home/sears/lladd/src/lladd/page/slotted.h
1=/home/sears/lladd/lladd/operations/pageOrientedListNTA.h
2=/home/sears/lladd/src/lladd/operations/pageOrientedListNTA.c
3=/home/sears/lladd/lladd/operations/linkedListNTA.h
4=/home/sears/lladd/src/lladd/operations/linkedListNTA.c
5=/home/sears/lladd/lladd/operations/linearHashNTA.h
6=/home/sears/lladd/lladd/operations/prepare.h
7=/home/sears/lladd/lladd/operations/alloc.h
8=/home/sears/lladd/benchmarks/berkeleyDB/Makefile.am
9=/home/sears/lladd/benchmarks/berkeleyDB/bdbRaw.c
10=/home/sears/lladd/lladd/transactional.h
11=/home/sears/lladd/doc/index.html
12=/home/sears/lladd/test/cht/run
13=/home/sears/lladd/test/cht/Makefile.am
14=/home/sears/lladd/src/apps/cht/Makefile.am
15=/home/sears/lladd/configure.in
16=/home/sears/lladd/src/lladd/logger/logWriter.c
17=/home/sears/lladd/src/lladd/operations/alloc.c
18=/home/sears/lladd/lladd/constants.h
19=/home/sears/lladd/src/lladd/operations.c
20=/home/sears/lladd/test/cht/subordinate.c
21=/home/sears/lladd/src/libdfa/callbacks.c
22=/home/sears/lladd/src/2pc/2pc.h
23=/home/sears/lladd/test/2pc/Makefile.am
24=/home/sears/lladd/test/cht/cht_server.c
25=/home/sears/lladd/test/cht/simple.c
26=/home/sears/lladd/test/2pc/always_commit.c
27=/home/sears/lladd/test/dfa/star.c
28=/home/sears/lladd/src/apps/cht/cht.h
29=/home/sears/lladd/libdfa/libdfa.h
30=/home/sears/lladd/src/libdfa/libdfa.c
31=/home/sears/lladd/src/apps/cht/cht_client.c
32=/home/sears/lladd/src/lladd/operations/linearHashNTA.c
33=/home/sears/lladd/test/cht/client.conf
34=/home/sears/lladd/libdfa/networksetup.h
35=/home/sears/lladd/src/apps/cht/cht.c
36=/home/sears/lladd/test/cht/cluster.conf
37=/home/sears/lladd/test/cht/client.c
38=/home/sears/lladd/src/libdfa/networksetup.c
39=/home/sears/lladd/src/apps/cht/cht_server.c
40=/home/sears/lladd/src/apps/cht/cht_message.c
41=/home/sears/lladd/src/libdfa/messages.c
42=/home/sears/lladd/libdfa/messages.h
43=/home/sears/lladd/src/2pc/2pc.c
[Project Tree]
0=0
1=0:1
[Symbol Tree]
0=0
1=2
2=3
3=4
4=5
[File Tree]
0=0
1=0:6
2=0:6:2
3=0:10
4=0:10:4
5=0:10:4:4
6=0:12
[executer args]
0=check_linearHash
1=make check