summaryrefslogtreecommitdiffstats
path: root/src/messages/MOSDRepOp.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* osd,crimson/osd: maintain pg_committed_to on replica rather than ↵Samuel Just2024-10-181-4/+27
| | | | | | | | | | | | | | min_last_complete_ondisk This commit updates the bulk of the interface pathways in crimson and classic to refer to pg_committed_to rather than min_last_complete_ondisk and changes the replica side to maintain pg_committed_to instead. This commit shouldn't actually cause any behavior change -- we're still passing min_last_complete_ondisk (which is a valid lower bound for pg_committed_to!). Signed-off-by: Samuel Just <sjust@redhat.com>
* osd: remove support for replicas without OSD_REPOP_MLCODSamuel Just2024-10-181-17/+3
| | | | Signed-off-by: Samuel Just <sjust@redhat.com>
* messages/MOSDRep{Op,OpReply}: do not support osd < octopusKefu Chai2021-02-231-7/+4
| | | | | | | assume the connection to peer osd always has feature bit of SERVER_OCTOPUS, as we are already move to quincy. Signed-off-by: Kefu Chai <kchai@redhat.com>
* message: mark message classes "final"Kefu Chai2020-11-161-1/+1
| | | | | | | | | | | | | | silences warnings like: src/messages/MOSDPGUpdateLogMissingReply.h:74:34: warning: class with destructor marked 'final' cannot be inherited from [-Wfinal-dtor-non-final-class] ~MOSDPGUpdateLogMissingReply() final {} ^ ../src/messages/MOSDPGUpdateLogMissingReply.h:21:7: note: mark 'MOSDPGUpdateLogMissingReply' as 'final' to silence this warning class MOSDPGUpdateLogMissingReply : public MOSDFastDispatchOp { ^ 1 warning generated. Signed-off-by: Kefu Chai <kchai@redhat.com>
* messages: use final specifier for destructorPatrick Donnelly2020-11-101-1/+1
| | | | | | | Some messages were also missing "override". "final" is used a defensive coding measure. Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
* ReplicatedBackend,MOSDRepOp: replace pg_roll_forward_to with mlcodSamuel Just2019-12-201-5/+22
| | | | | | | | New clients will ignore the field on header.version <= 2. New primaries will send the old variant if there are peers expecting the old variant. Signed-off-by: Samuel Just <sjust@redhat.com>
* osd/: convert boost::optional users to std::optionalSamuel Just2019-05-101-1/+1
| | | | Signed-off-by: Samuel Just <sjust@redhat.com>
* src/: use make_message<Foo> instead of Foo::create()Kefu Chai2019-04-181-6/+6
| | | | Signed-off-by: Kefu Chai <kchai@redhat.com>
* messages: Update MOSDOpRepOp.h to work without using namespaceAdam C. Emerson2019-03-291-3/+5
| | | | Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
* *: use std::string_view instead of char ptrPatrick Donnelly2019-01-091-1/+1
| | | | Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
* common: fix typosKefu Chai2018-09-211-2/+2
| | | | Signed-off-by: Kefu Chai <kchai@redhat.com>
* messages: define HEAD_VERSION and COMPAT_VERSION inlinedKefu Chai2018-08-171-2/+2
| | | | | | | | | otherwise we could have ../lib/libceph-common.so.0: undefined reference to `MOSDPGNotify::HEAD_VERSION when the compiler tries to be smart and pass them by reference. Signed-off-by: Kefu Chai <kchai@redhat.com>
* msg: cleanup factory/ref definition in messagesPatrick Donnelly2018-08-151-6/+3
| | | | | | This eliminates duplicate code definitions. Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
* msg: add factory method to correctly construct smart_ptrPatrick Donnelly2018-08-151-1/+6
| | | | | | | | | | | | | This is to avoid easy leaks of the form: boost::intrusive_ptr(new M*(...)); where a ref is leaked because constructing the intrusive_ptr adds a ref. It is expected that eventually all constructors move to protected/private so that the message's factory is the only way to build a new message (safely). Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
* core: use const_iterator for decodeKefu Chai2018-05-171-2/+2
| | | | Signed-off-by: Kefu Chai <kchai@redhat.com>
* messages: Use unqualified encode/decodeAdam C. Emerson2018-01-101-31/+32
| | | | | | | This is a portion of Part 1 of the namespace project: using ADL properly in encode and decode so we can use namespaces easily in Ceph. Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
* messages/: always set header.version in encode_payload()Kefu Chai2017-07-191-0/+1
| | | | | | | | | | | | | | | | | we encode the payload w/o the writelock even can_write == NOWRITE, if the message "can_fast_prepare". in that case, the "feature" of the connection is 0, as no handshake happens yet. so the header.version is always set to a version compatible with pre-luminous. but when the message is re-encoded when the connection is re-established with feature with luminous, the header.version is not set back to HEADER_VERSION. that's why the message's encoding is not consistent with header.version sometimes. in this change, we always set the header.version in encode_payload(), so it's consistent even after connection reset and message re-encoding. Fixes: http://tracker.ceph.com/issues/19939 Signed-off-by: Kefu Chai <kchai@redhat.com>
* blkin: osd op messages carry trace informationCasey Bodley2017-05-051-4/+8
| | | | Signed-off-by: Casey Bodley <cbodley@redhat.com>
* osd: min_epoch for MOSDRepOp[Reply]Sage Weil2017-05-021-5/+17
| | | | Signed-off-by: Sage Weil <sage@redhat.com>
* common: add override in msg subsystemliuchang08122017-03-031-6/+6
| | | | Signed-off-by: liuchang0812 <liuchang0812@gmail.com>
* osd: make all fast dispatch ops MOSDFastDispatchOp childrenSage Weil2017-02-141-5/+11
| | | | | | Define common get_spg() and get_map_epoch() methods. Signed-off-by: Sage Weil <sage@redhat.com>
* osd/: 's/trim_rollback_to/roll_forward_to/g'Samuel Just2016-11-171-3/+3
| | | | | | | | | | | trim_rollback_to was a not terrible name before in that all it ever did is (possibly) trim the stashed version of the object. However, now, it's going to encompass, in general, the roll_forward part of a tpc (which will still be to delete the stashed object in cases where that is appropriate). Signed-off-by: Samuel Just <sjust@redhat.com>
* MOSDRepOp: Simple Messenger optimizationXinze Chi2015-11-091-9/+24
| | | | | | the origin idea is from https://github.com/ceph/ceph/pull/5211. Signed-off-by: Xinze Chi <xinze@xsky.com>
* messages/MOSDRepOp.h: init some vars of MOSDRepOp in ctorDanny Al-Gaaf2015-07-171-1/+2
| | | | | | | | | | | | Fix for: CID 1262114 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR) uninit_member: Non-static class member map_epoch is not initialized in this constructor nor in any functions that it calls. uninit_member: Non-static class member acks_wanted is not initialized in this constructor nor in any functions that it calls. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
* Add MOSDRepOp and MOSDRepOpReplyXiaoxi Chen2015-01-051-0/+138
Add the two new message type and change the corresponding code flow as well. Basically the idea to have MOSDRepOp is to seperate subop(read/write) out of other subop(pull/push,etc), so that we can cleanup some unused fields in the message type, then save some encoding/decoding overhead. The backward compatibility is also remian, if talking with old version OSD who doesn't support osd_client_subop/subopreply, will fall back to osd_subop/subopreply. Sage: rename MOSDClientSubOp -> MOSDRepOp Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com> Signed-off-by: Sage Weil <sage@redhat.com>