package protocol.transactions

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

enum AttemptStates

transactions.basic.proto:11

Used in: TransactionAttempt, TransactionCleanupAttempt

message BroadcastToOtherConcurrentTransactionsRequest

transactions.performer.proto:41

This will be propagated to other concurrent transactions, e.g. it can be used for gating and communicating between concurrent transactions

Used in: TransactionStreamDriverToPerformer, TransactionStreamPerformerToDriver

enum Caps

transactions.extensions.proto:11

Defined https://hackmd.io/foGjnSSIQmqfks2lXwNp8w#Protocol-Extensions

Used in: performer.PerformerCapsFetchResponse, CreateConnectionResponse

message CleanupSet

transactions.cleanup.proto:75

The set of collections currently being cleaned up.

Used in: CleanupSetFetchResponse

message CleanupSetFetchRequest

transactions.cleanup.proto:79

Used as request type in: PerformerService.cleanupSetFetch

message CleanupSetFetchResponse

transactions.cleanup.proto:83

Used as response type in: PerformerService.cleanupSetFetch

message ClientRecordProcessRequest

transactions.client_record.proto:13

Used as request type in: PerformerService.clientRecordProcess

message ClientRecordProcessResponse

transactions.client_record.proto:28

Used as response type in: PerformerService.clientRecordProcess

message ClientRecordRemoveRequest

transactions.legacy.proto:107

Used as request type in: PerformerService.clientRecordRemove

message ClientRecordRemoveResponse

transactions.legacy.proto:118

Used as response type in: PerformerService.clientRecordRemove

message CloseTransactionsRequest

transactions.legacy.proto:23

Used as request type in: PerformerService.closeTransactions

(message has no fields)

message CloseTransactionsResponse

transactions.legacy.proto:26

Used as response type in: PerformerService.closeTransactions

(message has no fields)

message CommandBatch

transactions.commands.proto:342

A batch of commands, often to be performed in parallel. But not always, sometimes it's used so multiple threads can each run a series of commands in serial. (E.g. nested CommandBatches). So it's crucial that the performer respect the `parallelism` setting. Created long before HorizontalScaling. Note the semantics of this command aren't as defined as they could be - see some discussion on https://couchbase.slack.com/archives/C014WB8U2MQ/p1665062945395139 The requirements are: 1. The operations should be started in parallel (assuming `parallelism` > 1 of course) 2. The ~first error should be propagated out of the lambda. ("~first" as it's fine for this to be best-effort, e.g. it doesn't have to require atomic variables or locking. Because the first concurrent failure is anyway non-deterministic). What is not defined is what happens to the other operations if one of them fails. Are they left to run to completion, are they cancelled, is that cancellation waited on? These semantics probably need to be selectable. Currently it is acceptable to do whatever is easiest - e.g. Java reactor will automatically cancel the other operations, while in Go it's easiest to wait for them all to complete.

Used in: TransactionCommand

message CommandCommit

transactions.commands.proto:305

ExtSDKIntegration performers should ignore. Otherwise, perform an explicit ctx.commit()

Used in: TransactionCommand

message CommandGet

transactions.commands.proto:143

Used in: CommandGetOptional, TransactionCommand

message CommandGetMulti

transactions.commands.proto:214

The SDK needs to implement TransactionGetMultiReplicasFromPreferredServerGroupOptions and TransactionGetMultiReplicaFromPreferredServerGroupSpec. But to save testing effort, and because the APIs are currently identical except for naming, FIT will use the same CommandGetMulti for both. If they diverge in future we will copy the messages then.

Used in: TransactionCommand

message CommandGetMulti.TransactionGetMultiSpec

transactions.commands.proto:215

Used in: CommandGetMulti

message CommandGetOptional

transactions.commands.proto:181

There are two ways the implementation can implement getOptional: 1. An explicit ctx.getOptional() API. 2. ctx.get() throwing a catchable DocumentNotFoundException. Either is allowed.

Used in: TransactionCommand

message CommandGetReplicaFromPreferredServerGroup

transactions.commands.proto:194

Used in: TransactionCommand

message CommandInsert

transactions.commands.proto:242

Used in: TransactionCommand

message CommandInsertRegularKV

transactions.commands.proto:374

Insert a document using a regular KV operation. The command is expected to succeed. Created long before SdkCommandInsert.

Used in: TransactionCommand

message CommandQuery

transactions.commands.proto:380

Run a query command.

Used in: TransactionCommand, TransactionSingleQueryRequest

message CommandQueryParameters

transactions.legacy.proto:125

Parameters for the Query Statement

Used in: CommandQuery

message CommandRemove

transactions.commands.proto:287

Used in: TransactionCommand

message CommandRemoveRegularKV

transactions.commands.proto:368

Remove a document using a regular KV operation. The command is expected to succeed. Created long before SdkCommandRemove.

Used in: TransactionCommand

message CommandReplace

transactions.commands.proto:261

Used in: TransactionCommand

message CommandReplaceRegularKV

transactions.commands.proto:361

Replace a document using a regular KV operation. The command is expected to succeed. Created long before SdkCommandReplace.

Used in: TransactionCommand

message CommandRollback

transactions.commands.proto:312

ExtSDKIntegration performers: throw an exception (or raise an error) to cause an auto-rollback. Otherwise, perform an explicit ctx.rollback()

Used in: TransactionCommand

message CommandSetLatch

transactions.commands.proto:321

Used in: BroadcastToOtherConcurrentTransactionsRequest, TransactionCommand

message CommandTestFail

transactions.commands.proto:415

If the performer executes this command, it should report a failure. This is usually used to check an earlier operation definitely failed the transaction.

Used in: TransactionCommand

(message has no fields)

message CommandThrowException

transactions.commands.proto:421

Simulates the application throwing an exception inside the lambda. Could be used to simulate an application bug, or the application choosing to rollback this way (as opposed to ctx.rollback(), e.g. app-rollback). Application exceptions will be classified as FAIL_OTHER.

Used in: TransactionCommand

(message has no fields)

message CommandWaitOnLatch

transactions.commands.proto:317

Used in: TransactionCommand

message CreateConnectionRequest

transactions.legacy.proto:41

Requests the performer creates a connection to a Couchbase cluster, and return performer caps. In the transactions package as it was part of the original transactions-only implementation, and has been replaced now.

Used as request type in: PerformerService.createConnection

message CreateConnectionResponse

transactions.legacy.proto:69

Returns the capabilities of the performer (or more specifically, the transactions-implementation-under-test by that performer), along with a reference to the created cluster connection. As of ExtSDKIntegration, this is now legacy. Performers should implement getPerformerCaps and createClusterConnection instead. This

Used as response type in: PerformerService.createConnection

message CreateTransactionFactoryResponse

transactions.legacy.proto:19

message DocId

transactions.basic.proto:22

Exists for legacy reasons. Newer messages should use DocLocation.

Used in: CommandGet, CommandGetReplicaFromPreferredServerGroup, CommandInsert, CommandInsertRegularKV, CommandRemove, CommandRemoveRegularKV, CommandReplace, CommandReplaceRegularKV, TransactionAttempt, TransactionCleanupATRRequest, TransactionCleanupAttempt, TransactionCleanupRequest

enum DocStatus

transactions.commands.proto:132

This was only exposed in the Java API and is deprecated as of 1.1.3 Other implementations are not required to check this.

Used in: CommandGet

enum ErrorClass

transactions.commands.proto:93

Used in: ErrorWrapper

message ErrorWrapper

transactions.commands.proto:52

This maps to the TransactionOperationFailed defined in the design doc

Used in: ExpectedResult

message Event

transactions.commands.proto:29

Used in: TransactionCreateRequest

enum EventType

transactions.commands.proto:18

Used in: Event

message ExpectedCause

transactions.commands.proto:43

Used in: ErrorWrapper

message ExpectedResult

transactions.commands.proto:112

Used in: CommandCommit, CommandGet, CommandGetMulti, CommandGetReplicaFromPreferredServerGroup, CommandInsert, CommandQuery, CommandRemove, CommandReplace, CommandRollback, Get, Insert, Remove, Replace

enum ExternalException

transactions.commands.proto:63

The root cause of the TransactionException. Will only be checked if TransactionException != NO_EXCEPTION_THROWN

Used in: ExpectedCause, ExpectedResult, TransactionResult, TransactionSingleQueryResponse

message Get

transactions.commands.proto:436

Used in: TransactionCommand

message Insert

transactions.commands.proto:424

Used in: TransactionCommand

message Remove

transactions.commands.proto:458

Used in: TransactionCommand

message Replace

transactions.commands.proto:469

Used in: TransactionCommand

message TransactionAttempt

transactions.legacy.proto:33

Used in: TransactionResult

message TransactionAttemptRequest

transactions.performer.proto:160

Used in: TransactionCreateRequest

message TransactionCleanupATRRequest

transactions.cleanup.proto:28

Used as request type in: PerformerService.transactionCleanupATR

message TransactionCleanupATRResult

transactions.cleanup.proto:64

Used as response type in: PerformerService.transactionCleanupATR

message TransactionCleanupAttempt

transactions.cleanup.proto:39

The result of attempting to cleanup a single attempt entry in an ATR

Used as response type in: PerformerService.transactionCleanup

Used as field type in: TransactionCleanupATRResult, TransactionCleanupQueueResult

message TransactionCleanupQueueResult

transactions.legacy.proto:100

Used as response type in: PerformerService.transactionProcessCleanupQueue

message TransactionCleanupRequest

transactions.cleanup.proto:15

Used as request type in: PerformerService.transactionCleanup

message TransactionCommand

transactions.commands.proto:484

Used in: CommandBatch, TransactionAttemptRequest

message TransactionCreateRequest

transactions.performer.proto:117

Initiates a single transaction.

Used as request type in: PerformerService.transactionCreate

Used as field type in: TransactionStreamDriverToPerformer, Workload

message TransactionCreateResponse

transactions.performer.proto:64

message TransactionCreated

transactions.performer.proto:48

Used in: TransactionStreamPerformerToDriver

(message has no fields)

enum TransactionException

transactions.commands.proto:34

The exception received by the application, if any

Used in: ErrorWrapper, TransactionResult, TransactionSingleQueryResponse

message TransactionGenericResponse

transactions.performer.proto:68

Used as response type in: PerformerService.transactionsFactoryClose

(message has no fields)

message TransactionGetMultiOptions

transactions.options.proto:66

Used in: CommandGetMulti

enum TransactionGetMultiOptions.TransactionGetMultiMode

transactions.options.proto:67

Used in: TransactionGetMultiOptions

message TransactionGetOptions

transactions.options.proto:62

Used in: CommandGet, CommandGetOptional, CommandGetReplicaFromPreferredServerGroup, Get

message TransactionInsertOptions

transactions.options.proto:76

Used in: CommandInsert, Insert

message TransactionOptions

transactions.options.proto:42

Options that can be overridden at the individual transaction level. Note that pre-ExtSDKIntegration, this struct was empty. Not in the implementation, where PerTransactionConfig existed, but here at the FIT level. So, it will only be populated for ExtSDKIntegration performers.

Used in: TransactionCreateRequest

message TransactionProcessCleanupQueueRequest

transactions.legacy.proto:93

Used as request type in: PerformerService.transactionProcessCleanupQueue

message TransactionQueryOptions

transactions.options.proto:22

Used in: CommandQuery

message TransactionReplaceOptions

transactions.options.proto:82

Used in: CommandReplace, Replace

message TransactionResult

transactions.performer.proto:73

The result of closing a transaction: whether the transaction succeeded, its logs, any exception thrown...

Used as response type in: PerformerService.transactionCreate

Used as field type in: run.Result, TransactionSingleQueryResponse, TransactionStreamPerformerToDriver

message TransactionSingleQueryRequest

transactions.performer.proto:167

Runs a single query transaction (tximplicit). ExtSDKIntegration: cluster.query() Non-ExtSDKIntegration: transactions.query()

Used as request type in: PerformerService.transactionSingleQuery

message TransactionSingleQueryResponse

transactions.performer.proto:202

Used as response type in: PerformerService.transactionSingleQuery

message TransactionStartRequest

transactions.performer.proto:21

Used in: TransactionStreamDriverToPerformer

(message has no fields)

message TransactionStreamDriverToPerformer

transactions.performer.proto:24

Used as request type in: PerformerService.transactionStream

message TransactionStreamPerformerToDriver

transactions.performer.proto:51

Used as response type in: PerformerService.transactionStream

message TransactionsFactoryCloseRequest

transactions.performer.proto:260

Shuts down a previously created Transactions (factory)

Used as request type in: PerformerService.transactionsFactoryClose

message TransactionsFactoryCreateRequest

transactions.performer.proto:239

Creates a Transactions object, e.g. a transactions factory

Used as request type in: PerformerService.transactionsFactoryCreate

message TransactionsFactoryCreateResponse

transactions.legacy.proto:29

Used as response type in: PerformerService.transactionsFactoryCreate

enum UnstagingMode

transactions.options.proto:17

Used in: TransactionsFactoryCreateRequest

message Workload

transactions.workload.proto:13

Used in: run.Workload