Konstantin Knizhnik
6403f1745c
Replace rel_meta.range() with rel_meta.get()
2021-06-14 12:38:29 +03:00
Konstantin Knizhnik
6d7942ece4
Use RwLock instead of mutex for relation metadata cache
2021-06-14 12:38:29 +03:00
Konstantin Knizhnik
09b2c66cf6
Cache relation size
2021-06-14 12:38:29 +03:00
Stas Kelvich
5c70b52f4a
remove --systemid flag from wal_acceptor
2021-06-14 11:58:53 +03:00
Stas Kelvich
19602dc88a
add wal_acceptor binary in Dockerfile
2021-06-14 11:58:53 +03:00
Stas Kelvich
2b66049b21
add wal_acceptor binary to docker image
2021-06-14 11:58:53 +03:00
Stas Kelvich
c3011359ab
remove --systemid from walkeeper
2021-06-14 11:58:53 +03:00
Stas Kelvich
da117f431d
run & init from dockerfile
2021-06-14 11:58:53 +03:00
Stas Kelvich
78aad4fe3f
Show initdb stderr for unsuccessful runs
2021-06-14 11:58:53 +03:00
Heikki Linnakangas
1c5be12515
Fix compilation with Rust versions < 1.50
...
The bool::then function was added in Rust 1.50. I'm still using 1.48 on
my laptop. We haven't decided what Rust version we will require
(https://github.com/zenithdb/zenith/issues/138 ), and I'll probably need
to upgrade sooner or later, but this will do for now.
2021-06-11 10:37:25 +03:00
Dmitry Ivanov
96c7594d29
Enable some kind of gradual typing in test_runner ( #222 )
...
It's not realistic to enable full-blown type checks
within test_runner's codebase, since the amount of
warnings revealed by mypy is overwhelming.
Tests are supposed to be easy to use, so we can't
cripple everybody's workflow for the sake of imaginary benefit.
Ultimately, the purpose of this attempt is three-fold:
* Facilitate code navigation when paired with python-language-server.
* Make method signatures apparent to a fellow programmer.
* Occasionally catch some obvious type errors.
2021-06-10 22:53:15 +03:00
Eric Seppanen
7a3794ef18
tui_event: unwrap result of stdin.keys()
...
Clear a clippy warning about manual flatten.
This isn't good error handling, but panicking is probably better than
spinning forever if stdin returns EOF.
2021-06-10 12:04:52 -07:00
Stas Kelvich
bf56ea8c43
Locate postgres binary and libs for 'postgres --wal-redo'
...
based on POSTGRES_DISTRIB_DIR.
2021-06-09 20:17:27 +03:00
Dmitry Ivanov
bb1446e33a
Change behavior of ComputeControlPlane::new_node() ( #235 )
...
Previously, transaction commit could happen regardless of whether
pageserver has caught up or not. This patch aims to fix that.
There are two notable changes:
1. ComputeControlPlane::new_node() now sets the
`synchronous_standby_names = 'pageserver'` parameter to delay
transaction commit until pageserver acting as a standby has
fetched and ack'd a relevant portion of WAL.
2. pageserver now has to:
- Specify the `application_name = pageserver` which matches the
one in `synchronous_standby_names`.
- Properly reply with the ack'd LSNs.
This means that some tests don't need sleeps anymore.
TODO: We should probably make this behavior configurable.
Fixes #187 .
2021-06-09 11:24:55 +03:00
anastasia
0969574d48
Use bindgen for various xlog structures and checkpoint.
...
Implement encode/decode methods for them.
Some methods are unused now. This is a preparatory commit for nonrel_wal
2021-06-09 01:00:42 +03:00
anastasia
05a681be2c
add createuser test to test shared catalog restore
2021-06-09 00:31:09 +03:00
anastasia
507c1fbbac
bump vendor/postgres
2021-06-08 17:46:43 +03:00
Arseny Sher
b2f51026aa
Consolidate PG proto parsing-deparsing and backend code.
...
Now postgres_backend communicates with the client, passing queries to the
provided handler; we have two currently, for wal_acceptor and pageserver.
Now BytesMut is again used for writing data to avoid manual message length
calculation.
ref #118
2021-06-08 17:31:40 +03:00
anastasia
2b0193e6bf
implement from_bytes for XLogPageHeader structs
2021-06-08 13:08:57 +03:00
anastasia
c31a5e2c8f
move XLogPageHeader structs to xlog_utils
2021-06-08 13:08:57 +03:00
anastasia
d85d67a6f1
use constants defined in xlog_utils for waldecoder
2021-06-08 13:08:57 +03:00
anastasia
9b8e82c6cf
Fix makefile for out-of-tree compiling of contrib/zenith
2021-06-07 19:24:20 +03:00
Heikki Linnakangas
434374ebb4
Turn encode/decode into methods
...
Like in PR #208
2021-06-04 23:05:30 +03:00
Heikki Linnakangas
a7ae552851
Use rust memoffset crate to replace C offsetof().
...
Cherry-picked from Eric's PR #208
2021-06-04 23:05:28 +03:00
Heikki Linnakangas
8b5a061c8e
Add comments on the unsafe use of transmute in encode/decode_pg_control
...
Note the unsafety of the unsafe block, with a link to the ongoing
discussion. This doesn't try to solve the problem, but let's at least
document the status quo.
2021-06-04 23:05:26 +03:00
Heikki Linnakangas
8147aa7e93
Use u8 slice instead of Bytes in function argument.
...
Bytes is handy, but in decode_pg_control's case it's just complicating
things. Also, pass ControlFileData by ref to encode_pg_control().
2021-06-04 23:05:20 +03:00
Heikki Linnakangas
d18cc8a3a8
Update 'postgres_ffi' module's readme file and comments.
...
Explain the purpose of of the 'postgres_ffi' module, explain what the
PostgreSQL control file is, and some other minor cleanup.
2021-06-04 23:05:11 +03:00
Heikki Linnakangas
762e9859d6
Move functions for reading/writing control file to separate source file.
...
To follow the precedent of xlog_utils.rs and relfile_utils.rs.
2021-06-04 23:05:05 +03:00
Heikki Linnakangas
924261f7db
Remove unused ControlFile::new() constructor.
...
It has never been used, AFAICS.
2021-06-04 23:05:02 +03:00
Konstantin Knizhnik
063429aade
Implement GC for new object_store API ( #229 )
...
* Implement GC for new object_store API
* Add comments for GC
* Revert postgres module version reference
2021-06-04 20:11:56 +03:00
anastasia
445e88f50b
Minor fix: preserve log of regression tests in circleci
2021-06-03 15:54:59 +03:00
Patrick Insinger
47694ea4f5
zenith push
2021-06-02 17:20:49 -04:00
Patrick Insinger
3364a8d442
pageserver - timeline history api
2021-06-02 16:20:26 -04:00
Dmitry Ivanov
f2243d7459
Merge pull request #219 from zenithdb/tidy-up-tests
...
Tidy up pytest-based tests
2021-06-01 22:06:13 +03:00
Dmitry Ivanov
244fcffc50
Fix typos found by codespell
2021-06-01 21:43:26 +03:00
Dmitry Ivanov
8c3c9c3394
Update README.md
2021-06-01 21:31:29 +03:00
Dmitry Ivanov
00ce635da9
Reformat tests using yapf
2021-06-01 21:09:09 +03:00
Dmitry Ivanov
7d5f7462c1
Tidy up pytest-based tests
2021-06-01 21:09:09 +03:00
Alexey Kondratov
bed75f800f
Bump vendor/postgres to use rebased on top of REL_14_BETA1 version
2021-06-01 20:04:22 +03:00
anastasia
0e423d481e
Update rustdoc comments and README for pageserver crate
2021-06-01 19:38:42 +03:00
anastasia
0c74f6fa4e
Update README about source tree layout
2021-06-01 19:38:42 +03:00
Heikki Linnakangas
fc01fae9b4
Remove leftover references to safekeeper_proxy.
...
We don't use it anymore. The WAL proposer is now a background worker that
runs as part of the primary Postgres server.
2021-06-01 18:50:24 +03:00
Heikki Linnakangas
558a2214bc
Fix comment
2021-06-01 18:28:01 +03:00
Heikki Linnakangas
31815bccc0
Remove obsolete script.
...
It was used to launch the page server a long time ago. Doesn't work,
and isn't needed anymore.
2021-06-01 18:27:54 +03:00
Stas Kelvich
e12cab7c17
fix dockerfile comments
2021-06-01 17:07:10 +03:00
Stas Kelvich
002cd8ed5b
Dockerfile for pageserver.
2021-06-01 16:08:32 +03:00
Stas Kelvich
588a030803
Clean up control_plane's Cargo.toml
2021-06-01 16:08:32 +03:00
Stas Kelvich
0b9bbdc4ec
Remove libxml2 and curl from postgres dependencies.
...
As lazyrestore was removed from our postgres main branch.
2021-06-01 16:08:32 +03:00
Heikki Linnakangas
922715a923
Use Timeline::get_last_record_lsn() to find end-of-WAL.
...
That's less hacky than scanning the WAL directory.
2021-06-01 09:37:54 +03:00
Heikki Linnakangas
ac60b68d50
Handle VM and FSM truncation WAL records in the page server.
...
Fixes issue #190 .
Original patch by Konstantin Knizhnik.
2021-05-31 23:36:17 +03:00