diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 64d3988..a9d2ab8 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -31,7 +31,6 @@ CREATE_EXECUTABLE(pageOrientedListNTA) CREATE_EXECUTABLE(linearHashNTAThreaded) CREATE_EXECUTABLE(linearHashNTAMultiReader) CREATE_EXECUTABLE(linearHashNTAWriteRequests) -CREATE_EXECUTABLE(zeroCopy) CREATE_EXECUTABLE(sequentialThroughput) CREATE_EXECUTABLE(qos) CREATE_EXECUTABLE(writeBack) @@ -41,6 +40,9 @@ CREATE_EXECUTABLE(redBlackMemoryOverhead) CREATE_EXECUTABLE(hashPerformance) CREATE_EXECUTABLE(seekMap) CREATE_EXECUTABLE(rawIOPS) +CREATE_EXECUTABLE(turbine) +CREATE_EXECUTABLE(stride) +CREATE_EXECUTABLE(butterfly) IF(CHECK_LIBRARY) ADD_TEST(rose rose) diff --git a/benchmarks/zeroCopy.c b/benchmarks/zeroCopy.c deleted file mode 100644 index 647ad9d..0000000 --- a/benchmarks/zeroCopy.c +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include - -#include -#include -#include - -#include -#include -#include - -int main(int argc, char** argv) { - assert(argc == 3); - -#define ZEROCOPY 0 -#define LSNMODE 1 - - int mode = atoi(argv[1]); - - int count = atoi(argv[2]); - - int longsPerPage = PAGE_SIZE / sizeof(long); - - if(ZEROCOPY == mode) { - printf("Running ZEROCOPY mode. Count = %d\n", count); - } - - Tinit(); - int xid = Tbegin(); - - long * buf = malloc(longsPerPage * sizeof(long)); - - for(int i = 0; i < count; i++) { - int pageNum = TpageAlloc(xid); - - Page * p = loadPage(xid, pageNum); - if(ZEROCOPY == mode) { - long * data = (long*) rawPageGetData(xid, p); - for(int j = 0; j < longsPerPage; j++) { - data[j] = j; - } - rawPageSetData(xid, 0, p); // XXX writelatch! - } else if(LSNMODE == mode) { - long * data = (long*) rawPageGetData(xid, p); - memcpy(buf, data, PAGE_SIZE); - for(int j = 0; j < longsPerPage; j++) { - buf[j] = j; - } - memcpy(data, buf, PAGE_SIZE); - - rawPageSetData(xid, 0, p); - } - releasePage(p); - - } - Tcommit(xid); - Tdeinit(); -} diff --git a/src/stasis/CMakeLists.txt b/src/stasis/CMakeLists.txt index c39879b..1c6010b 100644 --- a/src/stasis/CMakeLists.txt +++ b/src/stasis/CMakeLists.txt @@ -36,7 +36,6 @@ ADD_LIBRARY(stasis util/crc32.c page/uninitialized.c page/slotted.c page/fixed.c - page/raw.c page/lsnFree.c page/segment.c experimental/latchFree/lfSlotted.c diff --git a/src/stasis/operations/blobs.c b/src/stasis/operations/blobs.c index fb4693c..6430d7a 100644 --- a/src/stasis/operations/blobs.c +++ b/src/stasis/operations/blobs.c @@ -9,7 +9,6 @@ #include #include #include -#include #include diff --git a/src/stasis/page/raw.c b/src/stasis/page/raw.c deleted file mode 100644 index 009df03..0000000 --- a/src/stasis/page/raw.c +++ /dev/null @@ -1,52 +0,0 @@ -#include -#include -#include -#include -/** - @todo Should rawPageInferMetadata set a page type in the Page - struct? - - XXX rawPageInferMetadata is wrong; setting lsn to LogFlushedLSN() breaks - recovery. - - XXX still not correct; need an "LSN_FREE" constant. -*/ -void rawPageInferMetadata(Page * p) { - p->LSN = 0; //stasis_log_file->first_unstable_lsn(stasis_log_file, LOG_FORCE_WAL); -} - -byte* rawPageGetData(int xid, Page * p) { - assertlocked(p->rwlatch); - return units_from_start_raw(byte, p, 0); -} - -void rawPageSetData(int xid, lsn_t lsn, Page * p) { - assertlocked(p->rwlatch); - // writelock(p->rwlatch, 255); - rawPageWriteLSN(xid, p, lsn); - // XXX should be handled in releasePage. - stasis_dirty_page_table_set_dirty(stasis_runtime_dirty_page_table(), p); - // unlock(p->rwlatch); - return; -} - -lsn_t rawPageReadLSN(const Page * p) { - assertlocked(p->rwlatch); - // There are some potential optimizations here since the page - // doesn't "really" have an LSN at all, but we need to be careful - // about log truncation... - return p->LSN; -} - -void rawPageWriteLSN(int xid, Page * p, lsn_t lsn) { - assertlocked(p->rwlatch); - if(p->LSN < lsn) { p->LSN = lsn; } -} - -void rawPageCommit(int xid) { - // no-op -} - -void rawPageAbort(int xid) { - // no-op -} diff --git a/stasis/page/raw.h b/stasis/page/raw.h deleted file mode 100644 index d933585..0000000 --- a/stasis/page/raw.h +++ /dev/null @@ -1,98 +0,0 @@ -/*--- -This software is copyrighted by the Regents of the University of -California, and other parties. The following terms apply to all files -associated with the software unless explicitly disclaimed in -individual files. - -The authors hereby grant permission to use, copy, modify, distribute, -and license this software and its documentation for any purpose, -provided that existing copyright notices are retained in all copies -and that this notice is included verbatim in any distributions. No -written agreement, license, or royalty fee is required for any of the -authorized uses. Modifications to this software may be copyrighted by -their authors and need not follow the licensing terms described here, -provided that the new terms are clearly indicated on the first page of -each file where they apply. - -IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY -FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY -DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND -NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND -THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE -MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - -GOVERNMENT USE: If you are acquiring this software on behalf of the -U.S. government, the Government shall have only "Restricted Rights" in -the software and related documentation as defined in the Federal -Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you are -acquiring the software on behalf of the Department of Defense, the -software shall be classified as "Commercial Computer Software" and the -Government shall have only "Restricted Rights" as defined in Clause -252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the -authors grant the U.S. Government and others acting in its behalf -permission to use and distribute the software in accordance with the -terms specified in this license. ----*/ - -/** - * @file - * - * interface for dealing with raw pages - * - * This file provides a re-entrant interface for pages that do not - * contain any metadata that LLADD understands. - * - * @ingroup LLADD_CORE - * $Id$ - - STRUCTURE OF A RAW PAGE -
- +----------------------------------------------------------------------+
- |                                                                      |
- |  USABLE SPACE                                                        |
- |                                                                      |
- |                                                                      |
- |                                                                      |
- |                                                                      |
- |                                                                      |
- |                                                                      |
- |                                                                      |
- |                                                                      |
- |                                                                      |
- |                                                                      |
- |                                                                      |
- |                                                                      |
- |                                                                      |
- |                                                                      |
- +----------------------------------------------------------------------+
-
- */ - -#include -#include - -#define units_from_start_raw(unit,page,count) (((unit*)(page->memAddr))+(count)) - -/** - @return a pointer to the buffer memory that stores this page. -*/ -byte* rawPageGetData(int xid, Page * page); -/** - Inform the raw page implementation that the page is dirty. -*/ -void rawPageSetData(int xid, lsn_t lsn, Page * page); - -lsn_t rawPageReadLSN(const Page * page); - -void rawPageWriteLSN(int xid, Page * page, lsn_t lsn); - -/** Should be called when a transaction that has touched this page commits. */ -void rawPageCommit(int xid); -/** Should be called when a transaction that has touched this page aborts. */ -void rawPageAbort(int xid);