Squashed commit of the following:
commit 4a1b52c12e
Author: Christian Schwarz <christian@neon.tech>
Date: Mon May 5 12:45:45 2025 +0200
WIP
commit 257693e4f2
Author: Christian Schwarz <christian@neon.tech>
Date: Mon May 5 10:59:45 2025 +0200
WIP
commit 7aa9beaefd
Author: Christian Schwarz <christian@neon.tech>
Date: Sun May 4 17:06:46 2025 +0200
make sk compile
commit 35dbbbaf60
Author: Christian Schwarz <christian@neon.tech>
Date: Sun May 4 16:50:23 2025 +0200
move discovery request mechanism into that type as well
Can't move the policy when we send disovery mechanism because that's
tied to connection_manager loop state.
commit 6380c9674c
Author: Christian Schwarz <christian@neon.tech>
Date: Sun May 4 16:22:46 2025 +0200
move subscription code into new client struct
commit 1f53688189
Author: Christian Schwarz <christian@neon.tech>
Date: Sun May 4 14:40:44 2025 +0200
Revert "rip out broker binary target & launch of it in cplane & mention of it in docs"
This reverts commit 8f201b1580.
commit 8f201b1580
Author: Christian Schwarz <christian@neon.tech>
Date: Sun May 4 14:38:52 2025 +0200
rip out broker binary target & launch of it in cplane & mention of it in docs
## Problem
For the [communicator
project](https://github.com/neondatabase/company_projects/issues/352),
we want to move to gRPC for the page service protocol.
Touches #11728.
## Summary of changes
This patch adds an experimental gRPC Protobuf schema for the page
service. It is equivalent to the current page service, but with several
improvements, e.g.:
* Connection multiplexing.
* Reduced head-of-line blocking.
* Client-side batching.
* Explicit tenant shard routing.
* GetPage request classification (normal vs. prefetch).
* Explicit rate limiting ("slow down" response status).
The API is exposed as a new `pageserver/page_api` package. This is
separate from the `pageserver_api` package to reduce the dependency
footprint for the communicator. The longer-term plan is to also split
out e.g. the WAL ingestion service to a separate gRPC package, e.g.
`pageserver/wal_api`.
Subsequent PRs will: add Rust domain types for the Protobuf types,
expose a gRPC server, and implement the page service.
Preliminary prototype benchmarks of this gRPC API is within 10% of
baseline libpq performance. We'll do further benchmarking and
optimization as the implementation lands in `main` and is deployed to
staging.
## Problem
Currently the `logger` library throws annoying deprecation warnings:
```python
DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
```
## Summary of changes
This small PR resolves the annoying deprecation warnings by migrating to
`.warning` as suggested.
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
You still need to provide a max size up-front, but memory is only
allocated for the portion that is in use.
The module is currently unused, but will be used by the new compute
communicator project, in the neon Postgres extension. See
https://github.com/neondatabase/neon/issues/11729
---------
Co-authored-by: Erik Grinaker <erik@neon.tech>