1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-07-28 20:02:00 +03:00

Introduced adopt_transaction() for storage_service interface

A SR transaction must be adopted by a storage service instance
running in background rollbacker thread while it is aborting a
SR transaction.
This commit is contained in:
Teemu Ollakka
2018-07-13 15:36:27 +03:00
parent 22d7a31d81
commit 4cfb9b6413
10 changed files with 43 additions and 32 deletions

View File

@ -1,25 +0,0 @@
//
// Copyright (C) 2018 Codership Oy <info@codership.com>
//
#ifndef WSREP_APPLYING_SERVICE_HPP
#define WSREP_APPLYING_SERVICE_HPP
#include "transaction_termination_service.hpp"
namespace wsrep
{
class ws_handle;
class ws_meta;
class applying_service : public wsrep::transaction_termination_service
{
public:
virtual int start_transaction(const wsrep::ws_handle&,
const wsrep::ws_meta&) = 0;
virtual int apply_write_set(const wsrep::const_buffer&) = 0;
virtual int apply_toi(const wsrep::const_buffer&);
virtual int apply_nbo(const wsrep::const_buffer&);
};
}
#endif // WSREP_APPLYING_SERVICE_HPP

View File

@ -33,7 +33,8 @@ namespace wsrep
virtual ~server_service() { }
virtual wsrep::storage_service* storage_service(
wsrep::client_service&) = 0;
virtual wsrep::storage_service* storage_service(
wsrep::high_priority_service&) = 0;
virtual void release_storage_service(wsrep::storage_service*) = 0;
/**

View File

@ -23,7 +23,7 @@ namespace wsrep
// Forward declarations
class ws_handle;
class ws_meta;
class transaction;
/**
* Storage service abstract interface.
@ -41,6 +41,7 @@ namespace wsrep
*/
virtual int start_transaction(const wsrep::ws_handle&) = 0;
virtual void adopt_transaction(const wsrep::transaction&) = 0;
/**
* Append fragment into stable storage.
*/