mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of https://github.com/arangodb/arangodb into devel
This commit is contained in:
commit
4769501804
|
@ -130,11 +130,20 @@ find_program (GIT_EXE git)
|
|||
if (DEFINED GIT_EXE AND IS_DIRECTORY "${CMAKE_SOURCE_DIR}/.git")
|
||||
execute_process(
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
|
||||
COMMAND ${GIT_EXE} describe --all --tags --long --dirty=-dirty
|
||||
OUTPUT_VARIABLE GIT_OUTPUT)
|
||||
string(STRIP ${GIT_OUTPUT} REPOSITORY_VERSION)
|
||||
set(ARANGODB_BUILD_REPOSITORY ${REPOSITORY_VERSION})
|
||||
set(HAVE_ARANGODB_BUILD_REPOSITORY "1")
|
||||
|
||||
# this may fail on shallow clones that only knows about a limited number of commits.
|
||||
# if there is an older merged revision the head, it may not be available to git.
|
||||
if (NOT GIT_OUTPUT)
|
||||
set(ARANGODB_BUILD_REPOSITORY "GIT FAILED TO RETRIEVE THE VERSION - SHALLOW CLONE?")
|
||||
set(HAVE_ARANGODB_BUILD_REPOSITORY "1")
|
||||
else()
|
||||
string(STRIP ${GIT_OUTPUT} REPOSITORY_VERSION)
|
||||
set(ARANGODB_BUILD_REPOSITORY ${REPOSITORY_VERSION})
|
||||
set(HAVE_ARANGODB_BUILD_REPOSITORY "1")
|
||||
endif()
|
||||
else ()
|
||||
set(ARANGODB_BUILD_REPOSITORY "")
|
||||
set(HAVE_ARANGODB_BUILD_REPOSITORY "0")
|
||||
|
@ -889,3 +898,5 @@ endif()
|
|||
add_custom_target(packages
|
||||
DEPENDS ${PACKAGES_LIST}
|
||||
)
|
||||
|
||||
message(INFO " Building for git revision: ${ARANGODB_BUILD_REPOSITORY}")
|
||||
|
|
|
@ -259,4 +259,4 @@ The above referenced chapters describe the various APIs of ArangoDBs graph engin
|
|||
|
||||
!SUBSECTION Higher volume graph examples
|
||||
|
||||
All of the above examples are rather small so they are easier to comprehend and can demonstrate the way the functionality works. There are however several datasets freely available on the web that are a lot bigger. [We collected some of them with import scripts](https://github.com/triAGENS/ArangoDB-Data/) so you may play around with them. Another huge graph is the [Pokec social network](https://snap.stanford.edu/data/soc-pokec.html) from Slovakia that we [used for performance testing on several databases](https://www.arangodb.com/2015/06/multi-model-benchmark/); You will find importing scripts etc. in this blogpost.
|
||||
All of the above examples are rather small so they are easier to comprehend and can demonstrate the way the functionality works. There are however several datasets freely available on the web that are a lot bigger. [We collected some of them with import scripts](https://github.com/arangodb/example-datasets) so you may play around with them. Another huge graph is the [Pokec social network](https://snap.stanford.edu/data/soc-pokec.html) from Slovakia that we [used for performance testing on several databases](https://www.arangodb.com/2015/06/multi-model-benchmark/); You will find importing scripts etc. in this blogpost.
|
||||
|
|
|
@ -43,7 +43,7 @@ DispatcherFeature::DispatcherFeature(
|
|||
application_features::ApplicationServer* server)
|
||||
: ApplicationFeature(server, "Dispatcher"),
|
||||
_nrStandardThreads(0),
|
||||
_nrExtraThreads(0),
|
||||
_nrExtraThreads(-1),
|
||||
_nrAqlThreads(0),
|
||||
_queueSize(16384),
|
||||
_dispatcher(nullptr) {
|
||||
|
@ -72,7 +72,7 @@ void DispatcherFeature::collectOptions(
|
|||
|
||||
options->addHiddenOption("--server.extra-threads",
|
||||
"number of extra threads that can additionally be created when all regular threads are blocked and the client requests thread creation",
|
||||
new Int64Parameter(&_nrExtraThreadsArgument));
|
||||
new Int64Parameter(&_nrExtraThreads));
|
||||
|
||||
options->addHiddenOption("--server.aql-threads",
|
||||
"number of threads for basic operations (0 = automatic)",
|
||||
|
@ -102,10 +102,8 @@ void DispatcherFeature::validateOptions(std::shared_ptr<ProgramOptions>) {
|
|||
|
||||
TRI_ASSERT(_nrAqlThreads >= 1);
|
||||
|
||||
if (_nrExtraThreadsArgument < 0) {
|
||||
if (_nrExtraThreads < 0) {
|
||||
_nrExtraThreads = _nrStandardThreads;
|
||||
} else {
|
||||
_nrExtraThreads = static_cast<uint64_t>(_nrExtraThreadsArgument);
|
||||
}
|
||||
|
||||
if (_queueSize <= 128) {
|
||||
|
|
|
@ -52,9 +52,8 @@ class DispatcherFeature final
|
|||
void unprepare() override final;
|
||||
|
||||
private:
|
||||
int64_t _nrExtraThreadsArgument;
|
||||
uint64_t _nrStandardThreads;
|
||||
uint64_t _nrExtraThreads;
|
||||
int64_t _nrExtraThreads;
|
||||
uint64_t _nrAqlThreads;
|
||||
uint64_t _queueSize;
|
||||
|
||||
|
|
|
@ -484,7 +484,7 @@ bool HttpCommTask::processRead() {
|
|||
LOG(DEBUG) << "connection close requested by client";
|
||||
_closeRequested = true;
|
||||
} else if (_requestAsHttp()->isHttp10() && connectionType != "keep-alive") {
|
||||
// HTTP 1.0 request, and no "Connection: Keep-Alive" header sent
|
||||
// HTTP 1.0 request, and no "Connection: keep-alive" header sent
|
||||
// we should close the connection
|
||||
LOG(DEBUG) << "no keep-alive, connection close requested by client";
|
||||
_closeRequested = true;
|
||||
|
|
|
@ -137,7 +137,7 @@ void DatabaseFeature::validateOptions(std::shared_ptr<ProgramOptions> options) {
|
|||
FATAL_ERROR_EXIT();
|
||||
}
|
||||
|
||||
ctx->getCheckPath(_databasePath, "database.directory");
|
||||
ctx->getCheckPath(_databasePath, "database.directory", false);
|
||||
|
||||
if (_maximalJournalSize < TRI_JOURNAL_MINIMAL_SIZE) {
|
||||
LOG(FATAL) << "invalid value for '--database.maximal-journal-size'. "
|
||||
|
|
|
@ -155,7 +155,7 @@ void V8DealerFeature::validateOptions(std::shared_ptr<ProgramOptions> options) {
|
|||
FATAL_ERROR_EXIT();
|
||||
}
|
||||
|
||||
ctx->getCheckPath(_startupPath, "javascript.startup-directory");
|
||||
ctx->getCheckPath(_startupPath, "javascript.startup-directory", true);
|
||||
|
||||
_startupLoader.setDirectory(_startupPath);
|
||||
ServerState::instance()->setJavaScriptPath(_startupPath);
|
||||
|
@ -166,7 +166,7 @@ void V8DealerFeature::validateOptions(std::shared_ptr<ProgramOptions> options) {
|
|||
FATAL_ERROR_EXIT();
|
||||
}
|
||||
|
||||
ctx->getCheckPath(_appPath, "javascript.app-directory");
|
||||
ctx->getCheckPath(_appPath, "javascript.app-directory", true);
|
||||
|
||||
// use a minimum of 1 second for GC
|
||||
if (_gcFrequency < 1) {
|
||||
|
|
|
@ -817,7 +817,7 @@ void V8ShellFeature::initGlobals() {
|
|||
FATAL_ERROR_EXIT();
|
||||
}
|
||||
|
||||
ctx->getCheckPath(_startupDirectory, "javascript.startup-directory");
|
||||
ctx->getCheckPath(_startupDirectory, "javascript.startup-directory", true);
|
||||
|
||||
// initialize standard modules
|
||||
std::string modules =
|
||||
|
|
|
@ -113,8 +113,8 @@ configure_file (
|
|||
|
||||
|
||||
#--------------------------------------------------------------------------------
|
||||
get_cmake_property(_variableNames VARIABLES)
|
||||
foreach (_variableName ${_variableNames})
|
||||
message(STATUS "${_variableName}=${${_variableName}}")
|
||||
endforeach()
|
||||
#get_cmake_property(_variableNames VARIABLES)
|
||||
#foreach (_variableName ${_variableNames})
|
||||
# message(STATUS "${_variableName}=${${_variableName}}")
|
||||
#endforeach()
|
||||
#--------------------------------------------------------------------------------
|
||||
|
|
|
@ -273,11 +273,14 @@ void ArangoGlobalContext::tempPathAvailable() {
|
|||
#endif
|
||||
}
|
||||
|
||||
void ArangoGlobalContext::getCheckPath(std::string &path, const char *whichPath) {
|
||||
void ArangoGlobalContext::getCheckPath(std::string &path, const char *whichPath, bool fatal) {
|
||||
if (!arangodb::basics::FileUtils::exists(path)) {
|
||||
std::string directory;
|
||||
directory = arangodb::basics::FileUtils::buildFilename(_runRoot, path);
|
||||
if (!arangodb::basics::FileUtils::exists(directory)) {
|
||||
if (!fatal) {
|
||||
return;
|
||||
}
|
||||
LOG(ERR) << "failed to locate " << whichPath << " directory, its neither available in '" << path << "' nor in '" << directory << "'";
|
||||
FATAL_ERROR_EXIT();
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ class ArangoGlobalContext {
|
|||
public:
|
||||
std::string binaryName() { return _binaryName; }
|
||||
std::string runRoot() { return _runRoot; }
|
||||
void getCheckPath(std::string &path, const char *whichPath);
|
||||
void getCheckPath(std::string &path, const char *whichPath, bool fatal);
|
||||
int exit(int ret);
|
||||
void installHup();
|
||||
void installSegv();
|
||||
|
|
Loading…
Reference in New Issue