Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce background stale AppendVec shrink mechanism #9219

Merged
merged 13 commits into from
Apr 6, 2020

Conversation

ryoqun
Copy link
Member

@ryoqun ryoqun commented Apr 1, 2020

Problem

The cluster is still vulnerable account storage exhaustion attack.

This time, the attack scenario is that create-and-forget-style accounts.
Even if we keep only single (stale) account data (136 Byte) for a slot, we consume 4,194,304 Byte; that's totally waste.
This significantly increases snapshot processing time. Especially, much is wasted for index reconstruction at loading.
That's because other than that single stale account, there are usually bunch of outdated account data in the slot/AppendVec and we must conclude that those are actually not used by computation of whole data set.

As an observation of this, the current state of devnet is like this. There are so many appendvec (60000+), which contain a few accounts (~10).

Summary of Changes

Based on index aliveness information, periodically shrink slots by reading up alive accounts and flush them into new appropriately-fit appendVec.
So, from the AccountDB's view, there is no difference of access pattern between Banks and this background shrinker.

Remarks

Surprisingly, AccountsDB design is so flexible and well-coded. To implement that feature, we only needed to add new code. All of its foundation is already just existing! :)

Fixes #9196

@ryoqun ryoqun added work in progress This isn't quite right yet noCI Suppress CI on this Pull Request v1.1 labels Apr 1, 2020
@ryoqun ryoqun requested a review from sakridge April 1, 2020 12:06
@sakridge
Copy link
Member

sakridge commented Apr 1, 2020

Cool. I thought we might need something like this.

runtime/src/accounts_db.rs Outdated Show resolved Hide resolved
ledger-tool/src/main.rs Outdated Show resolved Hide resolved
@ryoqun
Copy link
Member Author

ryoqun commented Apr 1, 2020

@sakridge @mvines

Howa! Super exciting result... :)

30min => 30sec (60x speedup!) on same machine!

Before:

$ ls -hl aaa/snapshot-2370305-427uj8wM838ZkVSMXmj9bJVmH3v9SRWeyZqZop9fnEBj.tar.bz2 
-rw-rw-r-- 1 ubuntu ubuntu 1.4G Apr  1 12:31 aaa/snapshot-2370305-427uj8wM838ZkVSMXmj9bJVmH3v9SRWeyZqZop9fnEBj.tar.bz2

$ ../../target/release/solana-ledger-tool --ledger aaa/ verify
HzyuivuNXMHJKjM6q6BE2qBsR3etqW21BSvuJTpJFj9A
[2020-04-01T03:31:50.462526157Z INFO  solana_ledger::blockstore] Maximum open file descriptors: 65000
[2020-04-01T03:31:50.656196526Z INFO  solana_ledger::blockstore] "/home/ubuntu/solana-git/data/devnet/aaa/rocksdb" open took 193ms
[2020-04-01T03:31:50.656503203Z INFO  solana_ledger::bank_forks_utils] Initializing snapshot path: "/home/ubuntu/solana-git/data/devnet/aaa/snapshot"
[2020-04-01T03:31:50.664349938Z INFO  solana_ledger::bank_forks_utils] Loading snapshot package: "/home/ubuntu/solana-git/data/devnet/aaa/snapshot-2370305-427uj8wM838ZkVSMXmj9bJVmH3v9SRWeyZqZop9fnEBj.tar.bz2"
[2020-04-01T03:38:09.662666772Z INFO  solana_ledger::snapshot_utils] snapshot untar took 379.0s
[2020-04-01T03:38:09.663310445Z INFO  solana_ledger::snapshot_utils] snapshot version: 1.1.0
[2020-04-01T03:38:09.663464681Z INFO  solana_ledger::snapshot_utils] Loading bank from "/home/ubuntu/solana-git/data/devnet/aaa/snapshot/.tmpOZkfqZ/snapshots/2370305/2370305"
[2020-04-01T03:38:09.747707612Z INFO  solana_ledger::snapshot_utils] Rebuilding accounts...
[2020-04-01T03:48:47.982082185Z INFO  solana_ledger::snapshot_utils] Rebuilding status cache...
[2020-04-01T03:48:47.984962648Z INFO  solana_ledger::snapshot_utils] Loaded bank for slot: 2370305
[2020-04-01T03:48:47.986661697Z INFO  solana_runtime::accounts_db] total_stores: 63485, newest_slot: 2370305, oldest_slot: 0, max_slot: 2261847 (num=9), min_slot: 2282647 (num=1)
[2020-04-01T03:48:48.043859433Z INFO  solana_metrics::metrics] metrics disabled: SOLANA_METRICS_CONFIG: environment variable not found
[2020-04-01T03:48:48.044950954Z INFO  solana_metrics::metrics] datapoint: accounts_db-stores total_count=63485i
[2020-04-01T03:48:49.032894572Z INFO  solana_runtime::accounts_db] scan took 331us merge took 268ns accumulate took 74us
[2020-04-01T03:48:49.032947329Z INFO  solana_runtime::bank] bank frozen: 2370305 hash: E9BoGvpsT3GpGNK2hFUuMy75sURg1huEFPEhCLCZQnow accounts_delta: 5R79LHSZLjgwThzp9SHkS376HZtQpnuPHCdah3c2VjHq signature_count: 2 last_blockhash: B6ifjTdvoneekGV7WNf9tihgka1EmnHWQYyuFmn1z9uv
[2020-04-01T03:48:49.032970401Z INFO  solana_runtime::bank] accounts hash slot: 2370305 stats: BankHashStats { num_removed_accounts: 10, num_added_accounts: 0, num_lamports_stored: 3826912914292387, total_data_len: 165103, num_executable_accounts: 0 }
[2020-04-01T03:48:49.033130186Z INFO  solana_ledger::snapshot_utils] bank rebuild from snapshot took 639.4s
[2020-04-01T03:48:49.036482638Z INFO  solana_ledger::blockstore_processor] processing ledger from slot 2370305...
[2020-04-01T03:48:49.053053081Z INFO  solana_ledger::blockstore_processor] ledger processed in 15ms. 1 MB allocated. 1 fork at 2370305, with 1 frozen bank
Ok


After (passed through ledger-tool create-snapshot)

$ ls -hl newnew/snapshot-2370305-427uj8wM838ZkVSMXmj9bJVmH3v9SRWeyZqZop9fnEBj.tar.bz2 
-rw-rw-r-- 1 ubuntu ubuntu 28M Apr  1 22:55 newnew/snapshot-2370305-427uj8wM838ZkVSMXmj9bJVmH3v9SRWeyZqZop9fnEBj.tar.bz2

$ ../../target/release/solana-ledger-tool --ledger newnew verify 
HzyuivuNXMHJKjM6q6BE2qBsR3etqW21BSvuJTpJFj9A
[2020-04-01T15:06:16.069683039Z INFO  solana_ledger::blockstore] Maximum open file descriptors: 65000
[2020-04-01T15:06:16.240198128Z INFO  solana_ledger::blockstore] "/home/ubuntu/solana-git/data/solana-git/data/devnet/newnew/rocksdb" open took 170ms
[2020-04-01T15:06:16.240262519Z INFO  solana_ledger::bank_forks_utils] Initializing snapshot path: "/home/ubuntu/solana-git/data/solana-git/data/devnet/newnew/snapshot"
[2020-04-01T15:06:16.241496012Z INFO  solana_ledger::bank_forks_utils] Loading snapshot package: "/home/ubuntu/solana-git/data/solana-git/data/devnet/newnew/snapshot-2370305-427uj8wM838ZkVSMXmj9bJVmH3v9SRWeyZqZop9fnEBj.tar.bz2"
[2020-04-01T15:06:39.877122270Z INFO  solana_ledger::snapshot_utils] snapshot untar took 23.6s
[2020-04-01T15:06:39.877776459Z INFO  solana_ledger::snapshot_utils] snapshot version: 1.1.0
[2020-04-01T15:06:39.877837585Z INFO  solana_ledger::snapshot_utils] Loading bank from "/home/ubuntu/solana-git/data/solana-git/data/devnet/newnew/snapshot/.tmplPJmiu/snapshots/2370305/2370305"
[2020-04-01T15:06:39.880381763Z INFO  solana_ledger::snapshot_utils] Rebuilding accounts...
[2020-04-01T15:06:47.349025503Z INFO  solana_ledger::snapshot_utils] Rebuilding status cache...
[2020-04-01T15:06:47.350857281Z INFO  solana_ledger::snapshot_utils] Loaded bank for slot: 2370305
[2020-04-01T15:06:47.352137675Z INFO  solana_runtime::accounts_db] total_stores: 59180, newest_slot: 2370305, oldest_slot: 0, max_slot: 2369872 (num=3), min_slot: 2300061 (num=1)
[2020-04-01T15:06:47.352186432Z INFO  solana_metrics::metrics] metrics disabled: SOLANA_METRICS_CONFIG: environment variable not found
[2020-04-01T15:06:47.352442461Z INFO  solana_metrics::metrics] datapoint: accounts_db-stores total_count=59180i
[2020-04-01T15:06:47.730004515Z INFO  solana_runtime::accounts_db] scan took 174us merge took 949ns accumulate took 36us
[2020-04-01T15:06:47.730069886Z INFO  solana_runtime::bank] bank frozen: 2370305 hash: E9BoGvpsT3GpGNK2hFUuMy75sURg1huEFPEhCLCZQnow accounts_delta: 5R79LHSZLjgwThzp9SHkS376HZtQpnuPHCdah3c2VjHq signature_count: 2 last_blockhash: B6ifjTdvoneekGV7WNf9tihgka1EmnHWQYyuFmn1z9uv
[2020-04-01T15:06:47.730095727Z INFO  solana_runtime::bank] accounts hash slot: 2370305 stats: BankHashStats { num_removed_accounts: 10, num_added_accounts: 0, num_lamports_stored: 3826912914292387, total_data_len: 165103, num_executable_accounts: 0 }
[2020-04-01T15:06:47.730111674Z INFO  solana_ledger::snapshot_utils] bank rebuild from snapshot took 7.9s
[2020-04-01T15:06:47.759776403Z INFO  solana_ledger::blockstore_processor] processing ledger from slot 2370305...
[2020-04-01T15:06:47.761628273Z INFO  solana_ledger::blockstore_processor] ledger processed in 1ms. 1 MB allocated. 1 fork at 2370305, with 1 frozen bank
Ok

@ryoqun ryoqun removed the noCI Suppress CI on this Pull Request label Apr 2, 2020
@mvines
Copy link
Member

mvines commented Apr 2, 2020

devnet snapshots are now too big to even load:

[2020-04-02T17:06:01.931593049Z ERROR solana_metrics::metrics] datapoint: panic program="validator" thread="main" one=1i message="panicked at 'Load from snapshot failed: UnpackError(Archive(\"too large snapshot: 536875106304\"))', ledger/src/bank_forks_utils.rs:67:41" location="ledger/src/bank_forks_utils.rs:67:41"

@codecov
Copy link

codecov bot commented Apr 3, 2020

Codecov Report

Merging #9219 into master will increase coverage by 0.1%.
The diff coverage is 98.0%.

@@           Coverage Diff            @@
##           master   #9219     +/-   ##
========================================
+ Coverage    80.9%   81.1%   +0.1%     
========================================
  Files         276     276             
  Lines       60970   61188    +218     
========================================
+ Hits        49346   49632    +286     
+ Misses      11624   11556     -68     

@ryoqun ryoqun changed the title [wip] Introduce background stale AppendVec shrink mechanism Introduce background stale AppendVec shrink mechanism Apr 3, 2020
@ryoqun ryoqun removed the work in progress This isn't quite right yet label Apr 3, 2020
@ryoqun ryoqun requested a review from sakridge April 3, 2020 11:58
@ryoqun
Copy link
Member Author

ryoqun commented Apr 3, 2020

@sakridge I think this pr is ready for serious code review! :)

@ryoqun ryoqun marked this pull request as ready for review April 3, 2020 12:21
@ryoqun
Copy link
Member Author

ryoqun commented Apr 3, 2020

CI is unstable...

@@ -1959,6 +1959,7 @@ impl Bank {
/// calculation and could shield other real accounts.
pub fn verify_snapshot_bank(&self) -> bool {
self.clean_accounts();
self.shrink_all_stale_slots();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the performance of this?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be honest, I haven't measured it still, although I know this shrinking operation isn't trivial operation. I prioritized to land this for the poor devnet bullied by the break...

My general analysis (heh, not validated by measurements) are like this:

In both following cases, I think these performance cost is justifiable to avoid the DOS this PR is trying to address.

the snapshot codepath (as you commented here): Given innocent snapshots, the shrinking process is basically no-op because almost all slots should be shrunken by the snapshot-producing validator already. The no-op means exactly that we're bailing out rather early, after a new full-scan of all AppendVecs collectively. There should be no lock contention pressure because we're only user of AccountsDB at the time of snapshot load (=verification).

Given malicious snapshots, this adds linear time increase to reject them, ultimately bounded by MAX_SNAPSHOT_ARCHIVE_UNPACKED_SIZE. (By the way, I noticed generate_index is quadratic in that regard while working on this. but this is a different issue...)

the non-snapshot codepath (as an additional remark): As validator continuously do this at the rate of 1 slot/100ms cycling all alive slots, it should be rather rare to do actual shrinking. So this is like the snapshot code path for indivisual slots. Even if it did, that slot is rooted (no other writer) and the shrunken slot is old by definition there should be no lock contention.

Ultimately, this PR introduces 1 read of account data, amortized no read lock by batching under normal/healthy operation.

As a knob for performance tuning, we have this magic number to reduce the count of written accounts.

Also, we could make the before-bail-out cost even cheaper by maintaining the all account count in append vec.

Anyway, I'm landing this after my last-minute local testing as this is prioritized to land as i said and I think you're aware. :)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sakridge ^^ Enjoy you reading :) (oops, I've just forgot to mention.)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks

runtime/src/accounts_db.rs Outdated Show resolved Hide resolved
runtime/src/accounts_db.rs Outdated Show resolved Hide resolved
runtime/src/accounts_db.rs Outdated Show resolved Hide resolved
runtime/src/accounts_db.rs Outdated Show resolved Hide resolved
sakridge
sakridge previously approved these changes Apr 3, 2020
Copy link
Member

@sakridge sakridge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems good to me, just some minor things and question of performance that we can address later if you feel comfortable merging now @ryoqun

runtime/src/accounts_db.rs Outdated Show resolved Hide resolved
@mergify mergify bot dismissed sakridge’s stale review April 3, 2020 16:46

Pull request has been modified.

@ryoqun
Copy link
Member Author

ryoqun commented Apr 4, 2020

I've tested against TdS:

$ ls -l verify/
total 1456
-rw-r--r-- 1 ubuntu ubuntu  188024 Apr  4 02:47 genesis.bin
-rw-rw-r-- 1 ubuntu ubuntu 1300718 Apr  4 02:47 snapshot-6837698-DQF8qGgZEWSwf6sMLt1SJs7yuDJseVJf5MWmbdfDHFj1.tar.bz2
$ ../../target/release/solana-ledger-tool --ledger verify verify
4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY
[2020-04-04T02:47:30.325130200Z INFO  solana_ledger::blockstore] Maximum open file descriptors: 65000
[2020-04-04T02:47:30.555525020Z INFO  solana_ledger::blockstore] "/home/ubuntu/solana-git/data/solana-git/data/tds/verify/rocksdb" open took 230ms
[2020-04-04T02:47:30.555763365Z INFO  solana_ledger::bank_forks_utils] Initializing snapshot path: "/home/ubuntu/solana-git/data/solana-git/data/tds/verify/snapshot"
[2020-04-04T02:47:30.558851379Z INFO  solana_ledger::bank_forks_utils] Loading snapshot package: "/home/ubuntu/solana-git/data/solana-git/data/tds/verify/snapshot-6837698-DQF8qGgZEWSwf6sMLt1SJs7yuDJseVJf5MWmbdfDHFj1.tar.bz2"
[2020-04-04T02:47:31.255008518Z INFO  solana_ledger::snapshot_utils] snapshot untar took 695ms
[2020-04-04T02:47:31.255302153Z INFO  solana_ledger::snapshot_utils] snapshot version: 1.1.0
[2020-04-04T02:47:31.255359566Z INFO  solana_ledger::snapshot_utils] Loading bank from "/home/ubuntu/solana-git/data/solana-git/data/tds/verify/snapshot/.tmpRinv9G/snapshots/6837698/6837698"
[2020-04-04T02:47:31.265369244Z INFO  solana_ledger::snapshot_utils] Rebuilding accounts...
[2020-04-04T02:47:31.336619583Z INFO  solana_ledger::snapshot_utils] Rebuilding status cache...
[2020-04-04T02:47:31.375300807Z INFO  solana_ledger::snapshot_utils] Loaded bank for slot: 6837698
[2020-04-04T02:47:31.375636941Z INFO  solana_runtime::accounts_db] total_stores: 532, newest_slot: 6837698, oldest_slot: 0, max_slot: 0 (num=5), min_slot: 6818988 (num=1)
[2020-04-04T02:47:31.375881777Z INFO  solana_metrics::metrics] metrics disabled: SOLANA_METRICS_CONFIG: environment variable not found
[2020-04-04T02:47:31.376270626Z INFO  solana_metrics::metrics] datapoint: accounts_db-stores total_count=532i
[2020-04-04T02:47:31.390816975Z INFO  solana_runtime::accounts_db] scan took 342us merge took 56us accumulate took 179us
[2020-04-04T02:47:31.390985296Z INFO  solana_runtime::bank] bank frozen: 6837698 hash: 4Y63868EU67Gqpquuahfg73gKr4c9C9Q8erWwvKQ9pQH accounts_delta: FKRbdUzyjmdaqyFtyc9qWjmfH9VVYc2DLrL6QmLhxXHJ signature_count: 108 last_blockhash: 993XEfQSPwG7BtfEaBgLxR48parP7ozwQHiyjep98No3
[2020-04-04T02:47:31.391011254Z INFO  solana_runtime::bank] accounts hash slot: 6837698 stats: BankHashStats { num_removed_accounts: 111, num_added_accounts: 0, num_lamports_stored: 498103680198288811, total_data_len: 353826, num_executable_accounts: 0 }
[2020-04-04T02:47:31.391071637Z INFO  solana_ledger::snapshot_utils] bank rebuild from snapshot took 135ms
[2020-04-04T02:47:31.411145605Z INFO  solana_ledger::blockstore_processor] processing ledger from slot 6837698...
[2020-04-04T02:47:31.594386561Z INFO  solana_ledger::blockstore_processor] ledger processed in 182ms. 90 MB allocated. 1 fork at 6837698, with 1 frozen bank
Ok

It got smaller even more!

if next.is_some() {
next
} else {
let mut new_all_slots = self.all_root_slots_in_index();
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After local testing, I've found this logic is too naive for real hostile environment. But first I'll merge this...

@ryoqun
Copy link
Member Author

ryoqun commented Apr 4, 2020

For devnet:

$ ls -lh ledger-devnet2
total 520M
drwxrwxr-x 1 ubuntu ubuntu 6.8M Apr  4 11:34 accounts
-rw-r--r-- 1 ubuntu ubuntu 121K Mar 15 09:00 genesis.bin
-rw-rw-r-- 1 ubuntu ubuntu  35K Apr  4 10:27 genesis.tar.bz2
drwxr-xr-x 1 ubuntu ubuntu  438 Apr  4 11:29 rocksdb
drwxrwxr-x 1 ubuntu ubuntu 1.3K Apr  4 11:40 snapshot
-rw-rw-r-- 1 ubuntu ubuntu 257M Apr  4 11:35 snapshot-2673105-Hvo6gTRQRwsxXfjrBAbTdrPzwWHfbMsW6U4AczdchEH2.tar.bz2
-rw-rw-r-- 1 ubuntu ubuntu 263M Apr  4 11:39 snapshot-2673405-AwKh91xryFiBR48DF7gCJGBJ357CqC3TahXUTtnZSNSg.tar.bz2
drwxrwxr-x 1 ubuntu ubuntu    0 Apr  4 10:27 tmp-genesis
$ ../../target/release/solana-ledger-tool --ledger verify verify
HzyuivuNXMHJKjM6q6BE2qBsR3etqW21BSvuJTpJFj9A
[2020-04-04T02:53:00.921271113Z INFO  solana_ledger::blockstore] Maximum open file descriptors: 65000
[2020-04-04T02:53:01.147578182Z INFO  solana_ledger::blockstore] "/home/ubuntu/solana-git/data/solana-git/data/devnet/verify/rocksdb" open took 226ms
[2020-04-04T02:53:01.147628374Z INFO  solana_ledger::bank_forks_utils] Initializing snapshot path: "/home/ubuntu/solana-git/data/solana-git/data/devnet/verify/snapshot"
[2020-04-04T02:53:01.148588707Z INFO  solana_ledger::bank_forks_utils] Loading snapshot package: "/home/ubuntu/solana-git/data/solana-git/data/devnet/verify/snapshot-2673405-AwKh91xryFiBR48DF7gCJGBJ357CqC3TahXUTtnZSNSg.tar.bz2"
[2020-04-04T02:55:23.087983668Z INFO  solana_ledger::snapshot_utils] snapshot untar took 141.9s
[2020-04-04T02:55:23.088313520Z INFO  solana_ledger::snapshot_utils] snapshot version: 1.1.0
[2020-04-04T02:55:23.088364502Z INFO  solana_ledger::snapshot_utils] Loading bank from "/home/ubuntu/solana-git/data/solana-git/data/devnet/verify/snapshot/.tmpXUHCRx/snapshots/2673405/2673405"
[2020-04-04T02:55:23.090073472Z INFO  solana_ledger::snapshot_utils] Rebuilding accounts...
[2020-04-04T02:56:45.269240473Z INFO  solana_ledger::snapshot_utils] Rebuilding status cache...
[2020-04-04T02:56:45.301578430Z INFO  solana_ledger::snapshot_utils] Loaded bank for slot: 2673405
[2020-04-04T02:56:45.306226075Z INFO  solana_runtime::accounts_db] total_stores: 233830, newest_slot: 2673405, oldest_slot: 0, max_slot: 2668242 (num=2), min_slot: 2625092 (num=1)
[2020-04-04T02:56:45.306310419Z INFO  solana_metrics::metrics] metrics disabled: SOLANA_METRICS_CONFIG: environment variable not found
[2020-04-04T02:56:45.306713838Z INFO  solana_metrics::metrics] datapoint: accounts_db-stores total_count=233830i
[2020-04-04T02:57:39.785437975Z INFO  solana_runtime::accounts_db] scan took 147us merge took 346ns accumulate took 33us
[2020-04-04T02:57:39.785487158Z INFO  solana_runtime::bank] bank frozen: 2673405 hash: GwKjFfZsTyZcxJftCUsFsZEkqSdAnSZ3Kiw4KgjCv6DU accounts_delta: FC2E7pto3dYVZcXng2AU97uT363D4qQKZubWn92FQJTn signature_count: 16 last_blockhash: AycqBRuRFfF6tRtiJaHQtLQWL4XEnnALERsUzyK6CSeA
[2020-04-04T02:57:39.785512759Z INFO  solana_runtime::bank] accounts hash slot: 2673405 stats: BankHashStats { num_removed_accounts: 23, num_added_accounts: 15, num_lamports_stored: 7364560775948036266, total_data_len: 161372, num_executable_accounts: 0 }
[2020-04-04T02:57:39.785524700Z INFO  solana_ledger::snapshot_utils] bank rebuild from snapshot took 136.7s
[2020-04-04T02:57:39.789773001Z INFO  solana_ledger::blockstore_processor] processing ledger from slot 2673405...
[2020-04-04T02:57:39.794234924Z INFO  solana_ledger::blockstore_processor] ledger processed in 3ms. 1 MB allocated. 1 fork at 2673405, with 1 frozen bank
Ok

@ryoqun
Copy link
Member Author

ryoqun commented Apr 4, 2020

Sad, it seems that I introduced a regression in this PR; For some reason, it stops to produce snapshots.... I'm investigating...

@ryoqun
Copy link
Member Author

ryoqun commented Apr 5, 2020

Sad, it seems that I introduced a regression in this PR; For some reason, it stops to produce snapshots.... I'm investigating...

Really, odd; this bad reproduces without this PR....

@ryoqun
Copy link
Member Author

ryoqun commented Apr 5, 2020

Maybe affected by this? #9271

Rebasing and testing again.

@ryoqun
Copy link
Member Author

ryoqun commented Apr 6, 2020

Maybe affected by this? #9271

Rebasing and testing again.

I've run over a day without issues. Now, I'm really merging!

@ryoqun ryoqun merged commit b28ec43 into solana-labs:master Apr 6, 2020
mergify bot pushed a commit that referenced this pull request Apr 6, 2020
* Introduce background AppendVec shrink mechanism

* Support ledger tool

* Clean up

* save

* save

* Fix CI

* More clean up

* Add tests

* Clean up yet more

* Use account.hash...

* Fix typo....

* Add comment

* Rename accounts_cleanup_service

(cherry picked from commit b28ec43)
@ryoqun ryoqun mentioned this pull request Apr 16, 2020
5 tasks
@ryoqun ryoqun added the v1.0 label May 13, 2020
mergify bot pushed a commit that referenced this pull request May 13, 2020
* Introduce background AppendVec shrink mechanism

* Support ledger tool

* Clean up

* save

* save

* Fix CI

* More clean up

* Add tests

* Clean up yet more

* Use account.hash...

* Fix typo....

* Add comment

* Rename accounts_cleanup_service

(cherry picked from commit b28ec43)

# Conflicts:
#	core/src/accounts_background_service.rs
#	core/src/lib.rs
#	core/src/tvu.rs
#	runtime/src/accounts_db.rs
#	runtime/src/bank/mod.rs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

devnet snapshots are too slow to load, due to break accounts?
3 participants