mirror of https://gitee.com/bigwinds/arangodb
cleaned up WAL markers
This commit is contained in:
parent
0933555a3e
commit
c38de677d0
|
@ -32,6 +32,10 @@
|
|||
#include "arangod/VocBase/voc-shaper.h"
|
||||
#include "arangod/Wal/Marker.h"
|
||||
|
||||
template<typename T, typename U> constexpr size_t offsetOf (U T::*member) {
|
||||
return (char*) &((T*)nullptr->*member) - (char*) nullptr;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- setup / tear-down
|
||||
// -----------------------------------------------------------------------------
|
||||
|
@ -85,10 +89,10 @@ BOOST_AUTO_TEST_CASE (tst_df_marker) {
|
|||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(struct TRI_df_marker_s, _size));
|
||||
BOOST_CHECK_EQUAL( 4, offsetof(struct TRI_df_marker_s, _crc));
|
||||
BOOST_CHECK_EQUAL( 8, offsetof(struct TRI_df_marker_s, _type));
|
||||
BOOST_CHECK_EQUAL(16, offsetof(struct TRI_df_marker_s, _tick));
|
||||
BOOST_CHECK_EQUAL( 0, offsetOf(&TRI_df_marker_t::_size));
|
||||
BOOST_CHECK_EQUAL( 4, offsetOf(&TRI_df_marker_t::_crc));
|
||||
BOOST_CHECK_EQUAL( 8, offsetOf(&TRI_df_marker_t::_type));
|
||||
BOOST_CHECK_EQUAL(16, offsetOf(&TRI_df_marker_t::_tick));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -101,10 +105,9 @@ BOOST_AUTO_TEST_CASE (tst_df_header_marker) {
|
|||
BOOST_CHECK_EQUAL(24 + 16, s);
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(struct TRI_df_header_marker_s, base));
|
||||
BOOST_CHECK_EQUAL(24, offsetof(struct TRI_df_header_marker_s, _version));
|
||||
BOOST_CHECK_EQUAL(28, offsetof(struct TRI_df_header_marker_s, _maximalSize));
|
||||
BOOST_CHECK_EQUAL(32, offsetof(struct TRI_df_header_marker_s, _fid));
|
||||
BOOST_CHECK_EQUAL(24, offsetOf(&TRI_df_header_marker_t::_version));
|
||||
BOOST_CHECK_EQUAL(28, offsetOf(&TRI_df_header_marker_t::_maximalSize));
|
||||
BOOST_CHECK_EQUAL(32, offsetOf(&TRI_df_header_marker_t::_fid));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -117,9 +120,8 @@ BOOST_AUTO_TEST_CASE (tst_df_footer_marker) {
|
|||
BOOST_CHECK_EQUAL(24 + 8, s);
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(struct TRI_df_footer_marker_s, base));
|
||||
BOOST_CHECK_EQUAL(24, offsetof(struct TRI_df_footer_marker_s, _maximalSize));
|
||||
BOOST_CHECK_EQUAL(28, offsetof(struct TRI_df_footer_marker_s, _totalSize));
|
||||
BOOST_CHECK_EQUAL(24, offsetOf(&TRI_df_footer_marker_t::_maximalSize));
|
||||
BOOST_CHECK_EQUAL(28, offsetOf(&TRI_df_footer_marker_t::_totalSize));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -132,9 +134,8 @@ BOOST_AUTO_TEST_CASE (tst_col_header_marker) {
|
|||
BOOST_CHECK_EQUAL(24 + 16, s); // base + own size
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(struct TRI_col_header_marker_s, base));
|
||||
BOOST_CHECK_EQUAL(24, offsetof(struct TRI_col_header_marker_s, _type));
|
||||
BOOST_CHECK_EQUAL(32, offsetof(struct TRI_col_header_marker_s, _cid));
|
||||
BOOST_CHECK_EQUAL(24, offsetOf(&TRI_col_header_marker_t::_type));
|
||||
BOOST_CHECK_EQUAL(32, offsetOf(&TRI_col_header_marker_t::_cid));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -147,15 +148,14 @@ BOOST_AUTO_TEST_CASE (tst_wal_document_marker) {
|
|||
BOOST_CHECK_EQUAL(24 + 48, s); // base + own size
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(triagens::wal::document_marker_t, base));
|
||||
BOOST_CHECK_EQUAL(24, offsetof(triagens::wal::document_marker_t, _databaseId));
|
||||
BOOST_CHECK_EQUAL(32, offsetof(triagens::wal::document_marker_t, _collectionId));
|
||||
BOOST_CHECK_EQUAL(40, offsetof(triagens::wal::document_marker_t, _rid));
|
||||
BOOST_CHECK_EQUAL(48, offsetof(triagens::wal::document_marker_t, _tid));
|
||||
BOOST_CHECK_EQUAL(56, offsetof(triagens::wal::document_marker_t, _shape));
|
||||
BOOST_CHECK_EQUAL(64, offsetof(triagens::wal::document_marker_t, _offsetKey));
|
||||
BOOST_CHECK_EQUAL(66, offsetof(triagens::wal::document_marker_t, _offsetLegend));
|
||||
BOOST_CHECK_EQUAL(68, offsetof(triagens::wal::document_marker_t, _offsetJson));
|
||||
BOOST_CHECK_EQUAL(24, offsetOf(&triagens::wal::document_marker_t::_databaseId));
|
||||
BOOST_CHECK_EQUAL(32, offsetOf(&triagens::wal::document_marker_t::_collectionId));
|
||||
BOOST_CHECK_EQUAL(40, offsetOf(&triagens::wal::document_marker_t::_rid));
|
||||
BOOST_CHECK_EQUAL(48, offsetOf(&triagens::wal::document_marker_t::_tid));
|
||||
BOOST_CHECK_EQUAL(56, offsetOf(&triagens::wal::document_marker_t::_shape));
|
||||
BOOST_CHECK_EQUAL(64, offsetOf(&triagens::wal::document_marker_t::_offsetKey));
|
||||
BOOST_CHECK_EQUAL(66, offsetOf(&triagens::wal::document_marker_t::_offsetLegend));
|
||||
BOOST_CHECK_EQUAL(68, offsetOf(&triagens::wal::document_marker_t::_offsetJson));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -168,11 +168,10 @@ BOOST_AUTO_TEST_CASE (tst_wal_edge_marker) {
|
|||
BOOST_CHECK_EQUAL(24 + 48 + 24, s); // base + own size
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(triagens::wal::edge_marker_t, base));
|
||||
BOOST_CHECK_EQUAL(72, offsetof(triagens::wal::edge_marker_t, _toCid));
|
||||
BOOST_CHECK_EQUAL(80, offsetof(triagens::wal::edge_marker_t, _fromCid));
|
||||
BOOST_CHECK_EQUAL(88, offsetof(triagens::wal::edge_marker_t, _offsetToKey));
|
||||
BOOST_CHECK_EQUAL(90, offsetof(triagens::wal::edge_marker_t, _offsetFromKey));
|
||||
BOOST_CHECK_EQUAL(72, offsetOf(&triagens::wal::edge_marker_t::_toCid));
|
||||
BOOST_CHECK_EQUAL(80, offsetOf(&triagens::wal::edge_marker_t::_fromCid));
|
||||
BOOST_CHECK_EQUAL(88, offsetOf(&triagens::wal::edge_marker_t::_offsetToKey));
|
||||
BOOST_CHECK_EQUAL(90, offsetOf(&triagens::wal::edge_marker_t::_offsetFromKey));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -185,11 +184,10 @@ BOOST_AUTO_TEST_CASE (tst_wal_remove_marker) {
|
|||
BOOST_CHECK_EQUAL(24 + 32, s); // base + own size
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(triagens::wal::remove_marker_t, base));
|
||||
BOOST_CHECK_EQUAL(24, offsetof(triagens::wal::remove_marker_t, _databaseId));
|
||||
BOOST_CHECK_EQUAL(32, offsetof(triagens::wal::remove_marker_t, _collectionId));
|
||||
BOOST_CHECK_EQUAL(40, offsetof(triagens::wal::remove_marker_t, _rid));
|
||||
BOOST_CHECK_EQUAL(48, offsetof(triagens::wal::remove_marker_t, _tid));
|
||||
BOOST_CHECK_EQUAL(24, offsetOf(&triagens::wal::remove_marker_t::_databaseId));
|
||||
BOOST_CHECK_EQUAL(32, offsetOf(&triagens::wal::remove_marker_t::_collectionId));
|
||||
BOOST_CHECK_EQUAL(40, offsetOf(&triagens::wal::remove_marker_t::_rid));
|
||||
BOOST_CHECK_EQUAL(48, offsetOf(&triagens::wal::remove_marker_t::_tid));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -202,12 +200,11 @@ BOOST_AUTO_TEST_CASE (tst_doc_document_key_marker) {
|
|||
BOOST_CHECK_EQUAL(24 + 32, s); // base + own size
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(struct TRI_doc_document_key_marker_s, base));
|
||||
BOOST_CHECK_EQUAL(24, offsetof(struct TRI_doc_document_key_marker_s, _rid));
|
||||
BOOST_CHECK_EQUAL(32, offsetof(struct TRI_doc_document_key_marker_s, _tid));
|
||||
BOOST_CHECK_EQUAL(40, offsetof(struct TRI_doc_document_key_marker_s, _shape));
|
||||
BOOST_CHECK_EQUAL(48, offsetof(struct TRI_doc_document_key_marker_s, _offsetKey));
|
||||
BOOST_CHECK_EQUAL(50, offsetof(struct TRI_doc_document_key_marker_s, _offsetJson));
|
||||
BOOST_CHECK_EQUAL(24, offsetOf(&TRI_doc_document_key_marker_t::_rid));
|
||||
BOOST_CHECK_EQUAL(32, offsetOf(&TRI_doc_document_key_marker_t::_tid));
|
||||
BOOST_CHECK_EQUAL(40, offsetOf(&TRI_doc_document_key_marker_t::_shape));
|
||||
BOOST_CHECK_EQUAL(48, offsetOf(&TRI_doc_document_key_marker_t::_offsetKey));
|
||||
BOOST_CHECK_EQUAL(50, offsetOf(&TRI_doc_document_key_marker_t::_offsetJson));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -220,11 +217,10 @@ BOOST_AUTO_TEST_CASE (tst_doc_edge_key_marker) {
|
|||
BOOST_CHECK_EQUAL(24 + 56, s); // base + own size
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(struct TRI_doc_edge_key_marker_s, base));
|
||||
BOOST_CHECK_EQUAL(56, offsetof(struct TRI_doc_edge_key_marker_s, _toCid));
|
||||
BOOST_CHECK_EQUAL(64, offsetof(struct TRI_doc_edge_key_marker_s, _fromCid));
|
||||
BOOST_CHECK_EQUAL(72, offsetof(struct TRI_doc_edge_key_marker_s, _offsetToKey));
|
||||
BOOST_CHECK_EQUAL(74, offsetof(struct TRI_doc_edge_key_marker_s, _offsetFromKey));
|
||||
BOOST_CHECK_EQUAL(56, offsetOf(&TRI_doc_edge_key_marker_t::_toCid));
|
||||
BOOST_CHECK_EQUAL(64, offsetOf(&TRI_doc_edge_key_marker_t::_fromCid));
|
||||
BOOST_CHECK_EQUAL(72, offsetOf(&TRI_doc_edge_key_marker_t::_offsetToKey));
|
||||
BOOST_CHECK_EQUAL(74, offsetOf(&TRI_doc_edge_key_marker_t::_offsetFromKey));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -237,8 +233,7 @@ BOOST_AUTO_TEST_CASE (tst_doc_begin_transaction_marker) {
|
|||
BOOST_CHECK_EQUAL(24 + 8 + 8, s); // base + own size
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(struct TRI_doc_begin_transaction_marker_s, base));
|
||||
BOOST_CHECK_EQUAL(24, offsetof(struct TRI_doc_begin_transaction_marker_s, _tid));
|
||||
BOOST_CHECK_EQUAL(24, offsetOf(&TRI_doc_begin_transaction_marker_t::_tid));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -251,8 +246,7 @@ BOOST_AUTO_TEST_CASE (tst_doc_commit_transaction_marker) {
|
|||
BOOST_CHECK_EQUAL(24 + 8, s); // base + own size
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(struct TRI_doc_commit_transaction_marker_s, base));
|
||||
BOOST_CHECK_EQUAL(24, offsetof(struct TRI_doc_commit_transaction_marker_s, _tid));
|
||||
BOOST_CHECK_EQUAL(24, offsetOf(&TRI_doc_commit_transaction_marker_t::_tid));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -265,8 +259,7 @@ BOOST_AUTO_TEST_CASE (tst_doc_abort_transaction_marker) {
|
|||
BOOST_CHECK_EQUAL(24 + 8, s); // base + own size
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(struct TRI_doc_abort_transaction_marker_s, base));
|
||||
BOOST_CHECK_EQUAL(24, offsetof(struct TRI_doc_abort_transaction_marker_s, _tid));
|
||||
BOOST_CHECK_EQUAL(24, offsetOf(&TRI_doc_abort_transaction_marker_t::_tid));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -279,9 +272,8 @@ BOOST_AUTO_TEST_CASE (tst_df_attribute_marker) {
|
|||
BOOST_CHECK_EQUAL(24 + 16, s); // base + own size
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(struct TRI_df_attribute_marker_s, base));
|
||||
BOOST_CHECK_EQUAL(24, offsetof(struct TRI_df_attribute_marker_s, _aid));
|
||||
BOOST_CHECK_EQUAL(32, offsetof(struct TRI_df_attribute_marker_s, _size));
|
||||
BOOST_CHECK_EQUAL(24, offsetOf(&TRI_df_attribute_marker_t::_aid));
|
||||
BOOST_CHECK_EQUAL(32, offsetOf(&TRI_df_attribute_marker_t::_size));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -293,8 +285,6 @@ BOOST_AUTO_TEST_CASE (tst_df_shape_marker) {
|
|||
|
||||
BOOST_CHECK_EQUAL(24, s); // base + own size
|
||||
BOOST_CHECK_EQUAL(true, s % 8 == 0);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, offsetof(struct TRI_df_shape_marker_s, base));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -182,9 +182,9 @@ static inline void TRI_EXTRACT_SHAPED_JSON_MARKER (TRI_shaped_json_t& dst,
|
|||
(dst)._data.data = (((char*) (src)) + ((triagens::wal::document_marker_t*) (src))->_offsetJson);
|
||||
}
|
||||
else if (((TRI_df_marker_t const*) (src))->_type == TRI_WAL_MARKER_EDGE) {
|
||||
(dst)._sid = ((triagens::wal::edge_marker_t*) (src))->base._shape;
|
||||
(dst)._data.length = ((TRI_df_marker_t*) (src))->_size - ((triagens::wal::edge_marker_t*) (src))->base._offsetJson;
|
||||
(dst)._data.data = (((char*) (src)) + ((triagens::wal::edge_marker_t*) (src))->base._offsetJson);
|
||||
(dst)._sid = ((triagens::wal::edge_marker_t*) (src))->_shape;
|
||||
(dst)._data.length = ((TRI_df_marker_t*) (src))->_size - ((triagens::wal::edge_marker_t*) (src))->_offsetJson;
|
||||
(dst)._data.data = (((char*) (src)) + ((triagens::wal::edge_marker_t*) (src))->_offsetJson);
|
||||
}
|
||||
else {
|
||||
(dst)._sid = 0;
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
#include "BasicsC/hashes.h"
|
||||
#include "BasicsC/json.h"
|
||||
#include "BasicsC/logging.h"
|
||||
#include "BasicsC/tri-strings.h"
|
||||
#include "Basics/Exceptions.h"
|
||||
#include "Basics/FileUtils.h"
|
||||
#include "Basics/JsonHelper.h"
|
||||
|
@ -448,7 +447,6 @@ SlotInfo LogfileManager::allocateAndWrite (void* src,
|
|||
|
||||
slotInfo.slot->fill(src, size);
|
||||
|
||||
std::cout << TRI_PrintableString((char const*) src, size) << "\n";
|
||||
finalise(slotInfo, waitForSync);
|
||||
return slotInfo;
|
||||
}
|
||||
|
|
|
@ -46,8 +46,6 @@ Marker::Marker (TRI_df_marker_type_e type,
|
|||
: _buffer(new char[size]),
|
||||
_size(size) {
|
||||
|
||||
std::cout << "CREATING MARKER OF TYPE: " << type << "\n";
|
||||
|
||||
TRI_df_marker_t* m = reinterpret_cast<TRI_df_marker_t*>(base());
|
||||
m->_type = type;
|
||||
m->_size = static_cast<TRI_voc_size_t>(size);
|
||||
|
@ -218,6 +216,8 @@ DocumentMarker::DocumentMarker (TRI_voc_tick_t databaseId,
|
|||
char* p = static_cast<char*>(base()) + m->_offsetJson;
|
||||
memcpy(p, shapedJson->_data.data, static_cast<size_t>(shapedJson->_data.length));
|
||||
}
|
||||
|
||||
dump();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -227,6 +227,21 @@ DocumentMarker::DocumentMarker (TRI_voc_tick_t databaseId,
|
|||
DocumentMarker::~DocumentMarker () {
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief dump marker
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void DocumentMarker::dump () const {
|
||||
document_marker_t* m = reinterpret_cast<document_marker_t*>(base());
|
||||
|
||||
std::cout << "WAL DOCUMENT MARKER FOR DB " << m->_databaseId
|
||||
<< ", COLLECTION " << m->_collectionId
|
||||
<< ", REV: " << m->_rid
|
||||
<< ", TRX: " << m->_tid
|
||||
<< ", KEY: " << ((char*) base() + m->_offsetKey)
|
||||
<< "\n";
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- EdgeMarker
|
||||
// -----------------------------------------------------------------------------
|
||||
|
@ -250,8 +265,8 @@ EdgeMarker::EdgeMarker (TRI_voc_tick_t databaseId,
|
|||
: Marker(TRI_WAL_MARKER_EDGE,
|
||||
sizeof(edge_marker_t) + alignedSize(key.size() + 1) + alignedSize(strlen(edge->_fromKey) + 1) + alignedSize(strlen(edge->_toKey) + 1) + legend.getSize() + shapedJson->_data.length) {
|
||||
|
||||
document_marker_t* m = reinterpret_cast<document_marker_t*>(base());
|
||||
edge_marker_t* e = reinterpret_cast<edge_marker_t*>(base());
|
||||
// document_marker_t* m = reinterpret_cast<document_marker_t*>(base());
|
||||
edge_marker_t* m = reinterpret_cast<edge_marker_t*>(base());
|
||||
|
||||
m->_databaseId = databaseId;
|
||||
m->_collectionId = collectionId;
|
||||
|
@ -259,17 +274,17 @@ EdgeMarker::EdgeMarker (TRI_voc_tick_t databaseId,
|
|||
m->_tid = transactionId;
|
||||
m->_shape = shapedJson->_sid;
|
||||
m->_offsetKey = sizeof(edge_marker_t); // start position of key
|
||||
e->_toCid = edge->_toCid;
|
||||
e->_fromCid = edge->_fromCid;
|
||||
e->_offsetToKey = m->_offsetKey + alignedSize(key.size() + 1);
|
||||
e->_offsetFromKey = e->_offsetToKey + alignedSize(strlen(edge->_toKey) + 1);
|
||||
m->_offsetLegend = e->_offsetFromKey + alignedSize(strlen(edge->_fromKey) + 1);
|
||||
m->_toCid = edge->_toCid;
|
||||
m->_fromCid = edge->_fromCid;
|
||||
m->_offsetToKey = m->_offsetKey + alignedSize(key.size() + 1);
|
||||
m->_offsetFromKey = m->_offsetToKey + alignedSize(strlen(edge->_toKey) + 1);
|
||||
m->_offsetLegend = m->_offsetFromKey + alignedSize(strlen(edge->_fromKey) + 1);
|
||||
m->_offsetJson = m->_offsetLegend + alignedSize(legend.getSize());
|
||||
|
||||
// store keys
|
||||
storeSizedString(m->_offsetKey, key.c_str(), key.size());
|
||||
storeSizedString(e->_offsetFromKey, edge->_fromKey, strlen(edge->_fromKey));
|
||||
storeSizedString(e->_offsetToKey, edge->_toKey, strlen(edge->_toKey));
|
||||
storeSizedString(m->_offsetFromKey, edge->_fromKey, strlen(edge->_fromKey));
|
||||
storeSizedString(m->_offsetToKey, edge->_toKey, strlen(edge->_toKey));
|
||||
|
||||
// store legend
|
||||
{
|
||||
|
@ -282,6 +297,8 @@ EdgeMarker::EdgeMarker (TRI_voc_tick_t databaseId,
|
|||
char* p = static_cast<char*>(base()) + m->_offsetJson;
|
||||
memcpy(p, shapedJson->_data.data, static_cast<size_t>(shapedJson->_data.length));
|
||||
}
|
||||
|
||||
dump();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -291,6 +308,25 @@ EdgeMarker::EdgeMarker (TRI_voc_tick_t databaseId,
|
|||
EdgeMarker::~EdgeMarker () {
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief dump marker
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void EdgeMarker::dump () const {
|
||||
edge_marker_t* m = reinterpret_cast<edge_marker_t*>(base());
|
||||
|
||||
std::cout << "WAL EDGE MARKER FOR DB " << m->_databaseId
|
||||
<< ", COLLECTION " << m->_collectionId
|
||||
<< ", REV: " << m->_rid
|
||||
<< ", TRX: " << m->_tid
|
||||
<< ", KEY: " << ((char*) base() + m->_offsetKey)
|
||||
<< ", FROMCID " << m->_fromCid
|
||||
<< ", TOCID " << m->_toCid
|
||||
<< ", FROMKEY: " << ((char*) base() + m->_offsetFromKey)
|
||||
<< ", TOKEY: " << ((char*) base() + m->_offsetFromKey)
|
||||
<< "\n";
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- RemoveMarker
|
||||
// -----------------------------------------------------------------------------
|
||||
|
@ -317,6 +353,8 @@ RemoveMarker::RemoveMarker (TRI_voc_tick_t databaseId,
|
|||
m->_tid = transactionId;
|
||||
|
||||
storeSizedString(sizeof(remove_marker_t), key.c_str(), key.size());
|
||||
|
||||
dump();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -326,6 +364,21 @@ RemoveMarker::RemoveMarker (TRI_voc_tick_t databaseId,
|
|||
RemoveMarker::~RemoveMarker () {
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief dump marker
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void RemoveMarker::dump () const {
|
||||
remove_marker_t* m = reinterpret_cast<remove_marker_t*>(base());
|
||||
|
||||
std::cout << "WAL REMOVE MARKER FOR DB " << m->_databaseId
|
||||
<< ", COLLECTION " << m->_collectionId
|
||||
<< ", REV: " << m->_rid
|
||||
<< ", TRX: " << m->_tid
|
||||
<< ", KEY: " << (((char*) base()) + sizeof(remove_marker_t))
|
||||
<< "\n";
|
||||
}
|
||||
|
||||
// Local Variables:
|
||||
// mode: outline-minor
|
||||
// outline-regexp: "/// @brief\\|/// {@inheritDoc}\\|/// @addtogroup\\|/// @page\\|// --SECTION--\\|/// @\\}"
|
||||
|
|
|
@ -47,9 +47,7 @@ namespace triagens {
|
|||
/// @brief wal transaction begin marker
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct transaction_begin_marker_t {
|
||||
TRI_df_marker_t base;
|
||||
|
||||
struct transaction_begin_marker_t : TRI_df_marker_t {
|
||||
TRI_voc_tick_t _databaseId;
|
||||
TRI_voc_tid_t _transactionId;
|
||||
};
|
||||
|
@ -58,9 +56,7 @@ namespace triagens {
|
|||
/// @brief wal transaction commit marker
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct transaction_commit_marker_t {
|
||||
TRI_df_marker_t base;
|
||||
|
||||
struct transaction_commit_marker_t : TRI_df_marker_t {
|
||||
TRI_voc_tick_t _databaseId;
|
||||
TRI_voc_tid_t _transactionId;
|
||||
};
|
||||
|
@ -69,9 +65,7 @@ namespace triagens {
|
|||
/// @brief wal transaction abort marker
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct transaction_abort_marker_t {
|
||||
TRI_df_marker_t base;
|
||||
|
||||
struct transaction_abort_marker_t : TRI_df_marker_t {
|
||||
TRI_voc_tick_t _databaseId;
|
||||
TRI_voc_tid_t _transactionId;
|
||||
};
|
||||
|
@ -80,9 +74,7 @@ namespace triagens {
|
|||
/// @brief wal document marker
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct document_marker_t {
|
||||
TRI_df_marker_t base;
|
||||
|
||||
struct document_marker_t : TRI_df_marker_t {
|
||||
TRI_voc_tick_t _databaseId;
|
||||
TRI_voc_cid_t _collectionId;
|
||||
|
||||
|
@ -100,9 +92,7 @@ namespace triagens {
|
|||
/// @brief wal edge marker
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct edge_marker_t {
|
||||
document_marker_t base;
|
||||
|
||||
struct edge_marker_t : document_marker_t {
|
||||
TRI_voc_cid_t _toCid;
|
||||
TRI_voc_cid_t _fromCid;
|
||||
|
||||
|
@ -118,9 +108,7 @@ namespace triagens {
|
|||
/// @brief wal remove marker
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct remove_marker_t {
|
||||
TRI_df_marker_t base;
|
||||
|
||||
struct remove_marker_t : TRI_df_marker_t {
|
||||
TRI_voc_tick_t _databaseId;
|
||||
TRI_voc_cid_t _collectionId;
|
||||
|
||||
|
@ -247,6 +235,8 @@ namespace triagens {
|
|||
TRI_shaped_json_t const*);
|
||||
|
||||
~DocumentMarker ();
|
||||
|
||||
void dump () const;
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
@ -267,6 +257,8 @@ namespace triagens {
|
|||
TRI_shaped_json_t const*);
|
||||
|
||||
~EdgeMarker ();
|
||||
|
||||
void dump () const;
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
@ -295,6 +287,8 @@ namespace triagens {
|
|||
remove_marker_t const* m = reinterpret_cast<remove_marker_t const*>(base());
|
||||
return m->_rid;
|
||||
}
|
||||
|
||||
void dump () const;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue