1
0
Fork 0

deleted some marker types

This commit is contained in:
Jan Steemann 2016-03-04 13:17:32 +01:00
parent eb82d96836
commit a1c758b615
5 changed files with 22 additions and 72 deletions

View File

@ -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());

View File

@ -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;

View File

@ -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);
}
////////////////////////////////////////////////////////////////////////////////

View File

@ -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;

View File

@ -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;
}