mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of github.com:arangodb/arangodb into devel
This commit is contained in:
commit
0ea2ca2520
|
@ -677,7 +677,7 @@ LogicalCollection* CreateCollectionCoordinator(LogicalCollection* parameters) {
|
|||
std::unordered_map<std::string, std::vector<std::string>>>(
|
||||
arangodb::distributeShards(parameters->numberOfShards(),
|
||||
parameters->replicationFactor(), dbServers));
|
||||
if (shards->empty()) {
|
||||
if (shards->empty() && !parameters->isSmart()) {
|
||||
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_INTERNAL,
|
||||
"no database servers found in cluster");
|
||||
}
|
||||
|
|
|
@ -994,10 +994,31 @@ void LogicalCollection::setStatus(TRI_vocbase_col_status_e status) {
|
|||
}
|
||||
}
|
||||
|
||||
// TODO Make this pretty. Copy of other with only one swith. Ambigous
|
||||
void LogicalCollection::toVelocyPackForAgency(VPackBuilder& result) {
|
||||
_status = TRI_VOC_COL_STATUS_LOADED;
|
||||
result.openObject();
|
||||
toVelocyPackInObject(result);
|
||||
|
||||
result.close(); // Base Object
|
||||
}
|
||||
|
||||
void LogicalCollection::toVelocyPack(VPackBuilder& result, bool withPath) const {
|
||||
result.openObject();
|
||||
toVelocyPackInObject(result);
|
||||
result.add("cid", VPackValue(std::to_string(_cid))); // export cid for compatibility, too
|
||||
result.add("planId", VPackValue(std::to_string(_planId))); // export planId for cluster
|
||||
result.add("version", VPackValue(_version));
|
||||
|
||||
if (withPath) {
|
||||
result.add("path", VPackValue(_path));
|
||||
}
|
||||
result.add("allowUserKeys", VPackValue(_allowUserKeys));
|
||||
|
||||
result.close();
|
||||
}
|
||||
|
||||
// Internal helper that inserts VPack info into an existing object and leaves the object open
|
||||
void LogicalCollection::toVelocyPackInObject(VPackBuilder& result) const {
|
||||
result.add("id", VPackValue(std::to_string(_cid)));
|
||||
result.add("name", VPackValue(_name));
|
||||
result.add("type", VPackValue(static_cast<int>(_type)));
|
||||
|
@ -1041,63 +1062,8 @@ void LogicalCollection::toVelocyPackForAgency(VPackBuilder& result) {
|
|||
}
|
||||
result.close(); // shards
|
||||
|
||||
|
||||
result.add(VPackValue("indexes"));
|
||||
getIndexesVPack(result, false);
|
||||
|
||||
result.close(); // Base Object
|
||||
}
|
||||
|
||||
void LogicalCollection::toVelocyPack(VPackBuilder& result, bool withPath) const {
|
||||
result.openObject();
|
||||
result.add("id", VPackValue(std::to_string(_cid)));
|
||||
result.add("cid", VPackValue(std::to_string(_cid))); // export cid for compatibility, too
|
||||
result.add("planId", VPackValue(std::to_string(_planId))); // export planId for cluster
|
||||
result.add("name", VPackValue(_name));
|
||||
result.add("status", VPackValue(_status));
|
||||
result.add("deleted", VPackValue(_isDeleted));
|
||||
result.add("type", VPackValue(static_cast<int>(_type)));
|
||||
result.add("doCompact", VPackValue(_doCompact));
|
||||
result.add("isSystem", VPackValue(_isSystem));
|
||||
result.add("isVolatile", VPackValue(_isVolatile));
|
||||
result.add("waitForSync", VPackValue(_waitForSync));
|
||||
result.add("journalSize", VPackValue(_journalSize));
|
||||
result.add("version", VPackValue(_version));
|
||||
|
||||
if (_keyGenerator != nullptr) {
|
||||
result.add(VPackValue("keyOptions"));
|
||||
result.openObject();
|
||||
_keyGenerator->toVelocyPack(result);
|
||||
result.close();
|
||||
}
|
||||
|
||||
if (withPath) {
|
||||
result.add("path", VPackValue(_path));
|
||||
}
|
||||
|
||||
result.add("indexBuckets", VPackValue(_indexBuckets));
|
||||
result.add(VPackValue("indexes"));
|
||||
getIndexesVPack(result, false);
|
||||
result.add("replicationFactor", VPackValue(_replicationFactor));
|
||||
result.add(VPackValue("shards"));
|
||||
result.openObject();
|
||||
for (auto const& shards : *_shardIds) {
|
||||
result.add(VPackValue(shards.first));
|
||||
result.openArray();
|
||||
for (auto const& servers : shards.second) {
|
||||
result.add(VPackValue(servers));
|
||||
}
|
||||
result.close(); // server array
|
||||
}
|
||||
result.close(); // shards
|
||||
result.add("allowUserKeys", VPackValue(_allowUserKeys));
|
||||
result.add(VPackValue("shardKeys"));
|
||||
result.openArray();
|
||||
for (auto const& key : _shardKeys) {
|
||||
result.add(VPackValue(key));
|
||||
}
|
||||
result.close(); // shardKeys
|
||||
result.close(); // Base Object
|
||||
}
|
||||
|
||||
void LogicalCollection::toVelocyPack(VPackBuilder& builder, bool includeIndexes,
|
||||
|
|
|
@ -223,7 +223,7 @@ class LogicalCollection {
|
|||
|
||||
// SECTION: Serialisation
|
||||
void toVelocyPack(arangodb::velocypack::Builder&, bool withPath) const;
|
||||
void toVelocyPackForAgency(arangodb::velocypack::Builder&);
|
||||
virtual void toVelocyPackForAgency(arangodb::velocypack::Builder&);
|
||||
|
||||
/// @brief transform the information for this collection to velocypack
|
||||
/// The builder has to be an opened Type::Object
|
||||
|
@ -356,7 +356,7 @@ class LogicalCollection {
|
|||
int endRead(bool useDeadlockDetector);
|
||||
int endWrite(bool useDeadlockDetector);
|
||||
|
||||
private:
|
||||
protected:
|
||||
// SECTION: Private functions
|
||||
|
||||
PhysicalCollection* createPhysical();
|
||||
|
@ -402,7 +402,7 @@ class LogicalCollection {
|
|||
public:
|
||||
// FIXME needs to be private
|
||||
int deletePrimaryIndex(arangodb::Transaction*, TRI_doc_mptr_t const*);
|
||||
private:
|
||||
protected:
|
||||
|
||||
int insertSecondaryIndexes(arangodb::Transaction*, TRI_doc_mptr_t const*,
|
||||
bool);
|
||||
|
@ -453,7 +453,9 @@ class LogicalCollection {
|
|||
|
||||
void increaseInternalVersion();
|
||||
|
||||
private:
|
||||
void toVelocyPackInObject(VPackBuilder& result) const;
|
||||
|
||||
protected:
|
||||
// SECTION: Private variables
|
||||
|
||||
// SECTION: Meta Information
|
||||
|
@ -509,7 +511,7 @@ class LogicalCollection {
|
|||
int const _replicationFactor;
|
||||
|
||||
// SECTION: Sharding
|
||||
size_t const _numberOfShards;
|
||||
size_t _numberOfShards;
|
||||
bool const _allowUserKeys;
|
||||
std::vector<std::string> _shardKeys;
|
||||
// This is shared_ptr because it is thread-safe
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
include(${CMAKE_SOURCE_DIR}/cmake/GNUInstallDirs.cmake)
|
||||
|
||||
set(ARANGODB_SOURCE_DIR ${CMAKE_SOURCE_DIR})
|
||||
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO "${CMAKE_INSTALL_SYSCONFDIR}/arangodb3")
|
||||
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO "${CMAKE_INSTALL_FULL_SYSCONFDIR}/arangodb3")
|
||||
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO "${CMAKE_INSTALL_SYSCONFDIR}/${CMAKE_PROJECT_NAME}")
|
||||
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO "${CMAKE_INSTALL_FULL_SYSCONFDIR}/${CMAKE_PROJECT_NAME}")
|
||||
|
||||
set(CMAKE_INSTALL_DATAROOTDIR_ARANGO "${CMAKE_INSTALL_DATAROOTDIR}/arangodb3")
|
||||
set(CMAKE_INSTALL_FULL_DATAROOTDIR_ARANGO "${CMAKE_INSTALL_FULL_DATAROOTDIR}/arangodb3")
|
||||
set(CMAKE_INSTALL_DATAROOTDIR_ARANGO "${CMAKE_INSTALL_DATAROOTDIR}/${CMAKE_PROJECT_NAME}")
|
||||
set(CMAKE_INSTALL_FULL_DATAROOTDIR_ARANGO "${CMAKE_INSTALL_FULL_DATAROOTDIR}/${CMAKE_PROJECT_NAME}")
|
||||
|
||||
if (MSVC OR DARWIN)
|
||||
set(ENABLE_UID_CFG false)
|
||||
|
@ -13,17 +13,19 @@ else ()
|
|||
set(ENABLE_UID_CFG true)
|
||||
endif ()
|
||||
|
||||
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO "${CMAKE_INSTALL_SYSCONFDIR}/arangodb3")
|
||||
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO "${CMAKE_INSTALL_FULL_SYSCONFDIR}/arangodb3")
|
||||
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO "${CMAKE_INSTALL_SYSCONFDIR}/${CMAKE_PROJECT_NAME}")
|
||||
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO "${CMAKE_INSTALL_FULL_SYSCONFDIR}/${CMAKE_PROJECT_NAME}")
|
||||
|
||||
# database directory
|
||||
FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/lib/arangodb3")
|
||||
# database directory
|
||||
set(ARANGODB_DB_DIRECTORY "${PROJECT_BINARY_DIR}/var/lib/${CMAKE_PROJECT_NAME}")
|
||||
FILE(MAKE_DIRECTORY ${ARANGODB_DB_DIRECTORY})
|
||||
|
||||
# apps
|
||||
FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/lib/arangodb3-apps")
|
||||
set(ARANGODB_APPS_DIRECTORY "${PROJECT_BINARY_DIR}/var/lib/${CMAKE_PROJECT_NAME}-apps")
|
||||
FILE(MAKE_DIRECTORY "${ARANGODB_APPS_DIRECTORY}")
|
||||
|
||||
# logs
|
||||
FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/log/arangodb3")
|
||||
FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/log/${CMAKE_PROJECT_NAME}")
|
||||
|
||||
include(InstallMacros)
|
||||
|
||||
|
@ -69,7 +71,7 @@ install(
|
|||
################################################################################
|
||||
|
||||
install(
|
||||
DIRECTORY ${PROJECT_BINARY_DIR}/var/lib/arangodb3
|
||||
DIRECTORY ${ARANGODB_DB_DIRECTORY}
|
||||
DESTINATION ${CMAKE_INSTALL_LOCALSTATEDIR}/lib)
|
||||
|
||||
################################################################################
|
||||
|
@ -77,22 +79,24 @@ install(
|
|||
################################################################################
|
||||
|
||||
install(
|
||||
DIRECTORY ${PROJECT_BINARY_DIR}/var/lib/arangodb3-apps
|
||||
DIRECTORY ${ARANGODB_APPS_DIRECTORY}
|
||||
DESTINATION ${CMAKE_INSTALL_LOCALSTATEDIR}/lib)
|
||||
|
||||
################################################################################
|
||||
### @brief install systemd service file
|
||||
### @brief detect if we're on a systemd enabled system; if install unit file.
|
||||
################################################################################
|
||||
if (${USE_ENTERPRISE})
|
||||
configure_file (
|
||||
FILES ${ARANGODB_SOURCE_DIR}/Installation/systemd/arangodb3.service.in
|
||||
DESTINATION ${PROJECT_BINARY_DIR}/usr/lib/systemd/system/arangodb3e.service
|
||||
NEWLINE_STYLE UNIX)
|
||||
else()
|
||||
if (IS_DIRECTORY /usr/lib/systemd/system)
|
||||
configure_file (
|
||||
${ARANGODB_SOURCE_DIR}/Installation/systemd/arangodb3.service.in
|
||||
${PROJECT_BINARY_DIR}/usr/lib/systemd/system/arangodb3.service
|
||||
NEWLINE_STYLE UNIX)
|
||||
if (${USE_ENTERPRISE})
|
||||
install(FILES ${PROJECT_BINARY_DIR}/usr/lib/systemd/system/arangodb3.service
|
||||
DESTINATION /usr/lib/systemd/system/arangodb3e.service)
|
||||
else()
|
||||
install(FILES ${PROJECT_BINARY_DIR}/usr/lib/systemd/system/arangodb3.service
|
||||
DESTINATION /usr/lib/systemd/system/arangodb3.service)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue