This is an automated email from the ASF dual-hosted git repository.

kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new 164e18a45e GH-45079: [FlightRPC][C++] Deprecate InitializeFlightUcx 
before removing UCX (#45080)
164e18a45e is described below

commit 164e18a45e66792221b05c4dd14bbd7ba879c2f4
Author: Raúl Cumplido <[email protected]>
AuthorDate: Fri Dec 20 23:48:14 2024 +0100

    GH-45079: [FlightRPC][C++] Deprecate InitializeFlightUcx before removing 
UCX (#45080)
    
    ### Rationale for this change
    
    We want to remove the UCX experiment as discussed on the issue:
    - https://github.com/apache/arrow/issues/43296
    
    Based on the discussions of the PR removal we have decided to deprecate it 
before.
    
    ### What changes are included in this PR?
    
    Deprecation of InitializeFlightUcx
    
    ### Are these changes tested?
    
    No, I don't think we test `ARROW_WITH_UCX` on CI.
    
    ### Are there any user-facing changes?
    
    Yes, the PR deprecated Flight UCX
    * GitHub Issue: #45079
    
    Authored-by: Raúl Cumplido <[email protected]>
    Signed-off-by: Sutou Kouhei <[email protected]>
---
 cpp/src/arrow/flight/transport/ucx/ucx.h |  2 ++
 docs/source/cpp/flight.rst               | 34 --------------------------------
 docs/source/format/Flight.rst            |  7 ++++++-
 docs/source/status.rst                   | 19 +++++++++---------
 4 files changed, 18 insertions(+), 44 deletions(-)

diff --git a/cpp/src/arrow/flight/transport/ucx/ucx.h 
b/cpp/src/arrow/flight/transport/ucx/ucx.h
index dda2c83035..7a12987c31 100644
--- a/cpp/src/arrow/flight/transport/ucx/ucx.h
+++ b/cpp/src/arrow/flight/transport/ucx/ucx.h
@@ -26,6 +26,8 @@ namespace flight {
 namespace transport {
 namespace ucx {
 
+/// \deprecated Deprecated in 19.0.0. Flight UCX is deprecated.
+ARROW_DEPRECATED(" Deprecated in 19.0.0. Flight UCX is deprecated.")
 ARROW_FLIGHT_EXPORT
 void InitializeFlightUcx();
 
diff --git a/docs/source/cpp/flight.rst b/docs/source/cpp/flight.rst
index a1e9420bfd..c076e0b8c1 100644
--- a/docs/source/cpp/flight.rst
+++ b/docs/source/cpp/flight.rst
@@ -362,38 +362,4 @@ Closing unresponsive connections
 .. _ARROW-16697: https://issues.apache.org/jira/browse/ARROW-16697
 .. _ARROW-6062: https://issues.apache.org/jira/browse/ARROW-6062
 
-
-Alternative Transports
-======================
-
-The standard transport for Arrow Flight is gRPC_. The C++
-implementation also experimentally supports a transport based on
-UCX_. To use it, use the protocol scheme ``ucx:`` when starting a
-server or creating a client.
-
-UCX Transport
--------------
-
-Not all features of the gRPC transport are supported. See
-:ref:`status-flight-rpc` for details. Also note these specific
-caveats:
-
-- The server creates an independent UCP worker for each client. This
-  consumes more resources but provides better throughput.
-- The client creates an independent UCP worker for each RPC
-  call. Again, this trades off resource consumption for
-  performance. This also means that unlike with gRPC, it is
-  essentially equivalent to make all calls with a single client or
-  with multiple clients.
-- The UCX transport attempts to avoid copies where possible. In some
-  cases, it can directly reuse UCX-allocated buffers to back
-  :class:`arrow::Buffer` objects, however, this will also extend the
-  lifetime of associated UCX resources beyond the lifetime of the
-  Flight client or server object.
-- Depending on the transport that UCX itself selects, you may find
-  that increasing ``UCX_MM_SEG_SIZE`` from the default (around 8KB) to
-  around 60KB improves performance (UCX will copy more data in a
-  single call).
-
 .. _gRPC: https://grpc.io/
-.. _UCX: https://openucx.org/
diff --git a/docs/source/format/Flight.rst b/docs/source/format/Flight.rst
index 2c5487d857..2a34db0f1b 100644
--- a/docs/source/format/Flight.rst
+++ b/docs/source/format/Flight.rst
@@ -333,9 +333,14 @@ schemes for the given transports:
 +----------------------------+--------------------------------+
 | (reuse connection)         | arrow-flight-reuse-connection: |
 +----------------------------+--------------------------------+
-| UCX_ (plaintext)           | ucx:                           |
+| UCX_ (plaintext) (1)       | ucx:                           |
 +----------------------------+--------------------------------+
 
+Notes:
+
+* \(1) Flight UCX transport has been deprecated on the 19.0.0 release.
+  The :ref:`dissociated-ipc` section proposes an alternative solution.
+
 .. _UCX: https://openucx.org/
 
 Connection Reuse
diff --git a/docs/source/status.rst b/docs/source/status.rst
index 83bee8975b..c5883afa8f 100644
--- a/docs/source/status.rst
+++ b/docs/source/status.rst
@@ -202,7 +202,7 @@ Flight RPC
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
 | gRPC + TLS transport (grpc+tls:)           | ✓     | ✓     | ✓     |    | ✓  
   | ✓     |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
-| UCX_ transport (ucx:)                      | ✓     |       |       |    |    
   |       |       |       |
+| UCX_ transport (ucx:) (1)                  | ✓     |       |       |    |    
   |       |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
 
 Supported features in the gRPC transport:
@@ -212,13 +212,13 @@ Supported features in the gRPC transport:
 
+============================================+=======+=======+=======+====+=======+=======+=======+=======+
 | All RPC methods                            | ✓     | ✓     | ✓     |    | ✓  
   | ✓     |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
-| Authentication handlers                    | ✓     | ✓     | ✓     |    | ✓ 
(1) | ✓     |       |       |
+| Authentication handlers                    | ✓     | ✓     | ✓     |    | ✓ 
(2) | ✓     |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
 | Call timeouts                              | ✓     | ✓     | ✓     |    |    
   | ✓     |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
 | Call cancellation                          | ✓     | ✓     | ✓     |    |    
   | ✓     |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
-| Concurrent client calls (2)                | ✓     | ✓     | ✓     |    | ✓  
   | ✓     |       |       |
+| Concurrent client calls (3)                | ✓     | ✓     | ✓     |    | ✓  
   | ✓     |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
 | Custom middleware                          | ✓     | ✓     | ✓     |    |    
   | ✓     |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
@@ -230,7 +230,7 @@ Supported features in the UCX transport:
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
 | Flight RPC Feature                         | C++   | Java  | Go    | JS | C# 
   | Rust  | Julia | Swift |
 
+============================================+=======+=======+=======+====+=======+=======+=======+=======+
-| All RPC methods                            | ✓ (3) |       |       |    |    
   |       |       |       |
+| All RPC methods                            | ✓ (4) |       |       |    |    
   |       |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
 | Authentication handlers                    |       |       |       |    |    
   |       |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
@@ -238,7 +238,7 @@ Supported features in the UCX transport:
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
 | Call cancellation                          |       |       |       |    |    
   |       |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
-| Concurrent client calls                    | ✓ (4) |       |       |    |    
   |       |       |       |
+| Concurrent client calls                    | ✓ (5) |       |       |    |    
   |       |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
 | Custom middleware                          |       |       |       |    |    
   |       |       |       |
 
+--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+
@@ -247,10 +247,11 @@ Supported features in the UCX transport:
 
 Notes:
 
-* \(1) Support using AspNetCore authentication handlers.
-* \(2) Whether a single client can support multiple concurrent calls.
-* \(3) Only support for DoExchange, DoGet, DoPut, and GetFlightInfo.
-* \(4) Each concurrent call is a separate connection to the server
+* \(1) Flight UCX transport has been deprecated on the 19.0.0 release.
+* \(2) Support using AspNetCore authentication handlers.
+* \(3) Whether a single client can support multiple concurrent calls.
+* \(4) Only support for DoExchange, DoGet, DoPut, and GetFlightInfo.
+* \(5) Each concurrent call is a separate connection to the server
   (unlike gRPC where concurrent calls are multiplexed over a single
   connection). This will generally provide better throughput but
   consumes more resources both on the server and the client.

Reply via email to