summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-09-30 12:51:50 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-09-30 12:51:50 +0200
commit7a74c1caf57ca0ac1801e91580acd35bea52d970 (patch)
treeb004b39940c67a0a2b761c2ce6c2a4fe4d94e3e1
parent8d54a7cf27c6bbf754fed67be94dce4c391b2256 (diff)
We only use the directwriter.
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp3
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp4
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h14
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/tlcproxy.cpp14
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/tlcproxy.h21
5 files changed, 23 insertions, 33 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp b/searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp
index cbfdb4895cc..3fa2966af73 100644
--- a/searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp
@@ -6,6 +6,7 @@
#include "i_feed_handler_owner.h"
#include "ifeedview.h"
#include "tlcproxy.h"
+#include "configstore.h"
#include <vespa/document/datatype/documenttype.h>
#include <vespa/documentapi/messagebus/documentprotocol.h>
#include <vespa/documentapi/messagebus/messages/documentreply.h>
@@ -82,7 +83,7 @@ ignoreOperation(const DocumentOperation &op)
void FeedHandler::TlsMgrWriter::storeOperation(const FeedOperation &op) {
- TlcProxy(*_tls_mgr.getSession(), _tlsDirectWriter).storeOperation(op);
+ TlcProxy(_tls_mgr.getDomainName(), *_tlsDirectWriter).storeOperation(op);
}
bool FeedHandler::TlsMgrWriter::erase(SerialNum oldest_to_keep) {
return _tls_mgr.getSession()->erase(oldest_to_keep);
diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
index 290b7b74e87..a445f62f630 100644
--- a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
@@ -8,13 +8,13 @@
#include "storeonlyfeedview.h"
#include "updatedonecontext.h"
#include "remove_batch_done_context.h"
-#include <vespa/document/datatype/documenttype.h>
#include <vespa/searchcore/proton/common/commit_time_tracker.h>
#include <vespa/searchcore/proton/common/feedtoken.h>
#include <vespa/searchcore/proton/documentmetastore/ilidreusedelayer.h>
#include <vespa/searchcore/proton/metrics/feed_metrics.h>
#include <vespa/searchcore/proton/reference/i_gid_to_lid_change_handler.h>
-#include <vespa/searchlib/common/scheduletaskcallback.h>
+#include <vespa/document/datatype/documenttype.h>
+#include <vespa/document/fieldvalue/document.h>
#include <vespa/vespalib/util/exceptions.h>
#include <vespa/log/log.h>
diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h
index fbc8888ac79..021c2b2f8f7 100644
--- a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h
+++ b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h
@@ -7,7 +7,6 @@
#include "isummaryadapter.h"
#include "replaypacketdispatcher.h"
#include "searchcontext.h"
-#include "tlcproxy.h"
#include "pendinglidtracker.h"
#include <vespa/searchcore/proton/common/doctypename.h>
#include <vespa/searchcore/proton/common/feeddebugger.h>
@@ -61,10 +60,13 @@ public:
using OnPutDoneType = const std::shared_ptr<PutDoneContext> &;
using OnRemoveDoneType = const std::shared_ptr<RemoveDoneContext> &;
using FeedTokenUP = std::unique_ptr<FeedToken>;
- using FutureDoc = std::future<Document::UP>;
- using PromisedDoc = std::promise<Document::UP>;
+ using FutureDoc = std::future<std::unique_ptr<Document>>;
+ using PromisedDoc = std::promise<std::unique_ptr<Document>>;
using FutureStream = std::future<vespalib::nbostream>;
using PromisedStream = std::promise<vespalib::nbostream>;
+ using DocumentSP = std::shared_ptr<Document>;
+ using DocumentUpdateSP = std::shared_ptr<DocumentUpdate>;
+
using Lid = search::DocumentIdT;
struct Context
@@ -157,7 +159,7 @@ private:
return _writeService.summary();
}
void putSummary(SerialNum serialNum, Lid lid, FutureStream doc, OnOperationDoneType onDone);
- void putSummary(SerialNum serialNum, Lid lid, Document::SP doc, OnOperationDoneType onDone);
+ void putSummary(SerialNum serialNum, Lid lid, DocumentSP doc, OnOperationDoneType onDone);
void removeSummary(SerialNum serialNum, Lid lid, OnWriteDoneType onDone);
void heartBeatSummary(SerialNum serialNum);
@@ -187,7 +189,7 @@ private:
// Ack token early if visibility delay is nonzero
void considerEarlyAck(FeedTokenUP &token, FeedOperation::Type opType);
- void makeUpdatedDocument(SerialNum serialNum, Lid lid, DocumentUpdate::SP upd,
+ void makeUpdatedDocument(SerialNum serialNum, Lid lid, DocumentUpdateSP upd,
OnOperationDoneType onWriteDone,PromisedDoc promisedDoc, PromisedStream promisedStream);
protected:
@@ -199,7 +201,7 @@ private:
virtual void putAttributes(SerialNum serialNum, Lid lid, const Document &doc,
bool immediateCommit, OnPutDoneType onWriteDone);
- virtual void putIndexedFields(SerialNum serialNum, Lid lid, const Document::SP &newDoc,
+ virtual void putIndexedFields(SerialNum serialNum, Lid lid, const DocumentSP &newDoc,
bool immediateCommit, OnOperationDoneType onWriteDone);
virtual UpdateScope getUpdateScope(const DocumentUpdate &upd);
diff --git a/searchcore/src/vespa/searchcore/proton/server/tlcproxy.cpp b/searchcore/src/vespa/searchcore/proton/server/tlcproxy.cpp
index c377be9f73d..215650b6664 100644
--- a/searchcore/src/vespa/searchcore/proton/server/tlcproxy.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/tlcproxy.cpp
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "tlcproxy.h"
-#include <vespa/vespalib/util/exceptions.h>
+#include <vespa/searchcore/proton/feedoperation/feedoperation.h>
#include <vespa/log/log.h>
LOG_SETUP(".proton.server.tlcproxy");
@@ -17,16 +17,8 @@ void TlcProxy::commit(search::SerialNum serialNum, search::transactionlog::Type
Packet packet;
packet.add(entry);
packet.close();
- if (_tlsDirectWriter != NULL) {
- _tlsDirectWriter->commit(_session.getDomain(), packet);
- } else {
- if (!_session.commit(vespalib::ConstBufferRef(packet.getHandle().c_str(), packet.getHandle().size()))) {
- throw vespalib::IllegalStateException(vespalib::make_string(
- "Failed to commit packet %" PRId64
- " to TLS (type = %d, size = %d).",
- entry.serial(), type, (uint32_t)buf.size()));
- }
- }
+ _tlsDirectWriter.commit(_domain, packet);
+
}
void
diff --git a/searchcore/src/vespa/searchcore/proton/server/tlcproxy.h b/searchcore/src/vespa/searchcore/proton/server/tlcproxy.h
index ccd870e18a1..8e4feb2f354 100644
--- a/searchcore/src/vespa/searchcore/proton/server/tlcproxy.h
+++ b/searchcore/src/vespa/searchcore/proton/server/tlcproxy.h
@@ -1,27 +1,22 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
-#include <vespa/document/fieldvalue/document.h>
-#include <vespa/document/update/documentupdate.h>
-#include <vespa/searchcore/proton/feedoperation/feedoperation.h>
-#include <vespa/searchlib/query/base.h>
-#include <vespa/searchlib/common/serialnum.h>
-#include <vespa/searchlib/transactionlog/translogclient.h>
-#include "fileconfigmanager.h"
-#include <persistence/spi/types.h>
+#include <vespa/searchlib/transactionlog/common.h>
namespace proton {
+class FeedOperation;
+
class TlcProxy {
- search::transactionlog::TransLogClient::Session & _session;
- search::transactionlog::Writer * _tlsDirectWriter;
+ vespalib::string _domain;
+ search::transactionlog::Writer & _tlsDirectWriter;
- void commit( search::SerialNum serialNum, search::transactionlog::Type type, const vespalib::nbostream &buf);
+ void commit(search::SerialNum serialNum, search::transactionlog::Type type, const vespalib::nbostream &buf);
public:
typedef std::unique_ptr<TlcProxy> UP;
- TlcProxy(search::transactionlog::TransLogClient::Session &session, search::transactionlog::Writer * writer = NULL)
- : _session(session), _tlsDirectWriter(writer) {}
+ TlcProxy(const vespalib::string & domain, search::transactionlog::Writer & writer)
+ : _domain(domain), _tlsDirectWriter(writer) {}
void storeOperation(const FeedOperation &op);
};