mirror of https://github.com/mongodb/mongo
SERVER-112894 Add module annotations to timeseries bucket catalog (#43106)
GitOrigin-RevId: be698d9220a84d953f578b9ea95af626929a8975
This commit is contained in:
parent
c4fe7575ce
commit
3361d2c31f
|
|
@ -754,7 +754,14 @@ networking.mongo_bridge:
|
||||||
files:
|
files:
|
||||||
- src/mongo/tools/mongobridge_tool/
|
- src/mongo/tools/mongobridge_tool/
|
||||||
|
|
||||||
timeseries_bucket_catalog: # authoritative: @10gen/server-timeseries-bucket-catalog
|
timeseries: # authoritative: @10gen/server-collection-write-path
|
||||||
|
meta:
|
||||||
|
slack: server-storage-execution
|
||||||
|
jira: Storage Execution
|
||||||
|
files:
|
||||||
|
- src/mongo/db/timeseries # excluding ./bucket_catalog
|
||||||
|
|
||||||
|
timeseries.bucket_catalog: # authoritative: @10gen/server-timeseries-bucket-catalog
|
||||||
meta:
|
meta:
|
||||||
slack: server-storage-execution
|
slack: server-storage-execution
|
||||||
jira: Storage Execution
|
jira: Storage Execution
|
||||||
|
|
@ -767,7 +774,6 @@ collection_write_path: # authoritative: @10gen/server-collection-write-path
|
||||||
jira: Storage Execution
|
jira: Storage Execution
|
||||||
files:
|
files:
|
||||||
- src/mongo/db/collection_crud
|
- src/mongo/db/collection_crud
|
||||||
- src/mongo/db/timeseries # excluding ./bucket_catalog
|
|
||||||
- src/mongo/db/commands/collection_to_capped*
|
- src/mongo/db/commands/collection_to_capped*
|
||||||
|
|
||||||
bsoncolumn: # authoritative: @10gen/server-bsoncolumn
|
bsoncolumn: # authoritative: @10gen/server-bsoncolumn
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,6 @@
|
||||||
#include "mongo/base/string_data.h"
|
#include "mongo/base/string_data.h"
|
||||||
#include "mongo/bson/bsonobj.h"
|
#include "mongo/bson/bsonobj.h"
|
||||||
#include "mongo/db/operation_id.h"
|
#include "mongo/db/operation_id.h"
|
||||||
#include "mongo/db/repl/optime.h"
|
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket_identifiers.h"
|
#include "mongo/db/timeseries/bucket_catalog/bucket_identifiers.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket_state_registry.h"
|
#include "mongo/db/timeseries/bucket_catalog/bucket_state_registry.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/execution_stats.h"
|
#include "mongo/db/timeseries/bucket_catalog/execution_stats.h"
|
||||||
|
|
@ -41,10 +40,10 @@
|
||||||
#include "mongo/db/timeseries/bucket_catalog/rollover.h"
|
#include "mongo/db/timeseries/bucket_catalog/rollover.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/tracking_contexts.h"
|
#include "mongo/db/timeseries/bucket_catalog/tracking_contexts.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/write_batch.h"
|
#include "mongo/db/timeseries/bucket_catalog/write_batch.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
#include "mongo/util/string_map.h"
|
#include "mongo/util/string_map.h"
|
||||||
#include "mongo/util/time_support.h"
|
#include "mongo/util/time_support.h"
|
||||||
#include "mongo/util/tracking/list.h"
|
#include "mongo/util/tracking/list.h"
|
||||||
#include "mongo/util/tracking/set.h"
|
|
||||||
|
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
@ -52,9 +51,9 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include <boost/container/small_vector.hpp>
|
#include <boost/container/small_vector.hpp>
|
||||||
#include <boost/none.hpp>
|
|
||||||
#include <boost/optional/optional.hpp>
|
#include <boost/optional/optional.hpp>
|
||||||
|
|
||||||
|
MONGO_MOD_PUBLIC;
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,6 @@
|
||||||
#include "mongo/db/timeseries/bucket_catalog/global_bucket_catalog.h"
|
#include "mongo/db/timeseries/bucket_catalog/global_bucket_catalog.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/rollover.h"
|
#include "mongo/db/timeseries/bucket_catalog/rollover.h"
|
||||||
#include "mongo/db/timeseries/bucket_compression.h"
|
#include "mongo/db/timeseries/bucket_compression.h"
|
||||||
#include "mongo/db/timeseries/bucket_compression_failure.h"
|
|
||||||
#include "mongo/db/timeseries/timeseries_constants.h"
|
#include "mongo/db/timeseries/timeseries_constants.h"
|
||||||
#include "mongo/util/assert_util.h"
|
#include "mongo/util/assert_util.h"
|
||||||
#include "mongo/util/fail_point.h"
|
#include "mongo/util/fail_point.h"
|
||||||
|
|
@ -49,10 +48,6 @@
|
||||||
|
|
||||||
#include <absl/container/node_hash_map.h>
|
#include <absl/container/node_hash_map.h>
|
||||||
#include <absl/meta/type_traits.h>
|
#include <absl/meta/type_traits.h>
|
||||||
#include <boost/container/small_vector.hpp>
|
|
||||||
#include <boost/container/vector.hpp>
|
|
||||||
#include <boost/move/utility_core.hpp>
|
|
||||||
#include <boost/optional/optional.hpp>
|
|
||||||
|
|
||||||
#define MONGO_LOGV2_DEFAULT_COMPONENT ::mongo::logv2::LogComponent::kStorage
|
#define MONGO_LOGV2_DEFAULT_COMPONENT ::mongo::logv2::LogComponent::kStorage
|
||||||
|
|
||||||
|
|
@ -175,18 +170,6 @@ BucketCatalog::BucketCatalog(size_t numberOfStripes, std::function<uint64_t()> m
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
BatchedInsertContext::BatchedInsertContext(
|
|
||||||
BucketKey& bucketKey,
|
|
||||||
StripeNumber stripeNumber,
|
|
||||||
const TimeseriesOptions& options,
|
|
||||||
ExecutionStatsController& stats,
|
|
||||||
std::vector<BatchedInsertTuple>& measurementsTimesAndIndices)
|
|
||||||
: key(std::move(bucketKey)),
|
|
||||||
stripeNumber(stripeNumber),
|
|
||||||
options(options),
|
|
||||||
stats(stats),
|
|
||||||
measurementsTimesAndIndices(measurementsTimesAndIndices) {};
|
|
||||||
|
|
||||||
uint64_t getMemoryUsage(const BucketCatalog& catalog) {
|
uint64_t getMemoryUsage(const BucketCatalog& catalog) {
|
||||||
#ifndef MONGO_CONFIG_DEBUG_BUILD
|
#ifndef MONGO_CONFIG_DEBUG_BUILD
|
||||||
return catalog.trackingContexts.global.allocated();
|
return catalog.trackingContexts.global.allocated();
|
||||||
|
|
|
||||||
|
|
@ -40,13 +40,17 @@
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket_state_registry.h"
|
#include "mongo/db/timeseries/bucket_catalog/bucket_state_registry.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/execution_stats.h"
|
#include "mongo/db/timeseries/bucket_catalog/execution_stats.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/reopening.h"
|
#include "mongo/db/timeseries/bucket_catalog/reopening.h"
|
||||||
|
#include "mongo/db/timeseries/bucket_catalog/rollover.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/tracking_contexts.h"
|
#include "mongo/db/timeseries/bucket_catalog/tracking_contexts.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/write_batch.h"
|
#include "mongo/db/timeseries/bucket_catalog/write_batch.h"
|
||||||
#include "mongo/db/timeseries/timeseries_gen.h"
|
#include "mongo/db/timeseries/timeseries_gen.h"
|
||||||
#include "mongo/stdx/mutex.h"
|
#include "mongo/stdx/mutex.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
#include "mongo/util/tracking/btree_map.h"
|
#include "mongo/util/tracking/btree_map.h"
|
||||||
#include "mongo/util/tracking/flat_hash_set.h"
|
#include "mongo/util/tracking/flat_hash_set.h"
|
||||||
#include "mongo/util/tracking/inlined_vector.h"
|
#include "mongo/util/tracking/inlined_vector.h"
|
||||||
|
#include "mongo/util/tracking/list.h"
|
||||||
|
#include "mongo/util/tracking/memory.h"
|
||||||
#include "mongo/util/tracking/unordered_map.h"
|
#include "mongo/util/tracking/unordered_map.h"
|
||||||
#include "mongo/util/uuid.h"
|
#include "mongo/util/uuid.h"
|
||||||
|
|
||||||
|
|
@ -56,11 +60,9 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <variant>
|
#include <variant>
|
||||||
|
|
||||||
#include <absl/container/inlined_vector.h>
|
|
||||||
#include <boost/container/static_vector.hpp>
|
|
||||||
#include <boost/move/utility_core.hpp>
|
|
||||||
#include <boost/optional/optional.hpp>
|
#include <boost/optional/optional.hpp>
|
||||||
|
|
||||||
|
MONGO_MOD_PUBLIC;
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
using StripeNumber = std::uint8_t;
|
using StripeNumber = std::uint8_t;
|
||||||
|
|
@ -92,12 +94,6 @@ struct BatchedInsertContext {
|
||||||
const TimeseriesOptions& options;
|
const TimeseriesOptions& options;
|
||||||
ExecutionStatsController stats;
|
ExecutionStatsController stats;
|
||||||
std::vector<BatchedInsertTuple> measurementsTimesAndIndices;
|
std::vector<BatchedInsertTuple> measurementsTimesAndIndices;
|
||||||
|
|
||||||
BatchedInsertContext(BucketKey&,
|
|
||||||
StripeNumber,
|
|
||||||
const TimeseriesOptions&,
|
|
||||||
ExecutionStatsController&,
|
|
||||||
std::vector<BatchedInsertTuple>&);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@
|
||||||
#include "mongo/db/storage/recovery_unit.h"
|
#include "mongo/db/storage/recovery_unit.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket_catalog.h"
|
#include "mongo/db/timeseries/bucket_catalog/bucket_catalog.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/flat_bson.h"
|
#include "mongo/db/timeseries/bucket_catalog/flat_bson.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
#include "mongo/util/time_support.h"
|
#include "mongo/util/time_support.h"
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
@ -47,6 +48,7 @@
|
||||||
|
|
||||||
#include <boost/optional/optional.hpp>
|
#include <boost/optional/optional.hpp>
|
||||||
|
|
||||||
|
MONGO_MOD_PUBLIC;
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@
|
||||||
#include "mongo/bson/oid.h"
|
#include "mongo/bson/oid.h"
|
||||||
#include "mongo/db/local_catalog/collection.h"
|
#include "mongo/db/local_catalog/collection.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket.h"
|
#include "mongo/db/timeseries/bucket_catalog/bucket.h"
|
||||||
|
#include "mongo/db/timeseries/bucket_catalog/bucket_catalog.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket_identifiers.h"
|
#include "mongo/db/timeseries/bucket_catalog/bucket_identifiers.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket_state_registry.h"
|
#include "mongo/db/timeseries/bucket_catalog/bucket_state_registry.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/execution_stats.h"
|
#include "mongo/db/timeseries/bucket_catalog/execution_stats.h"
|
||||||
|
|
@ -43,27 +44,18 @@
|
||||||
#include "mongo/db/timeseries/bucket_catalog/write_batch.h"
|
#include "mongo/db/timeseries/bucket_catalog/write_batch.h"
|
||||||
#include "mongo/db/timeseries/timeseries_gen.h"
|
#include "mongo/db/timeseries/timeseries_gen.h"
|
||||||
#include "mongo/util/concurrency/with_lock.h"
|
#include "mongo/util/concurrency/with_lock.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
#include "mongo/util/time_support.h"
|
#include "mongo/util/time_support.h"
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <variant>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <boost/optional/optional.hpp>
|
#include <boost/optional/optional.hpp>
|
||||||
|
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
|
||||||
struct Stripe;
|
|
||||||
class BucketCatalog;
|
|
||||||
struct BatchedInsertContext;
|
|
||||||
} // namespace mongo::timeseries::bucket_catalog
|
|
||||||
|
|
||||||
namespace mongo::timeseries::bucket_catalog::internal {
|
namespace mongo::timeseries::bucket_catalog::internal {
|
||||||
|
|
||||||
using StripeNumber = std::uint8_t;
|
|
||||||
using BatchedInsertTuple = std::tuple<BSONObj, Date_t, UserBatchIndex>;
|
|
||||||
/**
|
/**
|
||||||
* Function that should run validation against the bucket to ensure it's a proper bucket document.
|
* Function that should run validation against the bucket to ensure it's a proper bucket document.
|
||||||
* Typically, this should execute Collection::checkValidation.
|
* Typically, this should execute Collection::checkValidation.
|
||||||
|
|
@ -71,7 +63,7 @@ using BatchedInsertTuple = std::tuple<BSONObj, Date_t, UserBatchIndex>;
|
||||||
using BucketDocumentValidator =
|
using BucketDocumentValidator =
|
||||||
std::function<std::pair<Collection::SchemaValidationResult, Status>(const BSONObj&)>;
|
std::function<std::pair<Collection::SchemaValidationResult, Status>(const BSONObj&)>;
|
||||||
|
|
||||||
enum class StageInsertBatchResult {
|
enum class MONGO_MOD_PARENT_PRIVATE StageInsertBatchResult {
|
||||||
Success,
|
Success,
|
||||||
RolloverNeeded,
|
RolloverNeeded,
|
||||||
NoMeasurementsStaged,
|
NoMeasurementsStaged,
|
||||||
|
|
@ -264,6 +256,7 @@ boost::optional<OID> findArchivedCandidate(BucketCatalog& catalog,
|
||||||
* buckets. Returns a pair of the effective value that respects the absolute bucket max and min
|
* buckets. Returns a pair of the effective value that respects the absolute bucket max and min
|
||||||
* sizes and the raw value.
|
* sizes and the raw value.
|
||||||
*/
|
*/
|
||||||
|
MONGO_MOD_PARENT_PRIVATE
|
||||||
std::pair<int32_t, int32_t> getCacheDerivedBucketMaxSize(uint64_t storageCacheSizeBytes,
|
std::pair<int32_t, int32_t> getCacheDerivedBucketMaxSize(uint64_t storageCacheSizeBytes,
|
||||||
int64_t workloadCardinality);
|
int64_t workloadCardinality);
|
||||||
|
|
||||||
|
|
@ -353,6 +346,7 @@ void resetBucketOIDCounter();
|
||||||
/**
|
/**
|
||||||
* Allocates a new bucket and adds it to the catalog.
|
* Allocates a new bucket and adds it to the catalog.
|
||||||
*/
|
*/
|
||||||
|
MONGO_MOD_PARENT_PRIVATE
|
||||||
Bucket& allocateBucket(BucketCatalog& catalog,
|
Bucket& allocateBucket(BucketCatalog& catalog,
|
||||||
Stripe& stripe,
|
Stripe& stripe,
|
||||||
WithLock stripeLock,
|
WithLock stripeLock,
|
||||||
|
|
@ -367,6 +361,7 @@ Bucket& allocateBucket(BucketCatalog& catalog,
|
||||||
* Will also update the bucket catalog stats incNumBucketsKeptOpenDueToLargeMeasurements as
|
* Will also update the bucket catalog stats incNumBucketsKeptOpenDueToLargeMeasurements as
|
||||||
* appropriate.
|
* appropriate.
|
||||||
*/
|
*/
|
||||||
|
MONGO_MOD_PARENT_PRIVATE
|
||||||
RolloverReason determineRolloverReason(const BSONObj& doc,
|
RolloverReason determineRolloverReason(const BSONObj& doc,
|
||||||
const TimeseriesOptions& timeseriesOptions,
|
const TimeseriesOptions& timeseriesOptions,
|
||||||
int64_t numberOfActiveBuckets,
|
int64_t numberOfActiveBuckets,
|
||||||
|
|
@ -433,6 +428,7 @@ void closeArchivedBucket(BucketCatalog& catalog,
|
||||||
* inserted into the provided bucket, returns true. Otherwise, returns false.
|
* inserted into the provided bucket, returns true. Otherwise, returns false.
|
||||||
* Also increments `currentPosition` to one past the index of the last measurement inserted.
|
* Also increments `currentPosition` to one past the index of the last measurement inserted.
|
||||||
*/
|
*/
|
||||||
|
MONGO_MOD_PARENT_PRIVATE
|
||||||
StageInsertBatchResult stageInsertBatchIntoEligibleBucket(BucketCatalog& catalog,
|
StageInsertBatchResult stageInsertBatchIntoEligibleBucket(BucketCatalog& catalog,
|
||||||
OperationId opId,
|
OperationId opId,
|
||||||
const StringDataComparator* comparator,
|
const StringDataComparator* comparator,
|
||||||
|
|
|
||||||
|
|
@ -31,11 +31,13 @@
|
||||||
|
|
||||||
#include "mongo/bson/oid.h"
|
#include "mongo/bson/oid.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket_metadata.h"
|
#include "mongo/db/timeseries/bucket_catalog/bucket_metadata.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
#include "mongo/util/uuid.h"
|
#include "mongo/util/uuid.h"
|
||||||
|
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
|
MONGO_MOD_PUBLIC;
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,6 @@
|
||||||
#include "mongo/bson/util/builder.h"
|
#include "mongo/bson/util/builder.h"
|
||||||
#include "mongo/db/timeseries/metadata.h"
|
#include "mongo/db/timeseries/metadata.h"
|
||||||
|
|
||||||
#include <boost/move/utility_core.hpp>
|
|
||||||
#include <boost/optional/optional.hpp>
|
|
||||||
|
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
BucketMetadata::BucketMetadata(tracking::Context& trackingContext,
|
BucketMetadata::BucketMetadata(tracking::Context& trackingContext,
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@
|
||||||
#include "mongo/base/string_data.h"
|
#include "mongo/base/string_data.h"
|
||||||
#include "mongo/bson/bsonelement.h"
|
#include "mongo/bson/bsonelement.h"
|
||||||
#include "mongo/bson/bsonobj.h"
|
#include "mongo/bson/bsonobj.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
#include "mongo/util/shared_buffer.h"
|
#include "mongo/util/shared_buffer.h"
|
||||||
#include "mongo/util/tracking/allocator.h"
|
#include "mongo/util/tracking/allocator.h"
|
||||||
#include "mongo/util/tracking/context.h"
|
#include "mongo/util/tracking/context.h"
|
||||||
|
|
@ -40,6 +41,7 @@
|
||||||
#include <absl/strings/string_view.h>
|
#include <absl/strings/string_view.h>
|
||||||
#include <boost/optional/optional.hpp>
|
#include <boost/optional/optional.hpp>
|
||||||
|
|
||||||
|
MONGO_MOD_PUBLIC;
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
struct BucketMetadata {
|
struct BucketMetadata {
|
||||||
|
|
@ -49,7 +51,6 @@ public:
|
||||||
boost::optional<StringData> trueMetaFieldName);
|
boost::optional<StringData> trueMetaFieldName);
|
||||||
|
|
||||||
bool operator==(const BucketMetadata& other) const;
|
bool operator==(const BucketMetadata& other) const;
|
||||||
bool operator!=(const BucketMetadata& other) const;
|
|
||||||
|
|
||||||
BSONObj toBSON() const;
|
BSONObj toBSON() const;
|
||||||
BSONElement element() const;
|
BSONElement element() const;
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@
|
||||||
#include "mongo/bson/bsonobjbuilder.h"
|
#include "mongo/bson/bsonobjbuilder.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket_identifiers.h"
|
#include "mongo/db/timeseries/bucket_catalog/bucket_identifiers.h"
|
||||||
#include "mongo/stdx/mutex.h"
|
#include "mongo/stdx/mutex.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
#include "mongo/util/tracking/map.h"
|
#include "mongo/util/tracking/map.h"
|
||||||
#include "mongo/util/tracking/unordered_map.h"
|
#include "mongo/util/tracking/unordered_map.h"
|
||||||
#include "mongo/util/tracking/vector.h"
|
#include "mongo/util/tracking/vector.h"
|
||||||
|
|
@ -42,8 +43,6 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <variant>
|
#include <variant>
|
||||||
|
|
||||||
#include <boost/move/utility_core.hpp>
|
|
||||||
#include <boost/none.hpp>
|
|
||||||
#include <boost/optional/optional.hpp>
|
#include <boost/optional/optional.hpp>
|
||||||
|
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
@ -89,11 +88,11 @@ enum class BucketState : uint8_t {
|
||||||
// Cannot accept inserts and will continue to not accept inserts.
|
// Cannot accept inserts and will continue to not accept inserts.
|
||||||
kFrozen,
|
kFrozen,
|
||||||
// Cannot accept inserts, and has an outstanding prepared commit. This
|
// Cannot accept inserts, and has an outstanding prepared commit. This
|
||||||
// state will propogate WriteConflictExceptions to all writers aside from
|
// state will propagate WriteConflictExceptions to all writers aside from
|
||||||
// the writer who prepared the commit.
|
// the writer who prepared the commit.
|
||||||
kPreparedAndCleared,
|
kPreparedAndCleared,
|
||||||
// Cannot accept inserts, and has an outstanding prepared commit. This
|
// Cannot accept inserts, and has an outstanding prepared commit. This
|
||||||
// state will propogate WriteConflictExceptions to all writers aside from
|
// state will propagate WriteConflictExceptions to all writers aside from
|
||||||
// the writer who prepared the commit.
|
// the writer who prepared the commit.
|
||||||
kPreparedAndFrozen,
|
kPreparedAndFrozen,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -31,8 +31,10 @@
|
||||||
|
|
||||||
#include "mongo/bson/bsonobjbuilder.h"
|
#include "mongo/bson/bsonobjbuilder.h"
|
||||||
#include "mongo/platform/atomic_word.h"
|
#include "mongo/platform/atomic_word.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
#include "mongo/util/tracking/memory.h"
|
#include "mongo/util/tracking/memory.h"
|
||||||
|
|
||||||
|
MONGO_MOD_PUBLIC;
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
struct ExecutionStats {
|
struct ExecutionStats {
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@
|
||||||
#include "mongo/base/string_data.h"
|
#include "mongo/base/string_data.h"
|
||||||
#include "mongo/bson/bsonelement.h"
|
#include "mongo/bson/bsonelement.h"
|
||||||
#include "mongo/bson/bsontypes.h"
|
#include "mongo/bson/bsontypes.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
#include "mongo/util/tracking/string_map.h"
|
#include "mongo/util/tracking/string_map.h"
|
||||||
#include "mongo/util/tracking/vector.h"
|
#include "mongo/util/tracking/vector.h"
|
||||||
|
|
||||||
|
|
@ -50,7 +51,7 @@
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stores a BSON hierarchy in a flat contigous memory structure. Optimized for fast traversal
|
* Stores a BSON hierarchy in a flat contiguous memory structure. Optimized for fast traversal
|
||||||
* in lock-step of a BSONObj with the same internal field order. It does this at the expense of
|
* in lock-step of a BSONObj with the same internal field order. It does this at the expense of
|
||||||
* insert performance which should be a rare operation when adding measurements to a timeseries
|
* insert performance which should be a rare operation when adding measurements to a timeseries
|
||||||
* bucket. Usually we need to traverse the FlatBSONStore structure to check if we need to update any
|
* bucket. Usually we need to traverse the FlatBSONStore structure to check if we need to update any
|
||||||
|
|
@ -306,6 +307,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Updates the stored fields provided by 'doc', ignoring the 'metaField' field.
|
* Updates the stored fields provided by 'doc', ignoring the 'metaField' field.
|
||||||
*/
|
*/
|
||||||
|
MONGO_MOD_PUBLIC
|
||||||
UpdateStatus update(const BSONObj& doc,
|
UpdateStatus update(const BSONObj& doc,
|
||||||
boost::optional<StringData> metaField,
|
boost::optional<StringData> metaField,
|
||||||
const StringDataComparator* stringComparator);
|
const StringDataComparator* stringComparator);
|
||||||
|
|
@ -445,7 +447,7 @@ private:
|
||||||
/**
|
/**
|
||||||
* Manages Min and Max values for timeseries measurements within a bucket.
|
* Manages Min and Max values for timeseries measurements within a bucket.
|
||||||
*/
|
*/
|
||||||
class MinMax : public FlatBSON<MinMax, MinMaxElement, BSONElementValueBuffer> {
|
class MONGO_MOD_PUBLIC MinMax : public FlatBSON<MinMax, MinMaxElement, BSONElementValueBuffer> {
|
||||||
friend class FlatBSON<MinMax, MinMaxElement, BSONElementValueBuffer>;
|
friend class FlatBSON<MinMax, MinMaxElement, BSONElementValueBuffer>;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
@ -556,7 +558,7 @@ private:
|
||||||
/**
|
/**
|
||||||
* Manages schema data for timeseries measurements within a bucket.
|
* Manages schema data for timeseries measurements within a bucket.
|
||||||
*/
|
*/
|
||||||
class Schema : public FlatBSON<Schema, SchemaElement, BSONTypeValue> {
|
class MONGO_MOD_PUBLIC Schema : public FlatBSON<Schema, SchemaElement, BSONTypeValue> {
|
||||||
friend class FlatBSON<Schema, SchemaElement, BSONTypeValue>;
|
friend class FlatBSON<Schema, SchemaElement, BSONTypeValue>;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,9 @@
|
||||||
|
|
||||||
#include "mongo/db/service_context.h"
|
#include "mongo/db/service_context.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket_catalog.h"
|
#include "mongo/db/timeseries/bucket_catalog/bucket_catalog.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
|
|
||||||
|
MONGO_MOD_PUBLIC;
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -32,11 +32,13 @@
|
||||||
#include "mongo/base/string_data.h"
|
#include "mongo/base/string_data.h"
|
||||||
#include "mongo/bson/bsonelement.h"
|
#include "mongo/bson/bsonelement.h"
|
||||||
#include "mongo/bson/column/bsoncolumnbuilder.h"
|
#include "mongo/bson/column/bsoncolumnbuilder.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
#include "mongo/util/tracking/string_map.h"
|
#include "mongo/util/tracking/string_map.h"
|
||||||
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
MONGO_MOD_PARENT_PRIVATE;
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,8 @@
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket_identifiers.h"
|
#include "mongo/db/timeseries/bucket_catalog/bucket_identifiers.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/execution_stats.h"
|
#include "mongo/db/timeseries/bucket_catalog/execution_stats.h"
|
||||||
#include "mongo/util/future.h"
|
#include "mongo/util/future.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
|
|
||||||
#include <boost/none.hpp>
|
|
||||||
#include <boost/optional/optional.hpp>
|
#include <boost/optional/optional.hpp>
|
||||||
|
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,9 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
|
|
||||||
|
MONGO_MOD_PARENT_PRIVATE;
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,10 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
#include "mongo/util/tracking/context.h"
|
#include "mongo/util/tracking/context.h"
|
||||||
|
|
||||||
|
MONGO_MOD_PARENT_PRIVATE;
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -29,11 +29,8 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "mongo/base/status_with.h"
|
|
||||||
#include "mongo/bson/bsonobj.h"
|
#include "mongo/bson/bsonobj.h"
|
||||||
#include "mongo/bson/oid.h"
|
|
||||||
#include "mongo/db/operation_id.h"
|
#include "mongo/db/operation_id.h"
|
||||||
#include "mongo/db/repl/optime.h"
|
|
||||||
#include "mongo/db/session/logical_session_id.h"
|
#include "mongo/db/session/logical_session_id.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket_identifiers.h"
|
#include "mongo/db/timeseries/bucket_catalog/bucket_identifiers.h"
|
||||||
#include "mongo/db/timeseries/bucket_catalog/execution_stats.h"
|
#include "mongo/db/timeseries/bucket_catalog/execution_stats.h"
|
||||||
|
|
@ -41,19 +38,17 @@
|
||||||
#include "mongo/db/timeseries/bucket_catalog/tracking_contexts.h"
|
#include "mongo/db/timeseries/bucket_catalog/tracking_contexts.h"
|
||||||
#include "mongo/util/future.h"
|
#include "mongo/util/future.h"
|
||||||
#include "mongo/util/future_impl.h"
|
#include "mongo/util/future_impl.h"
|
||||||
|
#include "mongo/util/modules.h"
|
||||||
#include "mongo/util/string_map.h"
|
#include "mongo/util/string_map.h"
|
||||||
|
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
#include <boost/container/small_vector.hpp>
|
#include <boost/container/small_vector.hpp>
|
||||||
#include <boost/move/utility_core.hpp>
|
|
||||||
#include <boost/optional/optional.hpp>
|
#include <boost/optional/optional.hpp>
|
||||||
|
|
||||||
|
MONGO_MOD_PUBLIC;
|
||||||
namespace mongo::timeseries::bucket_catalog {
|
namespace mongo::timeseries::bucket_catalog {
|
||||||
|
|
||||||
struct Bucket;
|
|
||||||
|
|
||||||
using UserBatchIndex = size_t;
|
using UserBatchIndex = size_t;
|
||||||
|
|
||||||
struct Sizes {
|
struct Sizes {
|
||||||
|
|
|
||||||
|
|
@ -27,28 +27,21 @@
|
||||||
* it in the license file.
|
* it in the license file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "mongo/db/timeseries/bucket_catalog/bucket_state_registry.h"
|
#include "mongo/s/write_ops/batch_write_op.h"
|
||||||
|
|
||||||
#include <boost/move/utility_core.hpp>
|
|
||||||
#include <boost/none.hpp>
|
|
||||||
#include <boost/optional/optional.hpp>
|
|
||||||
// IWYU pragma: no_include "ext/alloc_traits.h"
|
|
||||||
#include "mongo/base/error_codes.h"
|
#include "mongo/base/error_codes.h"
|
||||||
#include "mongo/base/status.h"
|
#include "mongo/base/status.h"
|
||||||
#include "mongo/base/string_data.h"
|
#include "mongo/base/string_data.h"
|
||||||
#include "mongo/bson/bsonmisc.h"
|
|
||||||
#include "mongo/bson/bsonobjbuilder.h"
|
#include "mongo/bson/bsonobjbuilder.h"
|
||||||
#include "mongo/bson/oid.h"
|
#include "mongo/bson/oid.h"
|
||||||
#include "mongo/bson/timestamp.h"
|
#include "mongo/bson/timestamp.h"
|
||||||
#include "mongo/bson/util/builder.h"
|
#include "mongo/bson/util/builder.h"
|
||||||
#include "mongo/db/global_catalog/catalog_cache/catalog_cache.h"
|
|
||||||
#include "mongo/db/global_catalog/catalog_cache/catalog_cache_test_fixture.h"
|
#include "mongo/db/global_catalog/catalog_cache/catalog_cache_test_fixture.h"
|
||||||
#include "mongo/db/global_catalog/catalog_cache/shard_cannot_refresh_due_to_locks_held_exception.h"
|
#include "mongo/db/global_catalog/catalog_cache/shard_cannot_refresh_due_to_locks_held_exception.h"
|
||||||
#include "mongo/db/global_catalog/router_role_api/collection_routing_info_targeter.h"
|
#include "mongo/db/global_catalog/router_role_api/collection_routing_info_targeter.h"
|
||||||
#include "mongo/db/global_catalog/router_role_api/mock_ns_targeter.h"
|
#include "mongo/db/global_catalog/router_role_api/mock_ns_targeter.h"
|
||||||
#include "mongo/db/global_catalog/shard_key_pattern.h"
|
#include "mongo/db/global_catalog/shard_key_pattern.h"
|
||||||
#include "mongo/db/namespace_string.h"
|
#include "mongo/db/namespace_string.h"
|
||||||
#include "mongo/db/query/collation/collator_interface.h"
|
|
||||||
#include "mongo/db/query/write_ops/write_ops_gen.h"
|
#include "mongo/db/query/write_ops/write_ops_gen.h"
|
||||||
#include "mongo/db/repl/read_concern_args.h"
|
#include "mongo/db/repl/read_concern_args.h"
|
||||||
#include "mongo/db/repl/read_concern_level.h"
|
#include "mongo/db/repl/read_concern_level.h"
|
||||||
|
|
@ -62,10 +55,8 @@
|
||||||
#include "mongo/db/versioning_protocol/shard_version.h"
|
#include "mongo/db/versioning_protocol/shard_version.h"
|
||||||
#include "mongo/db/versioning_protocol/shard_version_factory.h"
|
#include "mongo/db/versioning_protocol/shard_version_factory.h"
|
||||||
#include "mongo/db/versioning_protocol/stale_exception.h"
|
#include "mongo/db/versioning_protocol/stale_exception.h"
|
||||||
#include "mongo/idl/server_parameter_test_controller.h"
|
|
||||||
#include "mongo/s/session_catalog_router.h"
|
#include "mongo/s/session_catalog_router.h"
|
||||||
#include "mongo/s/transaction_router.h"
|
#include "mongo/s/transaction_router.h"
|
||||||
#include "mongo/s/write_ops/batch_write_op.h"
|
|
||||||
#include "mongo/s/write_ops/batched_command_request.h"
|
#include "mongo/s/write_ops/batched_command_request.h"
|
||||||
#include "mongo/unittest/unittest.h"
|
#include "mongo/unittest/unittest.h"
|
||||||
#include "mongo/util/fail_point.h"
|
#include "mongo/util/fail_point.h"
|
||||||
|
|
@ -75,6 +66,8 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
|
#include <boost/optional/optional.hpp>
|
||||||
|
|
||||||
namespace mongo {
|
namespace mongo {
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue