mirror of https://gitee.com/bigwinds/arangodb
deleted some marker types
This commit is contained in:
parent
eb82d96836
commit
a1c758b615
|
@ -296,8 +296,7 @@ static int StringifyMarkerDump(TRI_replication_dump_t* dump,
|
||||||
switch (marker->getType()) {
|
switch (marker->getType()) {
|
||||||
case TRI_DF_MARKER_VPACK_DOCUMENT: {
|
case TRI_DF_MARKER_VPACK_DOCUMENT: {
|
||||||
TRI_ASSERT(nullptr == document);
|
TRI_ASSERT(nullptr == document);
|
||||||
auto m = static_cast<wal::vpack_document_marker_t const*>(marker);
|
VPackSlice slice(reinterpret_cast<char const*>(marker) + DatafileHelper::VPackOffset(TRI_DF_MARKER_VPACK_DOCUMENT));
|
||||||
VPackSlice slice(reinterpret_cast<char const*>(m) + DatafileHelper::VPackOffset(TRI_DF_MARKER_VPACK_DOCUMENT));
|
|
||||||
key = slice.get(TRI_VOC_ATTRIBUTE_KEY).getString(keyLength);
|
key = slice.get(TRI_VOC_ATTRIBUTE_KEY).getString(keyLength);
|
||||||
rid = std::stoull(slice.get(TRI_VOC_ATTRIBUTE_REV).copyString());
|
rid = std::stoull(slice.get(TRI_VOC_ATTRIBUTE_REV).copyString());
|
||||||
type = REPLICATION_MARKER_DOCUMENT;
|
type = REPLICATION_MARKER_DOCUMENT;
|
||||||
|
@ -309,8 +308,7 @@ static int StringifyMarkerDump(TRI_replication_dump_t* dump,
|
||||||
|
|
||||||
case TRI_DF_MARKER_VPACK_REMOVE: {
|
case TRI_DF_MARKER_VPACK_REMOVE: {
|
||||||
TRI_ASSERT(nullptr == document);
|
TRI_ASSERT(nullptr == document);
|
||||||
auto m = static_cast<wal::vpack_remove_marker_t const*>(marker);
|
VPackSlice slice(reinterpret_cast<char const*>(marker) + DatafileHelper::VPackOffset(TRI_DF_MARKER_VPACK_REMOVE));
|
||||||
VPackSlice slice(reinterpret_cast<char const*>(m) + DatafileHelper::VPackOffset(TRI_DF_MARKER_VPACK_REMOVE));
|
|
||||||
key = slice.get(TRI_VOC_ATTRIBUTE_KEY).getString(keyLength);
|
key = slice.get(TRI_VOC_ATTRIBUTE_KEY).getString(keyLength);
|
||||||
rid = std::stoull(slice.get(TRI_VOC_ATTRIBUTE_REV).copyString());
|
rid = std::stoull(slice.get(TRI_VOC_ATTRIBUTE_REV).copyString());
|
||||||
type = REPLICATION_MARKER_REMOVE;
|
type = REPLICATION_MARKER_REMOVE;
|
||||||
|
@ -429,7 +427,7 @@ static int StringifyMarkerDump(TRI_replication_dump_t* dump,
|
||||||
|
|
||||||
static int StringifyWalMarkerDocument(TRI_replication_dump_t* dump,
|
static int StringifyWalMarkerDocument(TRI_replication_dump_t* dump,
|
||||||
TRI_df_marker_t const* marker) {
|
TRI_df_marker_t const* marker) {
|
||||||
auto m = reinterpret_cast<arangodb::wal::vpack_document_marker_t const*>(marker);
|
TRI_ASSERT(marker->getType() == TRI_DF_MARKER_VPACK_DOCUMENT);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
// TODO
|
// TODO
|
||||||
|
@ -443,7 +441,7 @@ static int StringifyWalMarkerDocument(TRI_replication_dump_t* dump,
|
||||||
VPackSlice slice(reinterpret_cast<char const*>(DatafileHelper::VPackOffset(TRI_DF_MARKER_VPACK_DOCUMENT)));
|
VPackSlice slice(reinterpret_cast<char const*>(DatafileHelper::VPackOffset(TRI_DF_MARKER_VPACK_DOCUMENT)));
|
||||||
|
|
||||||
APPEND_STRING(dump->_buffer, "\"tid\":\"");
|
APPEND_STRING(dump->_buffer, "\"tid\":\"");
|
||||||
APPEND_UINT64(dump->_buffer, m->_transactionId);
|
// APPEND_UINT64(dump->_buffer, m->_transactionId);
|
||||||
APPEND_STRING(dump->_buffer, "\",\"key\":\"");
|
APPEND_STRING(dump->_buffer, "\",\"key\":\"");
|
||||||
std::string key(slice.get(TRI_VOC_ATTRIBUTE_KEY).copyString());
|
std::string key(slice.get(TRI_VOC_ATTRIBUTE_KEY).copyString());
|
||||||
TRI_AppendString2StringBuffer(dump->_buffer, key.c_str(), key.size());
|
TRI_AppendString2StringBuffer(dump->_buffer, key.c_str(), key.size());
|
||||||
|
@ -466,7 +464,8 @@ static int StringifyWalMarkerDocument(TRI_replication_dump_t* dump,
|
||||||
|
|
||||||
static int StringifyWalMarkerRemove(TRI_replication_dump_t* dump,
|
static int StringifyWalMarkerRemove(TRI_replication_dump_t* dump,
|
||||||
TRI_df_marker_t const* marker) {
|
TRI_df_marker_t const* marker) {
|
||||||
auto m = reinterpret_cast<arangodb::wal::vpack_remove_marker_t const*>(marker);
|
TRI_ASSERT(marker->getType() == TRI_DF_MARKER_VPACK_REMOVE);
|
||||||
|
// auto m = reinterpret_cast<arangodb::wal::vpack_remove_marker_t const*>(marker);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
// TODO
|
// TODO
|
||||||
|
@ -478,10 +477,10 @@ static int StringifyWalMarkerRemove(TRI_replication_dump_t* dump,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
APPEND_STRING(dump->_buffer, "\"tid\":\"");
|
APPEND_STRING(dump->_buffer, "\"tid\":\"");
|
||||||
APPEND_UINT64(dump->_buffer, m->_transactionId);
|
// APPEND_UINT64(dump->_buffer, m->_transactionId);
|
||||||
APPEND_STRING(dump->_buffer, "\",\"key\":\"");
|
APPEND_STRING(dump->_buffer, "\",\"key\":\"");
|
||||||
|
|
||||||
VPackSlice slice(reinterpret_cast<char const*>(DatafileHelper::VPackOffset(TRI_DF_MARKER_VPACK_DOCUMENT)));
|
VPackSlice slice(reinterpret_cast<char const*>(DatafileHelper::VPackOffset(TRI_DF_MARKER_VPACK_REMOVE)));
|
||||||
std::string key(slice.get(TRI_VOC_ATTRIBUTE_KEY).copyString());
|
std::string key(slice.get(TRI_VOC_ATTRIBUTE_KEY).copyString());
|
||||||
TRI_AppendString2StringBuffer(dump->_buffer, key.c_str(), key.size());
|
TRI_AppendString2StringBuffer(dump->_buffer, key.c_str(), key.size());
|
||||||
|
|
||||||
|
|
|
@ -168,44 +168,14 @@ static bool ScanMarker(TRI_df_marker_t const* marker, void* data,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case TRI_DF_MARKER_VPACK_DOCUMENT: {
|
case TRI_DF_MARKER_VPACK_DOCUMENT:
|
||||||
TRI_voc_tick_t const databaseId = state->lastDatabaseId;
|
|
||||||
TRI_voc_cid_t const collectionId = state->lastCollectionId;
|
|
||||||
TRI_ASSERT(databaseId > 0);
|
|
||||||
TRI_ASSERT(collectionId > 0);
|
|
||||||
|
|
||||||
auto const* m =
|
|
||||||
reinterpret_cast<vpack_document_marker_t const*>(marker);
|
|
||||||
TRI_voc_tid_t transactionId = m->_transactionId;
|
|
||||||
|
|
||||||
state->collections[collectionId] = databaseId;
|
|
||||||
|
|
||||||
if (state->failedTransactions.find(transactionId) !=
|
|
||||||
state->failedTransactions.end()) {
|
|
||||||
// transaction had failed
|
|
||||||
state->operationsCount[collectionId]++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ShouldIgnoreCollection(state, collectionId)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
VPackSlice slice(reinterpret_cast<char const*>(m) + DatafileHelper::VPackOffset(type));
|
|
||||||
state->documentOperations[collectionId][slice.get(TRI_VOC_ATTRIBUTE_KEY).copyString()] = marker;
|
|
||||||
state->operationsCount[collectionId]++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TRI_DF_MARKER_VPACK_REMOVE: {
|
case TRI_DF_MARKER_VPACK_REMOVE: {
|
||||||
TRI_voc_tick_t const databaseId = state->lastDatabaseId;
|
TRI_voc_tick_t const databaseId = state->lastDatabaseId;
|
||||||
TRI_voc_cid_t const collectionId = state->lastCollectionId;
|
TRI_voc_cid_t const collectionId = state->lastCollectionId;
|
||||||
TRI_ASSERT(databaseId > 0);
|
TRI_ASSERT(databaseId > 0);
|
||||||
TRI_ASSERT(collectionId > 0);
|
TRI_ASSERT(collectionId > 0);
|
||||||
|
|
||||||
auto const* m =
|
TRI_voc_tid_t transactionId = *reinterpret_cast<TRI_voc_tid_t const*>(p + sizeof(TRI_df_marker_t));
|
||||||
reinterpret_cast<vpack_remove_marker_t const*>(marker);
|
|
||||||
TRI_voc_tid_t transactionId = m->_transactionId;
|
|
||||||
|
|
||||||
state->collections[collectionId] = databaseId;
|
state->collections[collectionId] = databaseId;
|
||||||
|
|
||||||
|
@ -220,7 +190,7 @@ static bool ScanMarker(TRI_df_marker_t const* marker, void* data,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
VPackSlice slice(reinterpret_cast<char const*>(m) + DatafileHelper::VPackOffset(type));
|
VPackSlice slice(reinterpret_cast<char const*>(marker) + DatafileHelper::VPackOffset(type));
|
||||||
state->documentOperations[collectionId][slice.get(TRI_VOC_ATTRIBUTE_KEY).copyString()] = marker;
|
state->documentOperations[collectionId][slice.get(TRI_VOC_ATTRIBUTE_KEY).copyString()] = marker;
|
||||||
state->operationsCount[collectionId]++;
|
state->operationsCount[collectionId]++;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -92,12 +92,11 @@ MarkerEnvelope::MarkerEnvelope(TRI_df_marker_t const* existing,
|
||||||
VPackDocumentMarker::VPackDocumentMarker(TRI_voc_tid_t transactionId,
|
VPackDocumentMarker::VPackDocumentMarker(TRI_voc_tid_t transactionId,
|
||||||
VPackSlice const& properties)
|
VPackSlice const& properties)
|
||||||
: Marker(TRI_DF_MARKER_VPACK_DOCUMENT,
|
: Marker(TRI_DF_MARKER_VPACK_DOCUMENT,
|
||||||
sizeof(vpack_document_marker_t) + properties.byteSize()) {
|
sizeof(TRI_df_marker_t) + sizeof(TRI_voc_tid_t) + properties.byteSize()) {
|
||||||
auto* m = reinterpret_cast<vpack_document_marker_t*>(begin());
|
*reinterpret_cast<TRI_voc_tid_t*>(begin() + sizeof(TRI_df_marker_t)) = transactionId;
|
||||||
m->_transactionId = transactionId;
|
|
||||||
|
|
||||||
// store vpack
|
// store vpack
|
||||||
storeSlice(sizeof(vpack_document_marker_t), properties);
|
storeSlice(sizeof(TRI_df_marker_t) + sizeof(TRI_voc_tid_t), properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -107,12 +106,12 @@ VPackDocumentMarker::VPackDocumentMarker(TRI_voc_tid_t transactionId,
|
||||||
VPackRemoveMarker::VPackRemoveMarker(TRI_voc_tid_t transactionId,
|
VPackRemoveMarker::VPackRemoveMarker(TRI_voc_tid_t transactionId,
|
||||||
VPackSlice const& properties)
|
VPackSlice const& properties)
|
||||||
: Marker(TRI_DF_MARKER_VPACK_REMOVE,
|
: Marker(TRI_DF_MARKER_VPACK_REMOVE,
|
||||||
sizeof(vpack_remove_marker_t) + properties.byteSize()) {
|
sizeof(TRI_df_marker_t) + sizeof(TRI_voc_tid_t) + properties.byteSize()) {
|
||||||
auto* m = reinterpret_cast<vpack_remove_marker_t*>(begin());
|
|
||||||
m->_transactionId = transactionId;
|
*reinterpret_cast<TRI_voc_tid_t*>(begin() + sizeof(TRI_df_marker_t)) = transactionId;
|
||||||
|
|
||||||
// store vpack
|
// store vpack
|
||||||
storeSlice(sizeof(vpack_remove_marker_t), properties);
|
storeSlice(sizeof(TRI_df_marker_t) + sizeof(TRI_voc_tid_t), properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -64,24 +64,6 @@ struct transaction_remote_abort_marker_t : TRI_df_marker_t {
|
||||||
TRI_voc_tid_t _externalId;
|
TRI_voc_tid_t _externalId;
|
||||||
};
|
};
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
/// @brief wal vpack document marker
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
struct vpack_document_marker_t : TRI_df_marker_t {
|
|
||||||
TRI_voc_tid_t _transactionId;
|
|
||||||
// uint8_t* vpack
|
|
||||||
};
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
/// @brief wal vpack remove marker
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
struct vpack_remove_marker_t : TRI_df_marker_t {
|
|
||||||
TRI_voc_tid_t _transactionId;
|
|
||||||
// uint8_t* vpack
|
|
||||||
};
|
|
||||||
|
|
||||||
class Marker {
|
class Marker {
|
||||||
Marker& operator=(Marker const&) = delete;
|
Marker& operator=(Marker const&) = delete;
|
||||||
Marker(Marker&&) = delete;
|
Marker(Marker&&) = delete;
|
||||||
|
|
|
@ -538,8 +538,8 @@ bool RecoverState::ReplayMarker(TRI_df_marker_t const* marker, void* data,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto const* m = reinterpret_cast<vpack_document_marker_t const*>(marker);
|
TRI_voc_tid_t transactionId = *reinterpret_cast<TRI_voc_tid_t const*>(p + sizeof(TRI_df_marker_t));
|
||||||
TRI_voc_tick_t transactionId = m->_transactionId;
|
|
||||||
if (state->ignoreTransaction(transactionId)) {
|
if (state->ignoreTransaction(transactionId)) {
|
||||||
// transaction was aborted
|
// transaction was aborted
|
||||||
return true;
|
return true;
|
||||||
|
@ -596,8 +596,8 @@ bool RecoverState::ReplayMarker(TRI_df_marker_t const* marker, void* data,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto const* m = reinterpret_cast<vpack_remove_marker_t const*>(marker);
|
TRI_voc_tid_t transactionId = *reinterpret_cast<TRI_voc_tid_t const*>(p + sizeof(TRI_df_marker_t));
|
||||||
TRI_voc_tick_t transactionId = m->_transactionId;
|
|
||||||
if (state->ignoreTransaction(transactionId)) {
|
if (state->ignoreTransaction(transactionId)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue