refactor: move deleter module into its own crate
parent
89fdb6010d
commit
66c81eb00a
|
@ -2779,6 +2779,7 @@ dependencies = [
|
|||
"influxdb3_catalog",
|
||||
"influxdb3_clap_blocks",
|
||||
"influxdb3_client",
|
||||
"influxdb3_deleter",
|
||||
"influxdb3_process",
|
||||
"influxdb3_processing_engine",
|
||||
"influxdb3_server",
|
||||
|
@ -2985,6 +2986,24 @@ dependencies = [
|
|||
"url",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "influxdb3_deleter"
|
||||
version = "3.2.0-nightly"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"futures-util",
|
||||
"influxdb3_catalog",
|
||||
"influxdb3_id",
|
||||
"influxdb3_shutdown",
|
||||
"iox_time",
|
||||
"object_store",
|
||||
"observability_deps",
|
||||
"parking_lot",
|
||||
"test-log",
|
||||
"test_helpers",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "influxdb3_id"
|
||||
version = "3.2.0-nightly"
|
||||
|
@ -3067,6 +3086,7 @@ dependencies = [
|
|||
"influxdb3_cache",
|
||||
"influxdb3_catalog",
|
||||
"influxdb3_client",
|
||||
"influxdb3_deleter",
|
||||
"influxdb3_internal_api",
|
||||
"influxdb3_py_api",
|
||||
"influxdb3_shutdown",
|
||||
|
@ -3152,6 +3172,7 @@ dependencies = [
|
|||
"influxdb3_cache",
|
||||
"influxdb3_catalog",
|
||||
"influxdb3_client",
|
||||
"influxdb3_deleter",
|
||||
"influxdb3_id",
|
||||
"influxdb3_internal_api",
|
||||
"influxdb3_process",
|
||||
|
@ -3354,6 +3375,7 @@ dependencies = [
|
|||
"influxdb-line-protocol",
|
||||
"influxdb3_cache",
|
||||
"influxdb3_catalog",
|
||||
"influxdb3_deleter",
|
||||
"influxdb3_id",
|
||||
"influxdb3_internal_api",
|
||||
"influxdb3_py_api",
|
||||
|
|
|
@ -6,7 +6,7 @@ members = [
|
|||
"influxdb3_cache",
|
||||
"influxdb3_catalog",
|
||||
"influxdb3_clap_blocks",
|
||||
"influxdb3_client",
|
||||
"influxdb3_client", "influxdb3_deleter",
|
||||
"influxdb3_id",
|
||||
"influxdb3_internal_api",
|
||||
"influxdb3_load_generator",
|
||||
|
|
|
@ -32,6 +32,7 @@ influxdb3_cache = { path = "../influxdb3_cache" }
|
|||
influxdb3_catalog = { path = "../influxdb3_catalog" }
|
||||
influxdb3_client = { path = "../influxdb3_client" }
|
||||
influxdb3_clap_blocks = { path = "../influxdb3_clap_blocks" }
|
||||
influxdb3_deleter = { path = "../influxdb3_deleter" }
|
||||
influxdb3_process = { path = "../influxdb3_process", default-features = false }
|
||||
influxdb3_processing_engine = {path = "../influxdb3_processing_engine"}
|
||||
influxdb3_server = { path = "../influxdb3_server" }
|
||||
|
|
|
@ -17,6 +17,7 @@ use influxdb3_clap_blocks::{
|
|||
socket_addr::SocketAddr,
|
||||
tokio::TokioDatafusionConfig,
|
||||
};
|
||||
use influxdb3_deleter::{DeleteManager, DeleteManagerArgs};
|
||||
use influxdb3_process::{
|
||||
INFLUXDB3_GIT_HASH, INFLUXDB3_VERSION, PROCESS_START_TIME, PROCESS_UUID_STR,
|
||||
};
|
||||
|
@ -41,7 +42,6 @@ use influxdb3_telemetry::{
|
|||
use influxdb3_wal::{Gen1Duration, WalConfig};
|
||||
use influxdb3_write::{
|
||||
WriteBuffer,
|
||||
deleter::{DeleteManager, DeleteManagerArgs},
|
||||
persister::Persister,
|
||||
write_buffer::{
|
||||
WriteBufferImpl, WriteBufferImplArgs, check_mem_and_force_snapshot_loop,
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
[package]
|
||||
name = "influxdb3_deleter"
|
||||
version.workspace = true
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
||||
[dependencies]
|
||||
async-trait.workspace = true
|
||||
futures-util.workspace = true
|
||||
influxdb3_catalog = { path = "../influxdb3_catalog" }
|
||||
influxdb3_id = { path = "../influxdb3_id" }
|
||||
influxdb3_shutdown = { path = "../influxdb3_shutdown" }
|
||||
iox_time.workspace = true
|
||||
object_store.workspace = true
|
||||
observability_deps.workspace = true
|
||||
parking_lot.workspace = true
|
||||
tokio.workspace = true
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
test-log.workspace = true
|
||||
test_helpers.workspace = true
|
|
@ -1,15 +1,18 @@
|
|||
use crate::async_collections;
|
||||
use std::sync::Arc;
|
||||
|
||||
use async_trait::async_trait;
|
||||
use iox_time::{Time, TimeProvider};
|
||||
use object_store::ObjectStore;
|
||||
use observability_deps::tracing::info;
|
||||
|
||||
use influxdb3_catalog::catalog::Catalog;
|
||||
use influxdb3_catalog::channel::CatalogUpdateReceiver;
|
||||
use influxdb3_catalog::log::{CatalogBatch, DatabaseCatalogOp, SoftDeleteTableLog};
|
||||
use influxdb3_catalog::resource::CatalogResource;
|
||||
use influxdb3_id::{DbId, ParquetFileId, TableId};
|
||||
use influxdb3_shutdown::ShutdownToken;
|
||||
use iox_time::{Time, TimeProvider};
|
||||
use object_store::ObjectStore;
|
||||
use observability_deps::tracing::info;
|
||||
use std::sync::Arc;
|
||||
|
||||
mod async_collections;
|
||||
|
||||
/// Trait for deleting database objects from object storage.
|
||||
#[async_trait]
|
||||
|
@ -224,10 +227,10 @@ impl ObjectDeleter for ObjectStoreDeleter {
|
|||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::async_collections;
|
||||
use crate::deleter::DeleteManager;
|
||||
use super::*;
|
||||
|
||||
use crate::async_collections;
|
||||
|
||||
use super::{DeleteManagerArgs, DeleteTask, ObjectDeleter};
|
||||
use influxdb3_catalog::catalog::{Catalog, HardDeletionTime};
|
||||
use influxdb3_catalog::log::FieldDataType;
|
||||
use influxdb3_catalog::resource::CatalogResource;
|
|
@ -20,6 +20,7 @@ iox_http_util.workspace = true
|
|||
iox_time.workspace = true
|
||||
influxdb3_catalog = { path = "../influxdb3_catalog" }
|
||||
influxdb3_client = { path = "../influxdb3_client" }
|
||||
influxdb3_deleter = { path = "../influxdb3_deleter" }
|
||||
influxdb3_internal_api = { path = "../influxdb3_internal_api" }
|
||||
influxdb3_py_api = { path = "../influxdb3_py_api" }
|
||||
influxdb3_types = { path = "../influxdb3_types" }
|
||||
|
|
|
@ -753,11 +753,11 @@ mod tests {
|
|||
use influxdb3_catalog::CatalogError;
|
||||
use influxdb3_catalog::catalog::Catalog;
|
||||
use influxdb3_catalog::log::{TriggerSettings, TriggerSpecificationDefinition};
|
||||
use influxdb3_deleter::{DeleteManager, DeleteManagerArgs};
|
||||
use influxdb3_internal_api::query_executor::UnimplementedQueryExecutor;
|
||||
use influxdb3_shutdown::ShutdownManager;
|
||||
use influxdb3_sys_events::SysEventStore;
|
||||
use influxdb3_wal::{Gen1Duration, WalConfig};
|
||||
use influxdb3_write::deleter::{DeleteManager, DeleteManagerArgs};
|
||||
use influxdb3_write::persister::Persister;
|
||||
use influxdb3_write::write_buffer::{WriteBufferImpl, WriteBufferImplArgs};
|
||||
use influxdb3_write::{Precision, WriteBuffer};
|
||||
|
|
|
@ -38,6 +38,7 @@ influxdb3_authz = { path = "../influxdb3_authz" }
|
|||
influxdb3_cache = { path = "../influxdb3_cache" }
|
||||
influxdb3_catalog = { path = "../influxdb3_catalog" }
|
||||
influxdb3_client = { path = "../influxdb3_client" }
|
||||
influxdb3_deleter = { path = "../influxdb3_deleter" }
|
||||
influxdb3_id = { path = "../influxdb3_id" }
|
||||
influxdb3_internal_api = { path = "../influxdb3_internal_api" }
|
||||
influxdb3_process = { path = "../influxdb3_process", default-features = false }
|
||||
|
|
|
@ -292,6 +292,7 @@ mod tests {
|
|||
use influxdb3_cache::last_cache::LastCacheProvider;
|
||||
use influxdb3_cache::parquet_cache::test_cached_obj_store_and_oracle;
|
||||
use influxdb3_catalog::catalog::Catalog;
|
||||
use influxdb3_deleter::{DeleteManager, DeleteManagerArgs};
|
||||
use influxdb3_processing_engine::ProcessingEngineManagerImpl;
|
||||
use influxdb3_processing_engine::environment::DisabledManager;
|
||||
use influxdb3_processing_engine::plugins::ProcessingEngineEnvironmentManager;
|
||||
|
@ -299,7 +300,6 @@ mod tests {
|
|||
use influxdb3_sys_events::SysEventStore;
|
||||
use influxdb3_telemetry::store::TelemetryStore;
|
||||
use influxdb3_wal::WalConfig;
|
||||
use influxdb3_write::deleter::{DeleteManager, DeleteManagerArgs};
|
||||
use influxdb3_write::persister::Persister;
|
||||
use influxdb3_write::write_buffer::persisted_files::PersistedFiles;
|
||||
use influxdb3_write::{Bufferer, WriteBuffer};
|
||||
|
|
|
@ -785,13 +785,16 @@ mod tests {
|
|||
parquet_cache::test_cached_obj_store_and_oracle,
|
||||
};
|
||||
use influxdb3_catalog::catalog::Catalog;
|
||||
use influxdb3_deleter::{DeleteManager, DeleteManagerArgs};
|
||||
use influxdb3_internal_api::query_executor::QueryExecutor;
|
||||
use influxdb3_shutdown::ShutdownManager;
|
||||
use influxdb3_sys_events::SysEventStore;
|
||||
use influxdb3_telemetry::store::TelemetryStore;
|
||||
use influxdb3_wal::{Gen1Duration, WalConfig};
|
||||
use influxdb3_write::{
|
||||
deleter::{DeleteManager, DeleteManagerArgs}, persister::Persister, write_buffer::{persisted_files::PersistedFiles, WriteBufferImpl, WriteBufferImplArgs}, Bufferer, WriteBuffer
|
||||
Bufferer, WriteBuffer,
|
||||
persister::Persister,
|
||||
write_buffer::{WriteBufferImpl, WriteBufferImplArgs, persisted_files::PersistedFiles},
|
||||
};
|
||||
use iox_query::exec::{DedicatedExecutor, Executor, ExecutorConfig, PerQueryMemoryPoolConfig};
|
||||
use iox_time::{MockProvider, Time};
|
||||
|
|
|
@ -6,6 +6,7 @@ use datafusion::assert_batches_sorted_eq;
|
|||
use futures::TryStreamExt;
|
||||
use influxdb3_cache::{distinct_cache::DistinctCacheProvider, last_cache::LastCacheProvider};
|
||||
use influxdb3_catalog::catalog::Catalog;
|
||||
use influxdb3_deleter::{DeleteManager, DeleteManagerArgs};
|
||||
use influxdb3_internal_api::query_executor::QueryExecutor;
|
||||
use influxdb3_server::query_executor::{CreateQueryExecutorArgs, QueryExecutorImpl};
|
||||
use influxdb3_shutdown::ShutdownManager;
|
||||
|
@ -14,7 +15,6 @@ use influxdb3_telemetry::store::TelemetryStore;
|
|||
use influxdb3_wal::{Gen1Duration, WalConfig};
|
||||
use influxdb3_write::{
|
||||
Precision, WriteBuffer,
|
||||
deleter::{DeleteManager, DeleteManagerArgs},
|
||||
persister::Persister,
|
||||
write_buffer::{WriteBufferImpl, WriteBufferImplArgs},
|
||||
};
|
||||
|
|
|
@ -26,6 +26,7 @@ trace.workspace = true
|
|||
# Local deps
|
||||
influxdb3_cache = { path = "../influxdb3_cache" }
|
||||
influxdb3_catalog = { path = "../influxdb3_catalog" }
|
||||
influxdb3_deleter = { path = "../influxdb3_deleter" }
|
||||
influxdb3_id = { path = "../influxdb3_id" }
|
||||
influxdb3_internal_api = { path = "../influxdb3_internal_api" }
|
||||
influxdb3_py_api = {path = "../influxdb3_py_api"}
|
||||
|
|
|
@ -4,9 +4,7 @@
|
|||
//! data into parquet files that are persisted to object storage. A snapshot file is written that contains the
|
||||
//! metadata of the parquet files that were written in that snapshot.
|
||||
|
||||
pub(crate) mod async_collections;
|
||||
pub mod chunk;
|
||||
pub mod deleter;
|
||||
pub mod paths;
|
||||
pub mod persister;
|
||||
pub mod write_buffer;
|
||||
|
|
|
@ -14,7 +14,6 @@ use crate::{
|
|||
LastCacheManager, ParquetFile, PersistedSnapshot, PersistedSnapshotVersion, Precision,
|
||||
WriteBuffer, WriteLineError,
|
||||
chunk::ParquetChunk,
|
||||
deleter::DeleteTaskQueuer,
|
||||
persister::{Persister, PersisterError},
|
||||
write_buffer::{
|
||||
persisted_files::PersistedFiles, queryable_buffer::QueryableBuffer,
|
||||
|
@ -41,6 +40,7 @@ use influxdb3_catalog::{
|
|||
CatalogError,
|
||||
catalog::{Catalog, DatabaseSchema, Prompt, TableDefinition},
|
||||
};
|
||||
use influxdb3_deleter::DeleteTaskQueuer;
|
||||
use influxdb3_id::{DbId, TableId};
|
||||
use influxdb3_wal::{
|
||||
Wal, WalConfig, WalFileNotifier, WalOp,
|
||||
|
@ -668,7 +668,6 @@ mod tests {
|
|||
|
||||
use super::*;
|
||||
use crate::PersistedSnapshot;
|
||||
use crate::deleter::{DeleteManager, DeleteManagerArgs};
|
||||
use crate::paths::SnapshotInfoFilePath;
|
||||
use crate::persister::Persister;
|
||||
use crate::test_helpers::WriteBufferTester;
|
||||
|
@ -683,6 +682,7 @@ mod tests {
|
|||
use influxdb3_cache::parquet_cache::test_cached_obj_store_and_oracle;
|
||||
use influxdb3_catalog::catalog::{CatalogSequenceNumber, HardDeletionTime};
|
||||
use influxdb3_catalog::log::FieldDataType;
|
||||
use influxdb3_deleter::{DeleteManager, DeleteManagerArgs};
|
||||
use influxdb3_id::{ColumnId, DbId, ParquetFileId};
|
||||
use influxdb3_shutdown::ShutdownManager;
|
||||
use influxdb3_test_helpers::object_store::RequestCountedObjectStore;
|
||||
|
|
Loading…
Reference in New Issue