Skip to content

Commit

Permalink
imported
Browse files Browse the repository at this point in the history
  • Loading branch information
hyeontaek committed Oct 23, 2011
0 parents commit fac2497
Show file tree
Hide file tree
Showing 168 changed files with 22,323 additions and 0 deletions.
32 changes: 32 additions & 0 deletions AUTHORS
@@ -0,0 +1,32 @@
=======
CONTACT
=======
For questions regarding SILT, please contact the FAWN/SILT developers at
fawn-dev@mailman.srv.cs.cmu.edu.


=======
AUTHORS
=======

SILT authors:

Hyeontaek Lim <hl@cs.cmu.edu>
Bin Fan <binfan@cs.cmu.edu>

FAWN-KV authors:

David Andersen <dga+@cs.cmu.edu>
Alex Crichton <acrichto@andrew.cmu.edu>
Jack Ferris <jhferris@andrew.cmu.edu>
Jason Franklin <jfrankli@cs.cmu.edu>
Alex Gartrell <agartrell@cmu.edu>
Dongsu Han <dongsuh+@cs.cmu.edu>
Michael Kaminsky <michael.e.kaminsky@intel.com>
Wyatt Lloyd <wlloyd@cs.princeton.edu>
Iulian Moraru <iulian@cs.cmu.edu>
Amar Phanishayee <amarp+@cs.cmu.edu>
Lawrence Tan <tlawrence85@cmu.edu>
Vijay Vasudevan <vrv+@cs.cmu.edu>
Reinhard Munz <munz@cmu.edu>

16 changes: 16 additions & 0 deletions COPYING
@@ -0,0 +1,16 @@
SILT: A Memory-Efficient, High-Performance Key-Value Store

Copyright 2011 Carnegie Mellon University

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Empty file added ChangeLog
Empty file.
6 changes: 6 additions & 0 deletions INSTALL
@@ -0,0 +1,6 @@
0) # requirements: Intel TBB, Google Test Library, PThread, Boost, OpenSSL, Xerces, GSL, NSort, BDB
1) autoreconf -is
2) ./configure
3) make
4) cd test/fawnds/
5) ./test<something>
8 changes: 8 additions & 0 deletions Makefile.am
@@ -0,0 +1,8 @@
ACLOCAL_AMFLAGS=-I m4

SUBDIRS = utils fawnds test
CLEANFILES = core *.core *~
DISTCLEANFILES = autom4te*.cache config.status config.log
MAINTAINERCLEANFILES = aclocal.m4 install-sh mkinstalldirs \
missing configure config.guess config.sub config.h.in \
ltconfig ltmain.sh Makefile.in stamp-h.in depcomp m4/*.m4
Empty file added NEWS
Empty file.
Empty file added README
Empty file.
81 changes: 81 additions & 0 deletions configure.ac
@@ -0,0 +1,81 @@
AC_PREREQ(2.61)
AC_INIT([silt], [0.1], [fawn-dev@mailman.srv.cs.cmu.edu])
AM_INIT_AUTOMAKE
LT_PREREQ([2.2])
LT_INIT([dlopen])

AC_CONFIG_HEADER([config.h])

CFLAGS="-g -O3" # -fno-omit-frame-pointer
CPPFLAGS="-g -O3" # -fno-omit-frame-pointer
CXXFLAGS="-g -O3" # -fno-omit-frame-pointer

# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
AC_PROG_MAKE_SET

AC_PROG_LIBTOOL
AC_CONFIG_MACRO_DIR([m4])


# Checks for libraries.
# FIXME: Replace `main' with a function in `-lgtest':
AC_CHECK_LIB([gtest], [main], [LIBS="-lgtest $LIBS"; no_libgtest=false],
[echo "gtest unittesting framework not found."; no_libgtest=true])
AC_LANG_CPLUSPLUS
AC_CHECK_LIB([tbb], [main], [], [echo "libtbb not found. Please install the Intel TBB before proceeding."; exit -1])
AC_CHECK_LIB([gtest_main], [main], [], [echo "gtest_main not found. Please install google test library before proceeding"; exit -1])
AC_CHECK_LIB([pthread], [pthread_mutex_init], [], [echo "pthreads not found. Please install pthread library before proceeding"; exit -1])
AC_CHECK_LIB([boost_thread-mt], [main], [], [echo "boost library not found. Please install boost library before proceeding"; exit -1])
AC_CHECK_LIB([crypto], [main], [], [echo "openssl crypto library not found. Please install openssl library before proceeding"; exit -1])
AC_CHECK_LIB([xerces-c], [main], [], [echo "Xerces XML parsing library not found. Please install xerces library before proceeding"; exit -1])
AC_CHECK_LIB([m], [cos], [], [echo "m library not found. Please install m library before proceeding"; exit -1])
AC_CHECK_LIB([gslcblas], [cblas_dgemm], [], [echo "gsl library not found. Please install gsl library before proceeding"; exit -1])
AC_CHECK_LIB([gsl], [gsl_blas_dgemm], [], [echo "gsl library not found. Please install gsl library before proceeding"; exit -1])
AC_CHECK_LIB([nsort], [nsort_define], [], [echo "nsort library not found. An inferior sorting will be used."])
AC_CHECK_LIB([db], [db_create], [], [echo "Berkeley Database library not found. Support for BDB will be excluded."])


# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/param.h sys/socket.h sys/time.h unistd.h])

# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_CONST
AC_C_INLINE
AC_TYPE_INT32_T
AC_TYPE_INT64_T
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_HEADER_TIME
AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_TYPE_UINT8_T
AC_C_VOLATILE


# Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_FUNC_MALLOC
AC_FUNC_MEMCMP
AC_FUNC_MMAP
AC_FUNC_REALLOC
AC_FUNC_SELECT_ARGTYPES
AC_TYPE_SIGNAL
AC_CHECK_FUNCS([bzero ftruncate gethostbyname getpagesize gettimeofday inet_ntoa memchr memmove memset munmap select socket strdup strerror strtol strtoul strtoull])

#CFLAGS="$CFLAGS -Wall -Wextra"
#CXXFLAGS="$CXXFLAGS -Wall -Wextra"

AC_CONFIG_FILES([ Makefile
utils/Makefile
fawnds/Makefile
test/Makefile
test/fawnds/Makefile
])

AC_OUTPUT
67 changes: 67 additions & 0 deletions fawnds/DOMTreeErrorReporter.cpp
@@ -0,0 +1,67 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/*
* $Id: DOMTreeErrorReporter.cpp 471735 2006-11-06 13:53:58Z amassari $
*/

// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/sax/SAXParseException.hpp>
#include "DOMTreeErrorReporter.hpp"
#if defined(XERCES_NEW_IOSTREAMS)
#include <iostream>
#else
#include <iostream.h>
#endif
#include <stdlib.h>
#include <string.h>


void DOMTreeErrorReporter::warning(const SAXParseException& toCatch)
{
XERCES_STD_QUALIFIER cerr << "Warning at file \"" << StrX(toCatch.getSystemId())
<< "\", line " << toCatch.getLineNumber()
<< ", column " << toCatch.getColumnNumber()
<< "\n Message: " << StrX(toCatch.getMessage()) << XERCES_STD_QUALIFIER endl;
}

void DOMTreeErrorReporter::error(const SAXParseException& toCatch)
{
fSawErrors = true;
XERCES_STD_QUALIFIER cerr << "Error at file \"" << StrX(toCatch.getSystemId())
<< "\", line " << toCatch.getLineNumber()
<< ", column " << toCatch.getColumnNumber()
<< "\n Message: " << StrX(toCatch.getMessage()) << XERCES_STD_QUALIFIER endl;
}

void DOMTreeErrorReporter::fatalError(const SAXParseException& toCatch)
{
fSawErrors = true;
XERCES_STD_QUALIFIER cerr << "Fatal Error at file \"" << StrX(toCatch.getSystemId())
<< "\", line " << toCatch.getLineNumber()
<< ", column " << toCatch.getColumnNumber()
<< "\n Message: " << StrX(toCatch.getMessage()) << XERCES_STD_QUALIFIER endl;
}

void DOMTreeErrorReporter::resetErrors()
{
fSawErrors = false;
}


124 changes: 124 additions & 0 deletions fawnds/DOMTreeErrorReporter.hpp
@@ -0,0 +1,124 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/*
* $Id: DOMTreeErrorReporter.hpp 471735 2006-11-06 13:53:58Z amassari $
*/

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/sax/ErrorHandler.hpp>
#if defined(XERCES_NEW_IOSTREAMS)
#include <iostream>
#else
#include <iostream.h>
#endif


XERCES_CPP_NAMESPACE_USE


class DOMTreeErrorReporter : public ErrorHandler
{
public:
// -----------------------------------------------------------------------
// Constructors and Destructor
// -----------------------------------------------------------------------
DOMTreeErrorReporter() :
fSawErrors(false)
{
}

~DOMTreeErrorReporter()
{
}


// -----------------------------------------------------------------------
// Implementation of the error handler interface
// -----------------------------------------------------------------------
void warning(const SAXParseException& toCatch);
void error(const SAXParseException& toCatch);
void fatalError(const SAXParseException& toCatch);
void resetErrors();

// -----------------------------------------------------------------------
// Getter methods
// -----------------------------------------------------------------------
bool getSawErrors() const;

// -----------------------------------------------------------------------
// Private data members
//
// fSawErrors
// This is set if we get any errors, and is queryable via a getter
// method. Its used by the main code to suppress output if there are
// errors.
// -----------------------------------------------------------------------
bool fSawErrors;
};

inline bool DOMTreeErrorReporter::getSawErrors() const
{
return fSawErrors;
}

// ---------------------------------------------------------------------------
// This is a simple class that lets us do easy (though not terribly efficient)
// trancoding of XMLCh data to local code page for display.
// ---------------------------------------------------------------------------
class StrX
{
public :
// -----------------------------------------------------------------------
// Constructors and Destructor
// -----------------------------------------------------------------------
StrX(const XMLCh* const toTranscode)
{
// Call the private transcoding method
fLocalForm = XMLString::transcode(toTranscode);
}

~StrX()
{
XMLString::release(&fLocalForm);
}


// -----------------------------------------------------------------------
// Getter methods
// -----------------------------------------------------------------------
const char* localForm() const
{
return fLocalForm;
}

private :
// -----------------------------------------------------------------------
// Private data members
//
// fLocalForm
// This is the local code page form of the string.
// -----------------------------------------------------------------------
char* fLocalForm;
};

inline XERCES_STD_QUALIFIER ostream& operator<<(XERCES_STD_QUALIFIER ostream& target, const StrX& toDump)
{
target << toDump.localForm();
return target;
}

49 changes: 49 additions & 0 deletions fawnds/DOMWriteErrorHandler.cpp
@@ -0,0 +1,49 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/*
* $Id: DOMPrintErrorHandler.cpp 471735 2006-11-06 13:53:58Z amassari $
*/

#include <xercesc/util/XMLString.hpp>
#include <xercesc/dom/DOMError.hpp>
#if defined(XERCES_NEW_IOSTREAMS)
#include <iostream>
#else
#include <iostream.h>
#endif

#include "DOMWriteErrorHandler.hpp"

bool DOMWriteErrorHandler::handleError(const DOMError &domError)
{
// Display whatever error message passed from the serializer
if (domError.getSeverity() == DOMError::DOM_SEVERITY_WARNING)
XERCES_STD_QUALIFIER cerr << "\nWarning Message: ";
else if (domError.getSeverity() == DOMError::DOM_SEVERITY_ERROR)
XERCES_STD_QUALIFIER cerr << "\nError Message: ";
else
XERCES_STD_QUALIFIER cerr << "\nFatal Message: ";

char *msg = XMLString::transcode(domError.getMessage());
XERCES_STD_QUALIFIER cerr<< msg <<XERCES_STD_QUALIFIER endl;
XMLString::release(&msg);

// Instructs the serializer to continue serialization if possible.
return true;
}

0 comments on commit fac2497

Please sign in to comment.