influxdata / influxdata/influxdb
Add unix socket support to v2 of client library
- Dominant language
- Rust
- Stars
- 31.7k
- Forks
- 3.7k
- Avg merge
- 13h 37m
- Merged PRs (30d)
- 8
Description
__Proposal:__
The V1 client library has support for unix socket connection to influxd, this may offer higher throughput, less latency and less CPU cycles than the TCP connection for local connections. I propose to add this functionality to V2 of the client library as well so we can have these benefits for storing and retrieving data-points locally, on among others memory and performance constrained IoT devices.
__Current behavior:__
Currently, the influx client library V1 and v1.x of influxd have socket support. Influx client library V2 and influxd V2.x don't have socket support.
__Desired behavior:__
It would be great to have socket support in V2 of the library, so we can benefit from the new client features while still using the more performant local unix socket to a local v1.x influxd.
__Alternatives considered:__
- Using the TCP port.
- Using the client library V1 that is deprecated.
__Use case:__
- It may boost performance, decrease latency and increase throughput for local clients
- It will make the V2 client library more feature complete for the connection to influxd v1.x
- It could help to secure influxd v1.8, see #24344, and may alleviate the need to set-up and maintain credentials for a number of usage scenarios.
Contributor guide
Research direction
Start by comparing the V1 client library's Unix-socket support with the V2 client library's connection path, then confirm how it communicates with influxd v1.x. Define the socket configuration and compatibility behavior before implementing it; done means local Unix-socket storage and retrieval work through the V2 client with coverage for connection and failure cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, databases
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100