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()) {
|
||||
case TRI_DF_MARKER_VPACK_DOCUMENT: {
|
||||
TRI_ASSERT(nullptr == document);
|
||||
auto m = static_cast<wal::vpack_document_marker_t const*>(marker);
|
||||
VPackSlice slice(reinterpret_cast<char const*>(m) + DatafileHelper::VPackOffset(TRI_DF_MARKER_VPACK_DOCUMENT));
|
||||
VPackSlice slice(reinterpret_cast<char const*>(marker) + DatafileHelper::VPackOffset(TRI_DF_MARKER_VPACK_DOCUMENT));
|
||||
key = slice.get(TRI_VOC_ATTRIBUTE_KEY).getString(keyLength);
|
||||
rid = std::stoull(slice.get(TRI_VOC_ATTRIBUTE_REV).copyString());
|
||||
type = REPLICATION_MARKER_DOCUMENT;
|
||||
|
@ -309,8 +308,7 @@ static int StringifyMarkerDump(TRI_replication_dump_t* dump,
|
|||
|
||||
case TRI_DF_MARKER_VPACK_REMOVE: {
|
||||
TRI_ASSERT(nullptr == document);
|
||||
auto m = static_cast<wal::vpack_remove_marker_t const*>(marker);
|
||||
VPackSlice slice(reinterpret_cast<char const*>(m) + DatafileHelper::VPackOffset(TRI_DF_MARKER_VPACK_REMOVE));
|
||||
VPackSlice slice(reinterpret_cast<char const*>(marker) + DatafileHelper::VPackOffset(TRI_DF_MARKER_VPACK_REMOVE));
|
||||
key = slice.get(TRI_VOC_ATTRIBUTE_KEY).getString(keyLength);
|
||||
rid = std::stoull(slice.get(TRI_VOC_ATTRIBUTE_REV).copyString());
|
||||
type = REPLICATION_MARKER_REMOVE;
|
||||
|
@ -429,7 +427,7 @@ static int StringifyMarkerDump(TRI_replication_dump_t* dump,
|
|||
|
||||
static int StringifyWalMarkerDocument(TRI_replication_dump_t* dump,
|
||||
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
|
||||
// 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)));
|
||||
|
||||
APPEND_STRING(dump->_buffer, "\"tid\":\"");
|
||||
APPEND_UINT64(dump->_buffer, m->_transactionId);
|
||||
// APPEND_UINT64(dump->_buffer, m->_transactionId);
|
||||
APPEND_STRING(dump->_buffer, "\",\"key\":\"");
|
||||
std::string key(slice.get(TRI_VOC_ATTRIBUTE_KEY).copyString());
|
||||
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,
|
||||
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
|
||||
// TODO
|
||||
|
@ -478,10 +477,10 @@ static int StringifyWalMarkerRemove(TRI_replication_dump_t* dump,
|
|||
#endif
|
||||
|
||||
APPEND_STRING(dump->_buffer, "\"tid\":\"");
|
||||
APPEND_UINT64(dump->_buffer, m->_transactionId);
|
||||
// APPEND_UINT64(dump->_buffer, m->_transactionId);
|
||||
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());
|
||||
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;
|
||||
}
|
||||
|
||||
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_DOCUMENT:
|
||||
case TRI_DF_MARKER_VPACK_REMOVE: {
|
||||
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_remove_marker_t const*>(marker);
|
||||
TRI_voc_tid_t transactionId = m->_transactionId;
|
||||
TRI_voc_tid_t transactionId = *reinterpret_cast<TRI_voc_tid_t const*>(p + sizeof(TRI_df_marker_t));
|
||||
|
||||
state->collections[collectionId] = databaseId;
|
||||
|
||||
|
@ -220,7 +190,7 @@ static bool ScanMarker(TRI_df_marker_t const* marker, void* data,
|
|||
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->operationsCount[collectionId]++;
|
||||
break;
|
||||
|
|
|
@ -92,12 +92,11 @@ MarkerEnvelope::MarkerEnvelope(TRI_df_marker_t const* existing,
|
|||
VPackDocumentMarker::VPackDocumentMarker(TRI_voc_tid_t transactionId,
|
||||
VPackSlice const& properties)
|
||||
: Marker(TRI_DF_MARKER_VPACK_DOCUMENT,
|
||||
sizeof(vpack_document_marker_t) + properties.byteSize()) {
|
||||
auto* m = reinterpret_cast<vpack_document_marker_t*>(begin());
|
||||
m->_transactionId = transactionId;
|
||||
sizeof(TRI_df_marker_t) + sizeof(TRI_voc_tid_t) + properties.byteSize()) {
|
||||
*reinterpret_cast<TRI_voc_tid_t*>(begin() + sizeof(TRI_df_marker_t)) = transactionId;
|
||||
|
||||
// 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,
|
||||
VPackSlice const& properties)
|
||||
: Marker(TRI_DF_MARKER_VPACK_REMOVE,
|
||||
sizeof(vpack_remove_marker_t) + properties.byteSize()) {
|
||||
auto* m = reinterpret_cast<vpack_remove_marker_t*>(begin());
|
||||
m->_transactionId = transactionId;
|
||||
sizeof(TRI_df_marker_t) + sizeof(TRI_voc_tid_t) + properties.byteSize()) {
|
||||
|
||||
*reinterpret_cast<TRI_voc_tid_t*>(begin() + sizeof(TRI_df_marker_t)) = transactionId;
|
||||
|
||||
// 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;
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @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 {
|
||||
Marker& operator=(Marker const&) = delete;
|
||||
Marker(Marker&&) = delete;
|
||||
|
|
|
@ -538,8 +538,8 @@ bool RecoverState::ReplayMarker(TRI_df_marker_t const* marker, void* data,
|
|||
return true;
|
||||
}
|
||||
|
||||
auto const* m = reinterpret_cast<vpack_document_marker_t const*>(marker);
|
||||
TRI_voc_tick_t transactionId = m->_transactionId;
|
||||
TRI_voc_tid_t transactionId = *reinterpret_cast<TRI_voc_tid_t const*>(p + sizeof(TRI_df_marker_t));
|
||||
|
||||
if (state->ignoreTransaction(transactionId)) {
|
||||
// transaction was aborted
|
||||
return true;
|
||||
|
@ -596,8 +596,8 @@ bool RecoverState::ReplayMarker(TRI_df_marker_t const* marker, void* data,
|
|||
return true;
|
||||
}
|
||||
|
||||
auto const* m = reinterpret_cast<vpack_remove_marker_t const*>(marker);
|
||||
TRI_voc_tick_t transactionId = m->_transactionId;
|
||||
TRI_voc_tid_t transactionId = *reinterpret_cast<TRI_voc_tid_t const*>(p + sizeof(TRI_df_marker_t));
|
||||
|
||||
if (state->ignoreTransaction(transactionId)) {
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue