6074 Commits

Author SHA1 Message Date
Conrad Ludgate
8918b1c872 some cleanup 2024-09-13 18:27:07 +01:00
Conrad Ludgate
fe6946e15e hack around race condition 2024-09-13 10:33:32 +01:00
Conrad Ludgate
0924267612 fixup 2024-09-13 10:12:30 +01:00
Folke Behrens
d418cf2dde Merge branch 'cloneable/pglb-compute-passthrough' into pglb 2024-09-13 10:05:06 +01:00
Folke Behrens
2171a9dc2d Add client-compute passthrough 2024-09-13 10:04:20 +01:00
Folke Behrens
33a357cfeb Merge branch 'cloneable/pglb-compute-connect' into pglb 2024-09-13 09:54:20 +01:00
Folke Behrens
e06aa4b91d impl compute connect 2024-09-13 09:53:55 +01:00
Conrad Ludgate
34696381c5 fix pg raw decoding 2024-09-13 09:40:51 +01:00
Conrad Ludgate
24c48856a2 update ssl handling and add some logs 2024-09-13 09:25:11 +01:00
Conrad Ludgate
d698a50984 abstract out auth 2024-09-13 08:44:07 +01:00
Folke Behrens
9131d0463d Merge branch 'cloneable/pglb-msg-codec' into pglb 2024-09-12 23:49:22 +01:00
Folke Behrens
214442519f Add pglb/auth passthrough 2024-09-12 23:47:55 +01:00
Folke Behrens
c4e868819c Merge branch 'cloneable/pglb-type-state-pattern' into pglb 2024-09-12 21:34:06 +01:00
Folke Behrens
8198a503f2 refactor to type state pattern 2024-09-12 21:32:47 +01:00
Conrad Ludgate
76371e8452 add auth handshake to compute 2024-09-12 21:16:27 +01:00
Folke Behrens
3f66c12280 Merge branch 'cloneable/pglb-workers' into pglb 2024-09-12 18:00:37 +01:00
Folke Behrens
411a80b494 Add worker state machine 2024-09-12 17:59:54 +01:00
Conrad Ludgate
cdcb8537f5 delete dead code 2024-09-12 17:57:59 +01:00
Conrad Ludgate
37221f3252 properly handle tls-server-end-point 2024-09-12 17:55:27 +01:00
Conrad Ludgate
f95ddef4e0 call wake compute 2024-09-12 17:42:21 +01:00
Conrad Ludgate
ce200a53e8 build out auth proxy core logic 2024-09-12 17:23:56 +01:00
Conrad Ludgate
91e8b7d22b add new auth proxy backend with new codec 2024-09-12 16:36:44 +01:00
Folke Behrens
f47401f2e9 Merge branch 'cloneable/pglb-tls' into pglb 2024-09-12 15:47:21 +01:00
Folke Behrens
469597fdb6 TLS conn accept 2024-09-12 15:47:05 +01:00
Conrad Ludgate
2af5352708 add auth proxy codec 2024-09-12 15:17:01 +01:00
Conrad Ludgate
fbc37acfdf add auth proxy client connection handling 2024-09-12 12:44:48 +01:00
Folke Behrens
b71bf47c33 Merge branch 'cloneable/pglb-passthrough' into pglb 2024-09-12 12:08:58 +01:00
Folke Behrens
d653d7c62c Frontend TCP listener 2024-09-12 12:06:23 +01:00
Conrad Ludgate
52b73185f9 rename stuff 2024-09-12 11:50:59 +01:00
Conrad Ludgate
dc41d108e8 add conn state with heartbeat system 2024-09-12 11:47:08 +01:00
Conrad Ludgate
02e15b7bbb build server config and endpoint 2024-09-12 11:33:38 +01:00
Conrad Ludgate
864bdf3528 init pglb 2024-09-12 11:13:38 +01:00
Heikki Linnakangas
8dc069037b Remove NeonEnvBuilder.start() function
It feels wrong to me to start() from the builder object. Surely the
thing you start is the environment itself, not its configuration.
2024-09-12 01:28:56 +03:00
Heikki Linnakangas
0a363c3dce Add --timeline-id option to "neon_local timeline branch" command
Makes it consistent with the "timeline create" and "timeline import"
commands, which allowed you to pass the timeline id as argument. This
also makes it unnecessary to parse the timeline ID from the output in
the python function that calls it.
2024-09-12 01:28:56 +03:00
Heikki Linnakangas
aeca15008c Remove obsolete and misleading comment
The tenant ID was not actually generated here but in NeonEnvBuilder.
And the "neon_local init" command hasn't been able to generate the
initial tenant since 8712e1899e anyway.
2024-09-12 01:28:56 +03:00
Heikki Linnakangas
43846b72fa Remove unused "neon_local init --pg-version" arg
It has been unused since commit 8712e1899e, when it stopped creating
the initial timeline.
2024-09-12 01:28:56 +03:00
John Spray
cb060548fb libs: tweak PageserverUtilization::is_overloaded (#8946)
## Problem

Having run in production for a while, we see that nodes are generally
safely oversubscribed by about a factor of 2.

## Summary of changes

Tweak the is_overloaded method to check for utililzation over 200%
rather than over 100%
2024-09-11 18:45:34 +01:00
Folke Behrens
bae793ffcd proxy: Handle all let underscore instances (#8898)
* Most can be simply replaced
* One instance renamed to _rtchk (return-type check)
2024-09-10 15:36:08 +02:00
John Spray
26b5fcdc50 reinstate write-path key check (#8973)
## Problem

In https://github.com/neondatabase/neon/pull/8621, validation of keys
during ingest was removed because the places where we actually store
keys are now past the point where we have already converted them to
CompactKey (i128) representation.

## Summary of changes

Reinstate validation at an earlier stage in ingest. This doesn't cover
literally every place we write a key, but it covers most cases where
we're trusting postgres to give us a valid key (i.e. one that doesn't
try and use a custom spacenode).
2024-09-10 12:54:25 +01:00
Arpad Müller
97582178cb Remove async_trait from the Handler trait (#8958)
Newest attempt to remove `async_trait` from the Handler trait.

Earlier attempts were in #7301 and #8296 .
2024-09-10 02:40:00 +02:00
Matthias van de Meent
842be0ba74 Specialize WalIngest on PostgreSQL version (#8904)
The current code assumes that most of this functionality is
version-independent, which is only true up to v16 - PostgreSQL 17 has a
new field in CheckPoint that we need to keep track of.

This basically removes the file-level dependency on v14, and replaces it
with switches that load the correct version dependencies where required.
2024-09-09 23:01:52 +01:00
Heikki Linnakangas
982b376ea2 Update parquet crate to a released version (#8961)
PR #7782 set the dependency in Cargo.toml to 'master', and locked the
version to commit that contained a specific fix, because we needed the
fix before it was included in a versioned release. The fix was later
included in parquet crate version 52.0.0, so we can now switch back to
using a released version. The latest release is 53.0.0, switch straight
to that.

---------

Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
2024-09-10 00:04:00 +03:00
Alex Chi Z.
e158df4e86 feat(pageserver): split delta writer automatically determines key range (#8850)
close https://github.com/neondatabase/neon/issues/8838

## Summary of changes

This patch modifies the split delta layer writer to avoid taking
start_key and end_key when creating/finishing the layer writer. The
start_key for the delta layers will be the first key provided to the
layer writer, and the end_key would be the `last_key.next()`. This
simplifies the delta layer writer API.

On that, the layer key hack is removed. Image layers now use the full
key range, and delta layers use the first/last key provided by the user.

---------

Signed-off-by: Alex Chi Z <chi@neon.tech>
2024-09-09 22:03:27 +01:00
Heikki Linnakangas
723c0971e8 Don't create 'empty' branch in neon_simple_env (#8965)
Now that we've given up hope on sharing the neon_simple_env between
tests, there's no reason to not use the 'main' branch directly.
2024-09-09 12:38:34 +03:00
Heikki Linnakangas
c8f67eed8f Remove TEST_SHARED_FIXTURES (#8965)
I wish it worked, but it's been broken for a long time, so let's admit
defeat and remove it.

The idea of sharing the same pageserver and safekeeper environment
between tests is still sound, and it could save a lot of time in our
CI. We should perhaps put some time into doing that, but we're better
off starting from scratch than trying to make TEST_SHARED_FIXTURES
work in its current form.
2024-09-09 12:38:34 +03:00
Heikki Linnakangas
2d885ac07a Update strum (#8962)
I wanted to use some features from the newer version. The PR that needed
the new version is not ready yet (and might never be), but seems nice to
stay up in any case.
2024-09-08 21:47:57 +03:00
Heikki Linnakangas
89c5e80b3f Update toml and toml_edit crates (#8963)
Eliminates a few duplicate versions from the dependency tree.
2024-09-08 21:47:23 +03:00
Heikki Linnakangas
93ec7503e0 Lock the correct revision of rust-postgres crates (#8960)
We modified the crate in an incompatible way and upgraded to the new
version in PR #8076. However, it was reverted in #8654. The revert
reverted the Cargo.lock reference to it, but since Cargo.toml still
points to the (tip of the) 'neon' branch, every time you make any other
unrelated changes to Cargo.toml, it also tries to update the
rust-postgres crates to the tip of the 'neon' branch again, which
doesn't work.

To fix, lock the crates to the exact commit SHA that works.
2024-09-07 14:11:36 +01:00
Alexander Bayandin
7d7d1f354b Fix rust warnings on macOS (#8955)
## Problem
```
error: unused import: `anyhow::Context`
 --> libs/utils/src/crashsafe.rs:8:5
  |
8 | use anyhow::Context;
  |     ^^^^^^^^^^^^^^^
  |
  = note: `-D unused-imports` implied by `-D warnings`
  = help: to override `-D warnings` add `#[allow(unused_imports)]`

error: unused variable: `fd`
   --> libs/utils/src/crashsafe.rs:209:15
    |
209 | pub fn syncfs(fd: impl AsRawFd) -> anyhow::Result<()> {
    |               ^^ help: if this is intentional, prefix it with an underscore: `_fd`
    |
    = note: `-D unused-variables` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(unused_variables)]`
```

## Summary of changes
- Fix rust warnings on macOS
2024-09-07 08:17:25 +01:00
Cihan Demirci
16c200d6d9 push images to prod ACR (#8940)
Used `vars` for new storing non-sensitive information, changed dev
secrets to vars as well but
didn't cleanup any secrets.

https://github.com/neondatabase/cloud/issues/16925

---------

Co-authored-by: Alexander Bayandin <alexander@neon.tech>
2024-09-07 00:20:36 +01:00