diff --git a/arangod/Pregel/Algos/DMID/DMID.cpp b/arangod/Pregel/Algos/DMID/DMID.cpp index d939372ef7..aef27a8793 100644 --- a/arangod/Pregel/Algos/DMID/DMID.cpp +++ b/arangod/Pregel/Algos/DMID/DMID.cpp @@ -634,6 +634,7 @@ GraphFormat* DMID::inputFormat() const { struct DMIDMasterContext : public MasterContext { DMIDMasterContext() {} // TODO use _threashold + void preGlobalSuperstep() override { /** diff --git a/arangod/Pregel/Conductor.cpp b/arangod/Pregel/Conductor.cpp index 79f3145b17..3e21484518 100644 --- a/arangod/Pregel/Conductor.cpp +++ b/arangod/Pregel/Conductor.cpp @@ -460,7 +460,7 @@ static void resolveInfo( std::vector& allShards) { ServerState *ss = ServerState::instance(); - if (!ss->isRunningInCluster()) { + if (!ss->isRunningInCluster()) { // single server mode LogicalCollection *lc = vocbase->lookupCollection(collectionID); if (lc == nullptr || lc->deleted()) { THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_ARANGO_COLLECTION_NOT_FOUND, diff --git a/arangod/Pregel/GraphStore.cpp b/arangod/Pregel/GraphStore.cpp index 9cf7258379..d8198d32ab 100644 --- a/arangod/Pregel/GraphStore.cpp +++ b/arangod/Pregel/GraphStore.cpp @@ -122,8 +122,8 @@ void GraphStore::loadShards(WorkerConfig* config, if (_loadedShards.find(vertexShards[i]) != _loadedShards.end()) { continue; } - ShardID const& vertexShard(vertexShards[i]); - + + ShardID const& vertexShard = vertexShards[i]; uint64_t nextEdgeOffset = edgeOffset; std::vector edgeLookups; // distributeshardslike should cause the edges for a vertex to be @@ -326,8 +326,8 @@ void GraphStore::_loadVertices(ShardID const& vertexShard, _graphFormat->copyVertexData(documentId, document, ptr, sizeof(V)); } // load edges - for (ShardID const& it : edgeShards) { - _loadEdges(trx.get(), it, ventry, documentId); + for (ShardID const& edgeShard : edgeShards) { + _loadEdges(trx.get(), edgeShard, ventry, documentId); } vertexOffset++; edgeOffset += ventry._edgeCount; @@ -403,9 +403,12 @@ void GraphStore::_loadEdges(transaction::Methods* trx, _graphFormat->copyEdgeData(document, edge.data(), sizeof(E)); if (sourceShard == (prgl_shard_t)-1 || edge._targetShard == (prgl_shard_t)-1) { + LOG_TOPIC(ERR, Logger::PREGEL) << "Could not resolve target shard of edge"; return; } offset++; + } else { + LOG_TOPIC(ERR, Logger::PREGEL) << "Could not resolve target shard of edge"; } } }; diff --git a/arangod/Pregel/MasterContext.h b/arangod/Pregel/MasterContext.h index 7f1bb2021e..30ada008ca 100644 --- a/arangod/Pregel/MasterContext.h +++ b/arangod/Pregel/MasterContext.h @@ -43,6 +43,7 @@ class MasterContext { public: MasterContext(){}; + virtual ~MasterContext(){} inline uint64_t globalSuperstep() const { return _globalSuperstep; } diff --git a/arangod/Pregel/Utils.cpp b/arangod/Pregel/Utils.cpp index fe4c461ecf..acd435046a 100644 --- a/arangod/Pregel/Utils.cpp +++ b/arangod/Pregel/Utils.cpp @@ -127,9 +127,9 @@ int Utils::resolveShard(WorkerConfig const* config, partial.close(); // LOG_TOPIC(INFO, Logger::PREGEL) << "Partial doc: " << partial.toJson(); int res = - ci->getResponsibleShard(info.get(), partial.slice(), true, responsibleShard, + ci->getResponsibleShard(info.get(), partial.slice(), false, responsibleShard, usesDefaultShardingAttributes); - TRI_ASSERT(usesDefaultShardingAttributes); // should be true anyway + //TRI_ASSERT(usesDefaultShardingAttributes); // should be true anyway return res; } diff --git a/arangod/Pregel/VertexComputation.h b/arangod/Pregel/VertexComputation.h index 32aa223288..0128d82156 100644 --- a/arangod/Pregel/VertexComputation.h +++ b/arangod/Pregel/VertexComputation.h @@ -52,7 +52,7 @@ class VertexContext { VertexEntry* _vertexEntry; public: - ~VertexContext() {} + virtual ~VertexContext() {} template inline void aggregate(std::string const& name, T const& value) { @@ -105,6 +105,8 @@ class VertexComputation : public VertexContext { bool _enterNextGSS = false; public: + virtual ~VertexComputation() {} + void sendMessage(Edge const* edge, M const& data) { _cache->appendMessage(edge->targetShard(), edge->toKey(), data); } @@ -140,6 +142,7 @@ class VertexCompensation : public VertexContext { friend class Worker; public: + virtual ~VertexCompensation() {} virtual void compensate(bool inLostPartition) = 0; }; }