Commit Graph

1070 Commits

Author SHA1 Message Date
HaoranYi 615d1a8b69
Extract BankHashLamportsVerifyConfig (#30320)
* refactor BankHashLamportsVerifyConfig

* clippy

* comments

* fix bench
2023-02-15 16:03:50 -06:00
Andrew Fitzgerald b86bfbb5c5
measure_us! use Instant and duration_to_us internally (#30339) 2023-02-15 12:43:47 -08:00
Pankaj Garg 3bea5fc326
Return index of matching owner for a program account (#30337) 2023-02-15 19:41:29 +00:00
Xiang Zhu 4909267c88
Add accounts hard-link files into the bank snapshot directory (#29496)
* Add accounts hard-link files into the bank snapshot directory

* Small adjustments and fixes.

* Address some of the review issues

* Fix compilation issues

* Change the latest slot snapshot storage from VecDeque to Option

* IoWithSourceAndFile and expanded comments on accounts

* last_slot_snapshot_storages in return value

* Update comments following the review input

* rename dir_accounts_hard_links to hard_link_path

* Add dir_full_state flag for add_bank_snapshot

* Let appendvec files hardlinking work with multiple accounts paths across multiple partitions

* Fixes for rebasing

* fix tests which generates account_path without adding run/

* rebasing fixes

* fix account path test failures

* fix test test_concurrent_snapshot_packaging

* review comments.  renamed the path setup function

* Addressed most of the review comments

* update with more review comments

* handle error from create_accounts_run_and_snapshot_dirs

* fix rebasing duplicate

* minor accounts_dir path cleanup

* minor cleanup, remove commented code

* misc review comments

* build error fix

* Fix test_incremental_snapshot_download_with_crossing_full_snapshot_interval_at_startup

* fix build error on MAX_BANK_SNAPSHOTS_TO_RETAIN

* rebase fix, update hardlink filename

* minor comment spelling fix

* rebasing fixes

* fix rebase issues; with_extension

* comments changes for review

* misc minor review issues

* bank.fill_bank_with_ticks_for_tests

* error handling on appendvec path

* fix use_jit

* minor comments refining

* Remove type AccountStorages

* get_account_path_from_appendvec_path return changed to Option

* removed appendvec_path.to_path_buf in create_accounts_run_and_snapshot_dirs

* add test_get_snapshot_accounts_hardlink_dir

* update last_snapshot_storages comment

* update last_snapshot_storages comment

* symlink map_err

* simplify test_get_snapshot_accounts_hardlink_dir with fake paths

* log last_snapshot_storages at the end of the loop
2023-02-15 09:52:07 -08:00
Brooks 2e885cf99a
Removes calls to insert_default_bank_hash_stats() in tests (#30311) 2023-02-14 15:00:38 -05:00
HaoranYi 27f18f96e8
typos, clippy and saturating_add_assign (#30272)
* typo

* remove clippy allow

---------

Co-authored-by: haoran <haoran@mbook>
2023-02-14 10:03:16 -06:00
Jeff Washington (jwash) 253517cba3
add combine_ancient_slots_packed (#30276)
* add combine_ancient_slots_new

* pr feedback

* implement ==
2023-02-14 06:53:31 -08:00
Jeff Washington (jwash) a46ba32e9a
remove unused metric (#30248) 2023-02-10 13:36:22 -08:00
Jeff Washington (jwash) 157a9d725f
add ancient pack_ancient_storages (#30235)
* add ancient pack_ancient_storages

* cleanup
2023-02-10 12:06:36 -08:00
Jeff Washington (jwash) 12411e5215
pass shrink_can_be_active through shrink fns (#30244) 2023-02-10 10:06:40 -08:00
Jeff Washington (jwash) fc8c590375
improve debugging test fn compare_all_accounts (#30218) 2023-02-09 15:06:09 -08:00
ivandzen 2f9146e8c8
Replace txn_signature in ReplicaAccountInfo with transaction (#30189)
#### Current implementation of ReplicaAccountInfo restricts
possibilities for inflight account filtration
Current implementation includes transaction signature in
ReplicaAccountInfo. This approach does not allow to filter accounts by
matching other accounts in transaction in-flight (e. g. accept only
those accounts included in transactions for specific programs). Current
implementation forces to collect ALL accounts and transactions for some
period of time and perform such complex filtration afterwards.

#### Pass reference to transaction object instead of transaction
signature into ReplicaAccountInfo
Advanced in-flight filtration can be implemented in plugins by passing
reference to transaction for every update_account event. This change
doesn't bring any overhead comparing to current implementation (only
data type of reference is changed) and brings only minor changes in
source code.
2023-02-09 12:00:33 -08:00
Jeff Washington (jwash) 62b93df1c7
change ancient tests to correct size (#30221)
#### Problem
fix tests to be more realistic

#### Summary of Changes
allocate correctly sized append vecs

Fixes #
<!-- OPTIONAL: Feature Gate Issue: # -->
<!-- Don't forget to add the "feature-gate" label -->
2023-02-09 11:41:36 -08:00
Jeff Washington (jwash) e0d354f542
fix bug in test fn compare_all_accounts (#30217)
#### Problem
test code compares sets of accounts after clean/shrink operations.
The indexing was off and new tests were giving false positives.
The test code was equivalent as long as everything was in the same
order.

#### Summary of Changes
Fix test code comparison indexes.

Fixes #
<!-- OPTIONAL: Feature Gate Issue: # -->
<!-- Don't forget to add the "feature-gate" label -->
2023-02-09 11:28:53 -08:00
Jeff Washington (jwash) 68b2b1badd
add ancient calc_accounts_to_combine (#30195)
#### Problem
Building new algorithm for packing ancient storage. Packing will occur
in 1 pass across multiple ancient slots.
This will be put in 1 dead code piece at a time with tests until all
pieces are present. Switch between current packing algorithm and this
new one is in a validator cli argument. Resulting append vecs are
correct and compatible (as a set) either way. When a new storage format
optimized for cold storage becomes available, it will only work with
this new packing algorithm, so the change will need to be complete prior
to the new storage format.

#### Summary of Changes
Add `ancient calc_accounts_to_combine` to separate accounts to prepare
for creating packed ancient append vecs. This will be used soon.

Fixes #
<!-- OPTIONAL: Feature Gate Issue: # -->
<!-- Don't forget to add the "feature-gate" label -->
2023-02-09 11:06:17 -08:00
Jeff Washington (jwash) a4fb1834d1
AliveAccounts includes source slot (#30208) 2023-02-09 05:57:58 -08:00
Jeff Washington (jwash) 0ca638648b
add shrink_can_be_active to remove (#30191) 2023-02-08 11:32:18 -08:00
Jeff Washington (jwash) b4fe1280b3
add Debug to some structs (#30193) 2023-02-08 10:17:07 -08:00
Jeff Washington (jwash) 427bd62642
handle_dropped_roots_for_ancient takes iter (#30190) 2023-02-08 09:40:49 -08:00
Jeff Washington (jwash) 0da4697b2f
add ancient write_ancient_accounts (#30182) 2023-02-08 09:40:17 -08:00
Jeff Washington (jwash) e14d0638e7
add ancient get_unique_accounts_from_storage_for_combining_ancient_slots (#30176) 2023-02-07 18:22:54 -08:00
Pankaj Garg d0623a38c8
API to match account owner against a set of owners (#30154) 2023-02-07 17:48:10 -08:00
Jeff Washington (jwash) bfc29a6b2f
remove storage_finder from write_accounts_to_storage (#30172)
Co-authored-by: Trent Nelson <trent@solana.com>
2023-02-07 14:44:40 -08:00
Jeff Washington (jwash) 927da903a8
StoreTo::Storage holds storage (#30156) 2023-02-07 11:54:26 -08:00
HaoranYi 5dd90268b1
comments fix (#30134)
Co-authored-by: haoran <haoran@mbook>
2023-02-07 09:22:08 -06:00
Jeff Washington (jwash) 0bbc4774d7
minor cleanup on tests (#30125) 2023-02-05 12:13:39 -08:00
Jeff Washington (jwash) 785a6e3a69
AncientSlotInfos, piece of packed ancient storage (#30119) 2023-02-03 10:53:49 -08:00
Brooks 06e801a8a5
Moves BankHashInfo into serde_snapshot (#30120) 2023-02-03 13:17:50 -05:00
Brooks 9b297ac89c
Removes {get,set}_bank_hash_info() test helper functions (#30101) 2023-02-03 10:17:38 -05:00
Jeff Washington (jwash) eeb622c4ed
test create storages can ignore TempFile (#30094) 2023-02-03 07:12:33 -08:00
Brooks 3249e4a123
Removes {get,set}_bank_hash_info_from_snapshot() (#30087) 2023-02-02 16:50:44 -05:00
Jeff Washington (jwash) ae7803a55e
add test accounts with custom data size (#30089) 2023-02-02 10:47:12 -08:00
Jeff Washington (jwash) 890f29be0c
fix alive_bytes test fn (#30088) 2023-02-02 10:46:46 -08:00
Jeff Washington (jwash) 385a6e01f7
combine some stats into ShrinkStatsSub (#30034) 2023-02-02 06:21:36 -08:00
Brooks a6f43c2e3d
Slot 0 is not as special in set_bank_hash_info_from_snapshot() (#30071) 2023-02-02 08:57:11 -05:00
Jeff Washington (jwash) 7ea0a72cc4
total_bytes -> capacity (#30065) 2023-02-02 05:46:13 -08:00
Brooks 79e9c9f8b7
Do not populate slot 0 with default accounts delta hash/accounts hash (#30069) 2023-02-01 20:43:26 -05:00
Jeff Washington (jwash) 22afdb21ec
rename original_bytes -> capacity (#30064) 2023-02-01 16:58:41 -08:00
Brooks 33165040bf
Only insert default BankHashStats in Accounts::new_from_parent() (#30063) 2023-02-01 17:47:55 -05:00
Jeff Washington (jwash) 67d3beeb35
remove unnecessary lifetime (#30019) 2023-02-01 13:18:46 -08:00
Jeff Washington (jwash) e11c22a13c
clean up remove_old_stores_shrink stats (#30018) 2023-02-01 13:18:07 -08:00
Jeff Washington (jwash) 1c4e84b8ca
impl default version of contains_multiple_slots (#30055) 2023-02-01 13:01:01 -08:00
Jeff Washington (jwash) 5769dbf36b
is_cached_store, bool -> Storage enum (#30057) 2023-02-01 12:33:27 -08:00
Brooks d048a1903f
Splits up AccountsDb::bank_hashes (#30024) 2023-02-01 14:32:35 -05:00
Jeff Washington (jwash) 27e8af9621
add pub(crate) to shrink functions (#30052) 2023-02-01 11:04:51 -08:00
Jeff Washington (jwash) 5d85a34591
shrink ignores ancient slots (#30026) 2023-02-01 07:23:14 -08:00
Jeff Washington (jwash) 3e0494051e
tests adding accounts can mark alive in index (#30029) 2023-02-01 07:22:10 -08:00
Jeff Washington (jwash) d5a7b5715c
add cli arg for choosing ancient append vec format (#30025) 2023-02-01 07:21:28 -08:00
K-anon 1e3d6349aa
Add an RPC API that can query the list of Top N secondary index keys and their sizes (#28887)
Co-authored-by: K-anon <IntokuSatori@users.noreply.github.com>
2023-01-31 13:47:03 -07:00
Jeff Washington (jwash) 4dbde40e10
measure! -> measure_us! (#29991) 2023-01-31 07:40:50 -08:00