Patrick Insinger
3e1e934a21
use copy_split in freeze
2021-10-05 13:14:19 -07:00
Patrick Insinger
2ccc8f3e36
OrderedVec copy_prefix
2021-10-05 12:57:58 -07:00
Patrick Insinger
77722b4c9d
skip a block when larger lsn is found
2021-10-05 12:52:32 -07:00
Patrick Insinger
7ea2251f02
switch to HashMap for block indexing
2021-10-05 12:46:47 -07:00
Patrick Insinger
896a172d46
OrderedVec - copy_split for segsizes
2021-10-05 11:49:13 -07:00
Patrick Insinger
b7c3f02ed1
page versions
2021-10-05 11:20:40 -07:00
Patrick Insinger
98f58fa2ab
use for seqsizes in inmemorylayer
2021-10-05 11:18:29 -07:00
Patrick Insinger
adf4ac0ef7
range fixes
2021-10-05 11:18:29 -07:00
Patrick Insinger
9dd1393f0e
page version meta
2021-10-05 11:18:27 -07:00
Patrick Insinger
935984018d
ordered-vec and seqsizes
2021-10-05 11:14:09 -07:00
Heikki Linnakangas
d806c3a47e
pageserver - serialize PageVersion as it is
...
Removes the need for PageVersionMeta struct.
2021-10-05 11:07:50 -07:00
Egor Suvorov
05fe39088b
Readme updates based on a fresher Ubuntu installation experience ( #627 )
2021-10-05 19:19:25 +03:00
Egor Suvorov
530d3eaf09
Add more details to pageserver and safekeeper docs ( #680 )
2021-10-05 19:10:50 +03:00
Egor Suvorov
7e190d72a5
Make pageserver_ prefix for common metric names configurable ( #681 )
2021-10-05 19:06:44 +03:00
Patrick Insinger
9c936034b6
pageserver - fix newer clippy lints
2021-10-05 00:28:14 -07:00
Kirill Bulatov
5719f13cb2
Rework the relish thread model ( #689 )
2021-10-05 10:15:56 +03:00
Patrick Insinger
d134a9856e
pageserver - introduce RepoHarness for testing
2021-10-04 08:36:35 -07:00
Patrick Insinger
664b99b5ac
pageserver - use constant TIMELINE_ID for tests
2021-10-04 08:36:35 -07:00
Arseny Sher
4256231eb7
Enable test_start_compute with safekeepers.
...
It should work now.
2021-10-04 16:50:46 +03:00
Andrey Taranik
ae27490281
wal_acceptors added to tenant creation tests
2021-10-04 08:58:49 +03:00
Andrey Taranik
fbd8ca2ff4
minor code beautification
2021-10-04 08:58:49 +03:00
Andrey Taranik
ec673a5d67
bulk tenant create test added
2021-10-04 08:58:49 +03:00
Max Sharnoff
7fab38c51e
Use threadlocal for walreceiver check ( #692 )
2021-10-01 15:47:45 -07:00
Max Sharnoff
84f7dcd052
Fix clippy errors on nightly (2021-09-29) ( #691 )
...
Most of the changes are for the new if-then-panic lint added in
https://github.com/rust-lang/rust-clippy/pull/7669 .
2021-10-01 15:45:42 -07:00
Patrick Insinger
7095a5d551
pageserver - reject and backup future layer files
...
If a layer file is found with LSN after the disk_consistent_lsn, it is
renamed (to avoid conflicts with new layer files) and a warning is logged.
2021-10-01 11:41:39 -07:00
Patrick Insinger
538c2a2a3e
pageserver - store timeline metadata durably
...
The metadata file is now always 512 bytes. The last 4 bytes are a
crc32c checksum of the previous 508 bytes. Padding zeroes are added
between the serde serialization and the start of the checksum.
A single write call is used, and the file is fsyncd after.
On file creation, the parent directory is fsyncd as well.
2021-10-01 11:41:39 -07:00
Patrick Insinger
62f83869f1
pageserver - fsync image/delta layers
...
Ensure image and delta layer files are durable.
Also, fsync the parent directory to ensure the directory entries are
durable.
2021-10-01 11:41:39 -07:00
Patrick Insinger
69670b61c4
pageserver - use crashsafe_dir utility
...
Replace usage of std::fs::create_dir/create_dir_all with crashsafe
equivalents.
2021-10-01 11:41:39 -07:00
Patrick Insinger
0a8aaa2c24
zenith_utils - add crashsafe_dir
...
Utility for creating directories and directory trees in a crash safe
manor.
Minimizes calls to fsync for trees.
2021-10-01 11:41:39 -07:00
Heikki Linnakangas
e474790400
Print more details on errors to log
...
Fixes https://github.com/zenithdb/zenith/issues/661
2021-10-01 17:57:41 +03:00
Alexey Kondratov
2c99e2461a
Allow usage of the compute hostname in the proxy
2021-10-01 16:24:35 +03:00
Stas Kelvich
cf8e27a554
Proxy: pass database name in console too
2021-10-01 14:27:52 +03:00
Kirill Bulatov
287ea2e5e3
Limit concurrent relish storage sync operations
2021-10-01 08:37:09 +03:00
Heikki Linnakangas
86e14f2f1a
Bump vendor/postgres
2021-09-30 20:36:57 +03:00
Arseny Sher
adbae62281
Rename SharedState.commit_lsn to notified_commit_lsn.
...
ref #682
2021-09-30 17:29:15 +03:00
Egor Suvorov
3127a4a13b
Safekeeper::Storage::write_wal: clarify behavior ( #679 )
...
It previously took &SafeKeeperState similar to persist(), but only for its
`server` member.
Now it takes &ServerInfo only, so there it's clear the state is not persisted.
Also added a comment about sync.
2021-09-29 19:58:30 +03:00
Egor Suvorov
6d993410c9
docs/README: fix link to walkeeper's README ( #677 )
2021-09-29 14:40:16 +03:00
Kirill Bulatov
fb05e4cb0b
Show better error messages on pageserver failures
2021-09-29 01:55:41 +03:00
Egor Suvorov
b0a7234759
pageserver: fix stale default listen addrs
...
* In command line help
* In dummy_conf
2021-09-28 20:57:51 +03:00
Egor Suvorov
ddf4b15ebc
pageserver: use const_format crate to generate default listen addrs
2021-09-28 20:57:51 +03:00
Egor Suvorov
3065532f15
pageserver: fix mistype in listen-http arg help
2021-09-28 20:57:51 +03:00
Arthur Petukhovsky
d6fc74a412
Various fixes for test_sync_safekeepers ( #668 )
...
* Send ProposerGreeting manually in tests
* Move test_sync_safekeepers to test_wal_acceptor.py
* Capture test_sync_safekeepers output
* Add comment for handle_json_ctrl
* Save captured output in CI
2021-09-28 19:25:05 +03:00
Arseny Sher
7a370394a7
Wait till previous victim recovers in run_restarts_under_load.
...
Fixes test flakiness, as recovery easily might take the whole iteration.
2021-09-28 19:15:41 +03:00
Stas Kelvich
0f3cf8ac94
Cleanup Dockerfile.
...
* make .dockerignore `ncdu -X` compatible to easily inspect build context
* remove cargo-chef as it was introducing more problems than it was solving
* remove rocksdb packages
* add ca-certs in the resulting image. We need that to be able to make https
connections from container with proxy to the console.
2021-09-28 18:26:20 +03:00
Heikki Linnakangas
014be8b230
Use Iterator, to avoid making one copy of page_versions BTreeMap
...
Reduces the CPU time spent in checkpointing, in the write_to_disk()
function.
2021-09-27 19:28:02 +03:00
Heikki Linnakangas
08978458be
Refactor write_to_disk, handling dropped segment as a special case.
...
Similar to what commit 7fb7f67b did to 'freeze', dealing with the
dropped segment separately from the rest of the logic makes the code
easier to follow. It is also needed by the next commit that replaces
the code to build new BTreeMap with an iterator; we cannot pass one
of two kinds of closures as argument, it has to always be the same one.
Having separate DeltaLayer::create() calls for the case of dropped
segment and the other cases works around that.
2021-09-27 19:23:32 +03:00
Heikki Linnakangas
2252d9faa8
Switch to RwLock in InMemoryLayer
...
Allows more parallelism basically for free.
2021-09-27 19:15:40 +03:00
Arthur Petukhovsky
22e15844ae
Fix clippy errors ( #673 )
2021-09-27 18:59:30 +03:00
Konstantin Knizhnik
ca9af37478
Do not write WAL at pageserver ( #645 )
...
* Do not write WAL at pageserver
* Remove import_timeline_wal function
2021-09-27 14:15:55 +03:00
Stas Kelvich
aae41e8661
Proxy pass for existing users.
...
Ask console to check per-cluster auth info.
2021-09-27 11:56:43 +03:00