From 08cf71e0acb26c2cd2efd07343d2546bcab0efe4 Mon Sep 17 00:00:00 2001 From: Dom Dwyer Date: Thu, 9 Feb 2023 12:38:28 +0100 Subject: [PATCH 1/2] refactor(proto): move PersistService to new file Separate the PersistService into it's own file. --- generated_types/build.rs | 1 + .../influxdata/iox/ingester/v1/persist.proto | 14 ++++++++++++++ .../protos/influxdata/iox/ingester/v1/write.proto | 10 ---------- 3 files changed, 15 insertions(+), 10 deletions(-) create mode 100644 generated_types/protos/influxdata/iox/ingester/v1/persist.proto diff --git a/generated_types/build.rs b/generated_types/build.rs index bd2c190598..a511146577 100644 --- a/generated_types/build.rs +++ b/generated_types/build.rs @@ -59,6 +59,7 @@ fn generate_grpc_types(root: &Path) -> Result<()> { ingester_path.join("write_info.proto"), ingester_path.join("write.proto"), ingester_path.join("replication.proto"), + ingester_path.join("persist.proto"), namespace_path.join("service.proto"), object_store_path.join("service.proto"), predicate_path.join("predicate.proto"), diff --git a/generated_types/protos/influxdata/iox/ingester/v1/persist.proto b/generated_types/protos/influxdata/iox/ingester/v1/persist.proto new file mode 100644 index 0000000000..2cd62022a2 --- /dev/null +++ b/generated_types/protos/influxdata/iox/ingester/v1/persist.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; +package influxdata.iox.ingester.v1; +option go_package = "github.com/influxdata/iox/ingester/v1"; + +service PersistService { + rpc Persist(PersistRequest) returns (PersistResponse); +} + +message PersistRequest { + // The namespace to persist + string namespace = 1; +} + +message PersistResponse {} diff --git a/generated_types/protos/influxdata/iox/ingester/v1/write.proto b/generated_types/protos/influxdata/iox/ingester/v1/write.proto index 2737124889..2b2c4fe6d1 100644 --- a/generated_types/protos/influxdata/iox/ingester/v1/write.proto +++ b/generated_types/protos/influxdata/iox/ingester/v1/write.proto @@ -14,13 +14,3 @@ message WriteRequest { message WriteResponse {} -service PersistService { - rpc Persist(PersistRequest) returns (PersistResponse); -} - -message PersistRequest { - // The namespace to persist - string namespace = 1; -} - -message PersistResponse {} From 7ae6dda87c0b8b33e3e58305f4835c7efb11a82a Mon Sep 17 00:00:00 2001 From: Dom Dwyer Date: Thu, 9 Feb 2023 14:03:51 +0100 Subject: [PATCH 2/2] docs(proto): ingester persist endpoint This endpoint has some serious usability caveats that should be known by users of this API! --- .../protos/influxdata/iox/ingester/v1/persist.proto | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/generated_types/protos/influxdata/iox/ingester/v1/persist.proto b/generated_types/protos/influxdata/iox/ingester/v1/persist.proto index 2cd62022a2..45c0054903 100644 --- a/generated_types/protos/influxdata/iox/ingester/v1/persist.proto +++ b/generated_types/protos/influxdata/iox/ingester/v1/persist.proto @@ -3,6 +3,19 @@ package influxdata.iox.ingester.v1; option go_package = "github.com/influxdata/iox/ingester/v1"; service PersistService { + // The Persist RPC call requests an immediate persistence of all buffed data + // for a given namespace, blocking until the data is persisted. + // + // This endpoint persists the data not currently being persisted in the buffer + // for the namespace at the time of the call (if any) and then returns once + // the persist job is complete - it does not account for outstanding persist + // jobs for the same namespace (which may complete out of order). + // + // Currently this API endpoint is for internal / experimental use and is + // subject to change / removal. Multiple and/or concurrent calls to this + // method, invoking it whilst there are outstanding persist operations, or + // concurrently calling it with writes you expect to be persisted MAY result + // in strange (non-deterministic) behaviour. rpc Persist(PersistRequest) returns (PersistResponse); }