KlimentSerafimov
d059e588a6
Added invariant check for project name. ( #1921 )
...
Summary: Added invariant checking for project name. Refactored ClientCredentials and TlsConfig.
* Added formatting invariant check for project name:
**\forall c \in project_name . c \in [alnum] U {'-'}.
** sni_data == <project_name>.<common_name>
* Added exhaustive tests for get_project_name.
* Refactored TlsConfig to contain common_name : Option<String>.
* Refactored ClientCredentials construction to construct project_name directly.
* Merged ProjectNameError into ClientCredsParseError.
* Tweaked proxy tests to accommodate refactored ClientCredentials construction semantics.
* [Pytests] Added project option argument to test_proxy_select_1.
* Removed project param from Api since now it's contained in creds.
* Refactored &Option<String> -> Option<&str>.
Co-authored-by: Dmitrii Ivanov <dima@neon.tech >.
2022-06-22 09:34:24 -04:00
Sergey Melnikov
6222a0012b
Migrate from CircleCI to Github Actions: python codestyle, build and tests ( #1647 )
...
Duplicate postgres and neon build and test jobs from CircleCI to Github actions.
2022-06-22 11:40:59 +03:00
bojanserafimov
1ca28e6f3c
Import basebackup into pageserver ( #1925 )
...
Allow importing basebackup taken from vanilla postgres or another pageserver via psql copy in protocol.
2022-06-21 11:04:10 -04:00
Arthur Petukhovsky
6c4d6a2183
Remove timeline_start_lsn check temporary. ( #1964 )
2022-06-21 02:02:24 +03:00
Thang Pham
37465dafe3
Add wal backpressure tests ( #1919 )
...
Resolves #1889 .
This PR adds new tests to measure the WAL backpressure's performance under different workloads.
## Changes
- add new performance tests in `test_wal_backpressure.py`
- allow safekeeper's fsync to be configurable when running tests
2022-06-20 11:40:55 -04:00
Joshua D. Drake
ec0064c442
Small README.md changes ( #1957 )
...
* Update make instructions for release and debug build. Update PostgreSQL glossary to proper version (14)
* Continued cleanup of build instructions including removal of redundancies
2022-06-20 10:05:10 -04:00
Heikki Linnakangas
83c7e6ce52
Bump vendor/postgres.
...
This brings in the change to not use a shared memory in the WAL redo
process, to avoid running out of sysv shmem segments in the page server.
Also, removal of callmemaybe bits.
2022-06-20 15:28:43 +03:00
Arthur Petukhovsky
f862373ac0
Fix WAL timeout in test_s3_wal_replay ( #1953 )
2022-06-17 20:43:54 +03:00
Arthur Petukhovsky
699f46cd84
Download WAL from S3 if it's not available in safekeeper dir ( #1932 )
...
`send_wal.rs` and `WalReader` are now async. `test_s3_wal_replay` checks that WAL can be replayed after offloaded.
2022-06-17 15:33:39 +03:00
Anastasia Lubennikova
36ee182d26
Implement page servise 'fullbackup' endpoint ( #1923 )
...
* Implement page servise 'fullbackup' endpoint that works like basebackup, but also sends relational files
* Add test_runner/batch_others/test_fullbackup.py
Co-authored-by: bojanserafimov <bojan.serafimov7@gmail.com >
2022-06-16 14:07:11 +03:00
Anastasia Lubennikova
d11c9f9fcb
Use random ports for the proxy and local pg in tests
...
Fixes #1931
Author: Dmitry Ivanov
2022-06-15 20:21:58 +03:00
Kirill Bulatov
d8a37452c8
Rename ZenithFeedback ( #1912 )
2022-06-11 00:44:05 +03:00
chaitanya sharma
e1336f451d
renamed .zenith data-dir to .neon.
2022-06-09 18:19:18 +02:00
Arseny Sher
a4d8261390
Save Postgres log in test_find_end_of_wal_* tests.
2022-06-09 19:16:43 +04:00
Egor Suvorov
e2a5a31595
Safekeeper HTTP router: add comment about /v1/timeline
2022-06-09 17:14:46 +02:00
Egor Suvorov
0ac0fba77a
test_runner: test Safekeeper HTTP API Auth
...
All endpoints except for POST /v1/timeline are tested, this one is not tested in any way yet.
Three attempts for each endpoint: correctly authenticated, badly authenticated, unauthenticated.
2022-06-09 17:14:46 +02:00
Egor Suvorov
a001052cdd
test_runner: SafekeeperHttpClient: support auth
2022-06-09 17:14:46 +02:00
Egor Suvorov
1f1d852204
ZenithEnvBuilder: rename pageserver_auth_enabled --> auth_enabled
2022-06-09 17:14:46 +02:00
Egor Suvorov
f7b878611a
Implement JWT authentication in Safekeeper HTTP API ( #1753 )
...
* `control_plane` crate (used by `neon_local`) now parses an `auth_enabled` bool for each Safekeeper
* If auth is enabled, a Safekeeper is passed a path to a public key via a new command line argument
* Added TODO comments to other places needing auth
2022-06-09 17:14:46 +02:00
Arseny Sher
a51b2dac9a
Don't s3 offload from newly joined safekeeper not having required WAL.
...
I made the check at launcher level with the perspective of generally moving
election (decision who offloads) there.
Also log timeline 'active' changes.
2022-06-09 18:30:16 +04:00
Thang Pham
e22d9cee3a
fix ZeroDivisionError in scripts/generate_perf_report_page ( #1906 )
...
Fixes the `ZeroDivisionError` error by adding `EPS=1e-6` when doing the calculation.
2022-06-08 09:15:12 -04:00
Arthur Petukhovsky
a01999bc4a
Replace most common remote logs with metrics ( #1909 )
2022-06-08 13:36:49 +03:00
chaitanya sharma
32e64afd54
Use better parallel build instructions in readme.md ( #1908 )
2022-06-08 11:25:37 +03:00
Kirill Bulatov
8a53472e4f
Force etcd broker keys to not to intersect
2022-06-08 11:21:05 +03:00
Dmitry Rodionov
6e26588d17
Allow to customize shutdown condition in PostgresBackend
...
Use it in PageServerHandler to check per thread shutdown condition
from thread_mgr which takes into account tenants and timelines
2022-06-07 22:11:54 +03:00
Arseny Sher
0b93253b3c
Fix leaked keepalive task in s3 offloading leader election.
...
I still don't like the surroundings and feel we'd better get away without using
election API at all, but this is a quick fix to keep CI green.
ref #1815
2022-06-07 15:17:57 +04:00
Dmitry Rodionov
7dc6beacbd
make it possible to associate thread with a tenant after thread start
2022-06-07 12:59:35 +03:00
Thang Pham
6cfebc096f
Add read/write throughput performance tests ( #1883 )
...
Part of #1467
This PR adds several performance tests that compare the [PG statistics](https://www.postgresql.org/docs/current/monitoring-stats.html ) obtained when running PG benchmarks against Neon and vanilla PG to measure the read/write throughput of the DB.
2022-06-06 12:32:10 -04:00
KlimentSerafimov
fecad1ca34
Resolving issue #1745 . Added cluster option for SNI data ( #1813 )
...
* Added project option in case SNI data is missing. Resolving issue #1745 .
* Added invariant checking for project name: if both sni_data and project_name are available then they should match.
2022-06-06 08:14:41 -04:00
bojanserafimov
92de8423af
Remove dead code ( #1886 )
2022-06-05 09:18:11 -04:00
Dmitry Rodionov
e442f5357b
unify two identical failpoints in flush_frozen_layer
...
probably is a merge artfact
2022-06-03 19:36:09 +03:00
Arseny Sher
5a723d44cd
Parametrize test_normal_work.
...
I like to run small test locally, but let's avoid duplication.
2022-06-03 20:32:53 +04:00
Kirill Bulatov
2623193876
Remove pageserver_connstr from WAL stream logic
2022-06-03 17:30:36 +03:00
Arseny Sher
70a53c4b03
Get backup test_safekeeper_normal_work, but skip by default.
...
It is handy for development.
2022-06-03 16:12:14 +04:00
Arseny Sher
9e108102b3
Silence etcd safekeeper info key parse errors.
...
When we subscribe to everything, it is ok to receive not only safekeeper
timeline updates.
2022-06-03 16:12:14 +04:00
huming
9c846a93e8
chore(doc)
2022-06-03 14:24:27 +03:00
Kirill Bulatov
c5007d3916
Remove unused module
2022-06-03 00:23:13 +03:00
Kirill Bulatov
5b06599770
Simplify etcd key regex parsing
2022-06-03 00:23:13 +03:00
Kirill Bulatov
1d16ee92d4
Fix the Lsn difference reconnection
2022-06-03 00:23:13 +03:00
Kirill Bulatov
7933804284
Fix and test regex parsing
2022-06-03 00:23:13 +03:00
Kirill Bulatov
a91e0c299d
Reproduce etcd parsing bug in Python tests
2022-06-03 00:23:13 +03:00
Kirill Bulatov
b0c4ec0594
Log storage sync and etcd events a bit better
2022-06-03 00:23:13 +03:00
bojanserafimov
90e2c9ee1f
Rename zenith to neon in python tests ( #1871 )
2022-06-02 16:21:28 -04:00
Egor Suvorov
aba5e5f8b5
GitHub Actions: pin Rust version to 1.58 like on CircleCI
...
* Fix failing `cargo clippy` while we're here.
The behavior has been changed in Rust 1.60: https://github.com/rust-lang/rust-clippy/issues/8928
* Add Rust version to the Cargo deps cache key
2022-06-02 17:45:53 +02:00
Dmitry Rodionov
b155fe0e2f
avoid perf test result context for pg regress
2022-06-02 17:41:34 +03:00
Ryan Russell
c71faae2c6
Docs readability cont
...
Signed-off-by: Ryan Russell <git@ryanrussell.org >
2022-06-02 15:05:12 +02:00
Kirill Bulatov
de7eda2dc6
Fix url path printing
2022-06-02 00:48:10 +03:00
Dmitry Rodionov
1188c9a95c
remove extra span as this code is already covered by create timeline span
...
E g this log line contains duplicated data:
INFO /timeline_create{tenant=8d367870988250a755101b5189bbbc17
new_timeline=Some(27e2580f51f5660642d8ce124e9ee4ac) lsn=None}:
bootstrapping{timeline=27e2580f51f5660642d8ce124e9ee4ac
tenant=8d367870988250a755101b5189bbbc17}:
created root timeline 27e2580f51f5660642d8ce124e9ee4ac
timeline.lsn 0/16960E8
this avoids variable duplication in `bootstrapping` subspan
2022-06-01 19:29:17 +03:00
Kirill Bulatov
e5cb727572
Replace callmemaybe with etcd subscriptions on safekeeper timeline info
2022-06-01 16:07:04 +03:00
Dmitry Rodionov
6623c5b9d5
add installation instructions for Fedora Linux
2022-06-01 15:59:53 +03:00