summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2022-01-11 12:07:55 +1100
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-01-11 01:44:40 +0000
commit7a8c1f038c04d679342b19914be66720b470a4c1 (patch)
tree00fa5e838801ba1b50c4f1a901b2252c12892271
parentb05c9dfcf90ee9b7da28c77cea1ebc5fbe60638b (diff)
downloadmongo-7a8c1f038c04d679342b19914be66720b470a4c1.tar.gz
Import wiredtiger: 431191dc22180ebc6ccba0d057c984969ba0275c from branch mongodb-5.2
ref: 5fa87bff79..431191dc22 for: 5.2.0-rc5 WT-8625 Remove WT_EXTENSION_API::transaction_{id,isolation_level,notify,oldest,visible}
-rw-r--r--src/third_party/wiredtiger/dist/filelist1
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_data_source.c59
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_api.c5
-rw-r--r--src/third_party/wiredtiger/src/docs/transactions.dox7
-rw-r--r--src/third_party/wiredtiger/src/include/extern.h10
-rw-r--r--src/third_party/wiredtiger/src/include/txn.h3
-rw-r--r--src/third_party/wiredtiger/src/include/wiredtiger_ext.h103
-rw-r--r--src/third_party/wiredtiger/src/txn/txn.c9
-rw-r--r--src/third_party/wiredtiger/src/txn/txn_ext.c99
10 files changed, 1 insertions, 297 deletions
diff --git a/src/third_party/wiredtiger/dist/filelist b/src/third_party/wiredtiger/dist/filelist
index 1ca6bf4f32b..9a7bff4773a 100644
--- a/src/third_party/wiredtiger/dist/filelist
+++ b/src/third_party/wiredtiger/dist/filelist
@@ -218,7 +218,6 @@ src/tiered/tiered_opener.c
src/tiered/tiered_work.c
src/txn/txn.c
src/txn/txn_ckpt.c
-src/txn/txn_ext.c
src/txn/txn_log.c
src/txn/txn_recover.c
src/txn/txn_rollback_to_stable.c
diff --git a/src/third_party/wiredtiger/examples/c/ex_data_source.c b/src/third_party/wiredtiger/examples/c/ex_data_source.c
index 9ee94e6cfae..752e3fc95c9 100644
--- a/src/third_party/wiredtiger/examples/c/ex_data_source.c
+++ b/src/third_party/wiredtiger/examples/c/ex_data_source.c
@@ -157,18 +157,6 @@ data_source_error(int v)
}
static int
-data_source_notify(WT_TXN_NOTIFY *handler, WT_SESSION *session, uint64_t txnid, int committed)
-{
- /* Unused parameters */
- (void)handler;
- (void)session;
- (void)txnid;
- (void)committed;
-
- return (0);
-}
-
-static int
my_cursor_next(WT_CURSOR *wtcursor)
{
(void)wtcursor;
@@ -208,53 +196,6 @@ my_cursor_insert(WT_CURSOR *wtcursor)
(void)wtcursor;
{
- int is_snapshot_isolation, isolation_level;
- /*! [WT_EXTENSION transaction isolation level] */
- isolation_level = wt_api->transaction_isolation_level(wt_api, session);
- if (isolation_level == WT_TXN_ISO_SNAPSHOT)
- is_snapshot_isolation = 1;
- else
- is_snapshot_isolation = 0;
- /*! [WT_EXTENSION transaction isolation level] */
- (void)is_snapshot_isolation;
- }
-
- {
- /*! [WT_EXTENSION transaction ID] */
- uint64_t transaction_id;
-
- transaction_id = wt_api->transaction_id(wt_api, session);
- /*! [WT_EXTENSION transaction ID] */
- (void)transaction_id;
- }
-
- {
- /*! [WT_EXTENSION transaction oldest] */
- uint64_t transaction_oldest;
-
- transaction_oldest = wt_api->transaction_oldest(wt_api);
- /*! [WT_EXTENSION transaction oldest] */
- (void)transaction_oldest;
- }
-
- {
- /*! [WT_EXTENSION transaction notify] */
- WT_TXN_NOTIFY handler;
- handler.notify = data_source_notify;
- error_check(wt_api->transaction_notify(wt_api, session, &handler));
- /*! [WT_EXTENSION transaction notify] */
- }
-
- {
- uint64_t transaction_id = 1;
- int is_visible;
- /*! [WT_EXTENSION transaction visible] */
- is_visible = wt_api->transaction_visible(wt_api, session, transaction_id);
- /*! [WT_EXTENSION transaction visible] */
- (void)is_visible;
- }
-
- {
const char *key1 = NULL, *key2 = NULL;
uint32_t key1_len = 0, key2_len = 0;
WT_COLLATOR *collator = NULL;
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index ebbed6d9d99..33400f31ea9 100644
--- a/src/third_party/wiredtiger/import.data
+++ b/src/third_party/wiredtiger/import.data
@@ -2,5 +2,5 @@
"vendor": "wiredtiger",
"github": "wiredtiger/wiredtiger.git",
"branch": "mongodb-5.2",
- "commit": "5fa87bff79eda9bb4cf1d025f3f22f04138823de"
+ "commit": "431191dc22180ebc6ccba0d057c984969ba0275c"
}
diff --git a/src/third_party/wiredtiger/src/conn/conn_api.c b/src/third_party/wiredtiger/src/conn/conn_api.c
index 5bc1c269a3d..75bdf8c6466 100644
--- a/src/third_party/wiredtiger/src/conn/conn_api.c
+++ b/src/third_party/wiredtiger/src/conn/conn_api.c
@@ -836,11 +836,6 @@ __conn_get_extension_api(WT_CONNECTION *wt_conn)
conn->extension_api.spin_lock = __wt_ext_spin_lock;
conn->extension_api.spin_unlock = __wt_ext_spin_unlock;
conn->extension_api.spin_destroy = __wt_ext_spin_destroy;
- conn->extension_api.transaction_id = __wt_ext_transaction_id;
- conn->extension_api.transaction_isolation_level = __wt_ext_transaction_isolation_level;
- conn->extension_api.transaction_notify = __wt_ext_transaction_notify;
- conn->extension_api.transaction_oldest = __wt_ext_transaction_oldest;
- conn->extension_api.transaction_visible = __wt_ext_transaction_visible;
conn->extension_api.version = wiredtiger_version;
/* Streaming pack/unpack API */
diff --git a/src/third_party/wiredtiger/src/docs/transactions.dox b/src/third_party/wiredtiger/src/docs/transactions.dox
index c594b6b15c9..7c1408a635c 100644
--- a/src/third_party/wiredtiger/src/docs/transactions.dox
+++ b/src/third_party/wiredtiger/src/docs/transactions.dox
@@ -285,11 +285,4 @@ WT_CONNECTION::set_timestamp.
| recovery | The stable timestamp used, if any, in the most recent checkpoint prior to the last shutdown. | |
| stable | Any active transaction with a commit timestamp less than or equal to the current stable timestamp will not be able to modify data, except in the instance of prepared transactions. This timestamp can be set via the API. | stable >= oldest |
-@subsection timestamp_extensions Timestamp support in the extension API
-
-The extension API, used by modules that extend WiredTiger via
-WT_CONNECTION::get_extension_api, is not timestamp-aware. In particular,
-WT_EXTENSION_API::transaction_oldest and
-WT_EXTENSION_API::transaction_visible do not take timestamps into account.
-Extensions relying on these functions may not work correctly with timestamps.
*/
diff --git a/src/third_party/wiredtiger/src/include/extern.h b/src/third_party/wiredtiger/src/include/extern.h
index 98e79f02fff..3842d28f621 100644
--- a/src/third_party/wiredtiger/src/include/extern.h
+++ b/src/third_party/wiredtiger/src/include/extern.h
@@ -732,12 +732,6 @@ extern int __wt_ext_struct_size(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session
extern int __wt_ext_struct_unpack(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session,
const void *buffer, size_t len, const char *fmt, ...)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
-extern int __wt_ext_transaction_isolation_level(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session)
- WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
-extern int __wt_ext_transaction_notify(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session,
- WT_TXN_NOTIFY *notify) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
-extern int __wt_ext_transaction_visible(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session,
- uint64_t transaction_id) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_ext_unpack_int(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, int64_t *ip)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_ext_unpack_item(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, WT_ITEM *item)
@@ -1668,10 +1662,6 @@ extern uint32_t __wt_rduppo2(uint32_t n, uint32_t po2)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern uint32_t __wt_split_page_size(int split_pct, uint32_t maxpagesize, uint32_t allocsize)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
-extern uint64_t __wt_ext_transaction_id(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session)
- WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
-extern uint64_t __wt_ext_transaction_oldest(WT_EXTENSION_API *wt_api)
- WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern uint64_t __wt_gen(WT_SESSION_IMPL *session, int which)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern uint64_t __wt_hash_city64(const void *s, size_t len)
diff --git a/src/third_party/wiredtiger/src/include/txn.h b/src/third_party/wiredtiger/src/include/txn.h
index 4b16ff51a4a..b0ecaf8c0a8 100644
--- a/src/third_party/wiredtiger/src/include/txn.h
+++ b/src/third_party/wiredtiger/src/include/txn.h
@@ -298,9 +298,6 @@ struct __wt_txn {
/* Scratch buffer for in-memory log records. */
WT_ITEM *logrec;
- /* Requested notification when transactions are resolved. */
- WT_TXN_NOTIFY *notify;
-
/* Checkpoint status. */
WT_LSN ckpt_lsn;
uint32_t ckpt_nsnapshot;
diff --git a/src/third_party/wiredtiger/src/include/wiredtiger_ext.h b/src/third_party/wiredtiger/src/include/wiredtiger_ext.h
index 22d798647d6..33d80a49b9c 100644
--- a/src/third_party/wiredtiger/src/include/wiredtiger_ext.h
+++ b/src/third_party/wiredtiger/src/include/wiredtiger_ext.h
@@ -21,42 +21,6 @@ extern "C" {
* @addtogroup wt_ext
* @{
*/
-
-/*!
- * Read-committed isolation level, returned by
- * WT_EXTENSION_API::transaction_isolation_level.
- */
-#define WT_TXN_ISO_READ_COMMITTED 1
-/*!
- * Read-uncommitted isolation level, returned by
- * WT_EXTENSION_API::transaction_isolation_level.
- */
-#define WT_TXN_ISO_READ_UNCOMMITTED 2
-/*!
- * Snapshot isolation level, returned by
- * WT_EXTENSION_API::transaction_isolation_level.
- */
-#define WT_TXN_ISO_SNAPSHOT 3
-
-typedef struct __wt_txn_notify WT_TXN_NOTIFY;
-/*!
- * Snapshot isolation level, returned by
- * WT_EXTENSION_API::transaction_isolation_level.
- */
-struct __wt_txn_notify {
- /*!
- * A method called when the session's current transaction is committed
- * or rolled back.
- *
- * @param notify a pointer to the event handler
- * @param session the current session handle
- * @param txnid the transaction ID
- * @param committed an integer value which is non-zero if the
- * transaction is being committed.
- */
- int (*notify)(WT_TXN_NOTIFY *notify, WT_SESSION *session, uint64_t txnid, int committed);
-};
-
typedef struct __wt_extension_spinlock WT_EXTENSION_SPINLOCK;
/*!
* A placeholder data structure that allows for using the WiredTiger
@@ -475,73 +439,6 @@ struct __wt_extension_api {
int (*unpack_uint)(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, uint64_t *up);
/*!
- * Return the current transaction ID.
- *
- * @param wt_api the extension handle
- * @param session the session handle
- * @returns the current transaction ID.
- *
- * @snippet ex_data_source.c WT_EXTENSION transaction ID
- */
- uint64_t (*transaction_id)(WT_EXTENSION_API *wt_api, WT_SESSION *session);
-
- /*!
- * Return the current transaction's isolation level; returns one of
- * ::WT_TXN_ISO_READ_COMMITTED, ::WT_TXN_ISO_READ_UNCOMMITTED, or
- * ::WT_TXN_ISO_SNAPSHOT.
- *
- * @param wt_api the extension handle
- * @param session the session handle
- * @returns the current transaction's isolation level.
- *
- * @snippet ex_data_source.c WT_EXTENSION transaction isolation level
- */
- int (*transaction_isolation_level)(WT_EXTENSION_API *wt_api, WT_SESSION *session);
-
- /*!
- * Request notification of transaction resolution by specifying a
- * function to be called when the session's current transaction is
- * either committed or rolled back. If the transaction is being
- * committed, but the notification function returns an error, the
- * transaction will be rolled back.
- *
- * @param wt_api the extension handle
- * @param session the session handle
- * @param notify a handler for commit or rollback events
- * @errors
- *
- * @snippet ex_data_source.c WT_EXTENSION transaction notify
- */
- int (*transaction_notify)(WT_EXTENSION_API *wt_api, WT_SESSION *session, WT_TXN_NOTIFY *notify);
-
- /*!
- * Return the oldest transaction ID not yet visible to a running
- * transaction.
- *
- * @param wt_api the extension handle
- * @param session the session handle
- * @returns the oldest transaction ID not yet visible to a running
- * transaction.
- *
- * @snippet ex_data_source.c WT_EXTENSION transaction oldest
- */
- uint64_t (*transaction_oldest)(WT_EXTENSION_API *wt_api);
-
- /*!
- * Return if the current transaction can see the given transaction ID.
- *
- * @param wt_api the extension handle
- * @param session the session handle
- * @param transaction_id the transaction ID
- * @returns true (non-zero) if the transaction ID is visible to the
- * current transaction.
- *
- * @snippet ex_data_source.c WT_EXTENSION transaction visible
- */
- int (*transaction_visible)(
- WT_EXTENSION_API *wt_api, WT_SESSION *session, uint64_t transaction_id);
-
- /*!
* @copydoc wiredtiger_version
*/
const char *(*version)(int *majorp, int *minorp, int *patchp);
diff --git a/src/third_party/wiredtiger/src/txn/txn.c b/src/third_party/wiredtiger/src/txn/txn.c
index b348dad1dfb..d5e277f41ce 100644
--- a/src/third_party/wiredtiger/src/txn/txn.c
+++ b/src/third_party/wiredtiger/src/txn/txn.c
@@ -667,7 +667,6 @@ __wt_txn_release(WT_SESSION_IMPL *session)
txn_global = &S2C(session)->txn_global;
WT_ASSERT(session, txn->mod_count == 0);
- txn->notify = NULL;
/* Clear the transaction's ID from the global table. */
if (WT_SESSION_IS_CHECKPOINT(session)) {
@@ -1681,10 +1680,6 @@ __wt_txn_commit(WT_SESSION_IMPL *session, const char *cfg[])
*/
}
- /* Commit notification. */
- if (txn->notify != NULL)
- WT_ERR(txn->notify->notify(txn->notify, (WT_SESSION *)session, txn->id, 1));
-
/*
* We are about to release the snapshot: copy values into any positioned cursors so they don't
* point to updates that could be freed once we don't have a snapshot. If this transaction is
@@ -2068,10 +2063,6 @@ __wt_txn_rollback(WT_SESSION_IMPL *session, const char *cfg[])
WT_ASSERT(session, F_ISSET(txn, WT_TXN_RUNNING));
- /* Rollback notification. */
- if (txn->notify != NULL)
- WT_TRET(txn->notify->notify(txn->notify, (WT_SESSION *)session, txn->id, 0));
-
/* Configure the timeout for this rollback operation. */
WT_RET(__txn_config_operation_timeout(session, cfg, true));
diff --git a/src/third_party/wiredtiger/src/txn/txn_ext.c b/src/third_party/wiredtiger/src/txn/txn_ext.c
deleted file mode 100644
index 3e568c7e17c..00000000000
--- a/src/third_party/wiredtiger/src/txn/txn_ext.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*-
- * Copyright (c) 2014-present MongoDB, Inc.
- * Copyright (c) 2008-2014 WiredTiger, Inc.
- * All rights reserved.
- *
- * See the file LICENSE for redistribution information.
- */
-
-#include "wt_internal.h"
-
-/*
- * __wt_ext_transaction_id --
- * Return the session's transaction ID.
- */
-uint64_t
-__wt_ext_transaction_id(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session)
-{
- WT_SESSION_IMPL *session;
-
- (void)wt_api; /* Unused parameters */
- session = (WT_SESSION_IMPL *)wt_session;
- /* Ignore failures: the only case is running out of transaction IDs. */
- WT_IGNORE_RET(__wt_txn_id_check(session));
- return (session->txn->id);
-}
-
-/*
- * __wt_ext_transaction_isolation_level --
- * Return if the current transaction's isolation level.
- */
-int
-__wt_ext_transaction_isolation_level(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session)
-{
- WT_SESSION_IMPL *session;
- WT_TXN *txn;
-
- (void)wt_api; /* Unused parameters */
-
- session = (WT_SESSION_IMPL *)wt_session;
- txn = session->txn;
-
- if (txn->isolation == WT_ISO_READ_COMMITTED)
- return (WT_TXN_ISO_READ_COMMITTED);
- if (txn->isolation == WT_ISO_READ_UNCOMMITTED)
- return (WT_TXN_ISO_READ_UNCOMMITTED);
- return (WT_TXN_ISO_SNAPSHOT);
-}
-
-/*
- * __wt_ext_transaction_notify --
- * Request notification of transaction resolution.
- */
-int
-__wt_ext_transaction_notify(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, WT_TXN_NOTIFY *notify)
-{
- WT_SESSION_IMPL *session;
- WT_TXN *txn;
-
- (void)wt_api; /* Unused parameters */
-
- session = (WT_SESSION_IMPL *)wt_session;
- txn = session->txn;
-
- /*
- * XXX For now, a single slot for notifications: I'm not bothering with more than one because
- * more than one data-source in a transaction doesn't work anyway.
- */
- if (txn->notify == notify)
- return (0);
- if (txn->notify != NULL)
- WT_RET_MSG(session, WT_ERROR, "transaction notify already scheduled");
-
- txn->notify = notify;
-
- return (0);
-}
-
-/*
- * __wt_ext_transaction_oldest --
- * Return the oldest transaction ID not yet visible to a running transaction.
- */
-uint64_t
-__wt_ext_transaction_oldest(WT_EXTENSION_API *wt_api)
-{
- return (((WT_CONNECTION_IMPL *)wt_api->conn)->txn_global.oldest_id);
-}
-
-/*
- * __wt_ext_transaction_visible --
- * Return if the current transaction can see the given transaction ID.
- */
-int
-__wt_ext_transaction_visible(
- WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, uint64_t transaction_id)
-{
- (void)wt_api; /* Unused parameters */
-
- return (__wt_txn_visible((WT_SESSION_IMPL *)wt_session, transaction_id, WT_TS_NONE));
-}