Commit Graph

4115 Commits

Author SHA1 Message Date
Illia Bobyr 4353ac6797
Pass Arc<AtomicBool> by value, not by reference. (#31916)
`Arc` is already a reference internally, so it does not seem to be
beneficial to pass a reference to it.  Just adds an extra layer of
indirection.

Functions that need to be able to increment `Arc` reference count need
to take `Arc<AtomicBool>`, but those that just want to read the
`AtomicBool` value can accept `&AtomicBool`, making them a bit more
generic.

This change focuses specifically on `Arc<AtomicBool>`.  There are other
uses of `&Arc<T>` in the code base that could be converted in a similar
manner.  But it would make the change even larger.
2023-06-01 17:25:48 -07:00
Yueh-Hsuan Chiang 2b04f28c7b
[TieredStorage] AccountMetaFlags (#31913)
#### Summary of Changes
This PR implements AccountMetaFlags, which will later be used in
the tiered accounts storage to support optional fields.

#### Test Plan
Unit tests are included in this PR.
2023-06-01 14:48:27 -07:00
Yueh-Hsuan Chiang 1302962521
[TieredStorage] Support Lz4 in ByteBlockWriter (2/N) (#31862)
#### Summary of Changes
Support Lz4 in ByteBlockWriter.

#### Test Plan
Added test cases for Lz4.
Tested in mnb w/ the prototype implementation of the tiered storage (#30626)
2023-06-01 10:29:08 -07:00
steviez debe794987
Replace improper &Arc<...> with Arc<...> in Bank and Accounts (#31892)
The callstack updated in this PR passed an &Arc<...> down only to have
the bottom level clone the reference. Thus, we are giving shared
ownership so the reference is a bit redundant and arguably obscures the
intention to clone further down the callstack.
2023-05-31 12:36:44 -05:00
Brooks 8e191bbc56
Downgrades log to warn if reading bank snapshot from dir fails (#31885) 2023-05-30 19:35:06 -04:00
Yueh-Hsuan Chiang 33d64c6b2f
[TieredStorage] Add doc comments for byte_block.rs (#31863)
#### Summary of Changes
Add doc comments for byte_block.rs

#### Test Plan
This is a comment-only PR.  No code change.
2023-05-30 16:25:25 -07:00
Brooks c569a37713
Handle errors when sending an accounts package during shutdown (#31874) 2023-05-30 17:42:33 -04:00
Yueh-Hsuan Chiang 5334efd63c
Byte-blocks utils for TieredStorage (1/N) (#31815)
#### Summary of Changes
This PR includes the util structs for writing byte blocks, which will be used
by the TieredStorage writer (currently used in the prototype #30626).

The PR only includes the Raw encoding format.  Will add more in subsequent PRs.

#### Test Plan
Tested in mnb with the prototype implementation of the tiered-storage (#30626)
Unit tests are also included in this PR.
2023-05-30 14:14:29 -07:00
Jeff Washington (jwash) 6c520396cd
bank process_new_epoch takes parent_height (#31820) 2023-05-30 08:58:40 -05:00
Jeff Washington (jwash) 588a7a4e53
add RewardsStoreMetrics for partitioned rewards (#31819) 2023-05-30 08:58:00 -05:00
Jeff Washington (jwash) 0c64e26d53
partitioned rewards helper functions (#31818) 2023-05-30 08:57:31 -05:00
Brooks 8a3f446db0
Removes MAX_BANK_SNAPSHOTS_TO_RETAIN constant (#31827) 2023-05-25 17:13:28 -04:00
Andrew Fitzgerald 75954dc061
Banking worker (#30970) 2023-05-25 10:16:04 -07:00
Brooks 0e93090520
Updates priority for which snapshot request to handle next (#31798) 2023-05-24 16:21:06 -04:00
Yueh-Hsuan Chiang 6752019a80
Add enum AppendVecError (#31749)
#### Problem
AppendVec currently uses std::io::ErrorKind::Other for its own errors.

#### Summary of Changes
This PR introduces AppendVecError and has AppendVec use it.
2023-05-24 12:18:17 -07:00
Jeff Washington (jwash) 461342cdd4
add cli args and use of partitioned rewards config (#31800)
* add cli args and use of partitioned rewards config

* update comments
2023-05-24 10:54:09 -07:00
Jeff Washington (jwash) 49259dcad8
add optional ignore to `calculate_accounts_delta_hash` (#31801) 2023-05-24 10:51:03 -07:00
Jeff Washington (jwash) d6a54e0f4d
add partitioned_rewards.rs (#31794) 2023-05-24 09:59:38 -07:00
Alexander Meißner a85548cf34
Cleanup - spl_token_v3_4_0 and spl_associated_token_account_v1_1_0 (#31764)
* spl_token_v3_4_0

* spl_associated_token_account_v1_1_0

* Marks replace_program_account() as dead code.
2023-05-24 18:45:37 +02:00
Jeff Washington (jwash) e396a10312
change StartBlockHeightAndRewards from parent to current (#31781) 2023-05-23 20:10:51 -07:00
Jeff Washington (jwash) ae12079139
add debug to VoteReward (#31782) 2023-05-23 20:10:20 -07:00
Jeff Washington (jwash) 8e8b2f1671
reformat comments (#31780) 2023-05-23 17:04:47 -07:00
Andrew Fitzgerald f52ded35f4
async delete contents but leave directory (#31737)
* async delete contents but leave directory

* Clarified comment
2023-05-23 15:33:09 -07:00
Brooks 05c932f92d
Moves transient accounts hash cache files into their own dir (#31778) 2023-05-23 22:14:30 +00:00
Yueh-Hsuan Chiang 174951478f
Add new error type -- TieredStorageError (#31633)
#### Summary of Changes
This PR adds a new error type for the tiered storage.
2023-05-23 15:06:55 -07:00
Brooks a474cb24b9
Creates temporary accounts hash cache files inside accounts hash cache dir (#31776) 2023-05-23 17:09:16 -04:00
Brooks 61afb07dbd
Purges old bank snapshots at startup (#31656)
Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
2023-05-23 13:18:05 -04:00
Andrew Fitzgerald 5448d0b1e8
Remove redundant clones (#31685)
* broadcast_stage remove redundant clone

* broadcast_fake_shreds_run remove redundant clone

* wallet remove redundant clone

* cluster_query remove redundant clone

* accounts remove redundant clones
2023-05-23 09:42:05 -07:00
Alexander Meißner 1e8e024ec5
Cleanup - disable_fee_calculator (#31766)
disable_fee_calculator
2023-05-23 18:20:38 +02:00
Alexander Meißner e9d99973ca
Cleanup - bank_transaction_count_fix (#31768)
bank_transaction_count_fix
2023-05-23 18:18:15 +02:00
Alexander Meißner d866fce3d8
Cleanup - include_account_index_in_rent_error (#31770)
include_account_index_in_rent_error
2023-05-23 15:02:55 +02:00
Alexander Meißner 183e7fd60f
Cleanup - instructions_sysvar_owned_by_sysvar (#31769)
instructions_sysvar_owned_by_sysvar
2023-05-23 15:02:35 +02:00
Yueh-Hsuan Chiang d9d2120d32
Make reconstruct_single_storage() returns SnapshotError (#31748)
#### Problem
The return error type -- io::Error used in reconstruct_single_storage()
isn't suitable to describe all possible errors inside the function such as
AccountsFileError.

#### Summary of Changes
This PR makes it return SnapshotError which can better handle
both AccountsFileError and io::Error.
2023-05-23 02:18:23 -07:00
Yueh-Hsuan Chiang 586fd407bf
Refactor SnapshotError related code (#31632)
#### Problem
Part of the snapshot-related code uses io::Error while other parts use SnapshotError.

#### Summary of Changes
As SnapshotError can be created from io::Error, this PR makes snapshot-related
code to use SnapshotError instead.
2023-05-22 15:33:11 -07:00
Yueh-Hsuan Chiang c79a6e74e2
Add new error type AccountsFileError (#31631)
#### Problem
AccountsFile- and AppendVec-related code uses io::Error for their main error type.  However, there're many errors under AccountsFile that don't belong to io::Error.

#### Summary of Changes
This PR introduces AccountsFileError and makes minimum changes to keep the PR small.
Subsequent changes related to this will be in separate PRs.
2023-05-22 14:09:09 -07:00
Alexander Meißner 83f692ce67
Refactor - Share RBPF config and syscall registry globally (#31727)
* Adds LoadedPrograms::program_runtime_environment_v1.

* No need to explicitly remove precompiles from program_accounts_map.
2023-05-20 20:28:00 +02:00
Pankaj Garg e6d490708a
Do not overwrite builtin program in the same slot (#31718) 2023-05-19 05:26:31 -07:00
Andrew Fitzgerald d391e75a60
Performance: Allowed forced inline update_index (no thread pool) (#31455) 2023-05-18 13:32:41 -07:00
Alexander Meißner 520c647918
Refactor - Merges `BuiltinPrograms` into `LoadedPrograms` (#31654)
* Merges BuiltinPrograms into LoadedPrograms.

* Prevents built-ins from being pruned.
2023-05-18 22:18:28 +02:00
Jeff Washington (jwash) 9fd6f09984
remove redundant `mut`s (#31696) 2023-05-18 11:08:13 -07:00
Jeff Washington (jwash) 3ac5bb2a60
deserialize epoch_reward_status into BankFieldsToDeserialize (#31698) 2023-05-18 07:14:59 -07:00
Jeff Washington (jwash) 0291454876
persist EpochRewardStatus::Active (#31697)
persist `EpochRewardStatus::Active`
2023-05-18 07:14:41 -07:00
Jeff Washington (jwash) 3f625e47df
working towards persistence for EpochRewardStatus (#31678) 2023-05-17 13:23:20 -07:00
Jeff Washington (jwash) 8ed4962229
refactor serialization tuple into an enum (#31679) 2023-05-17 10:53:28 -07:00
Jeff Washington (jwash) ce32cb43db
add bank.epoch_reward_status (#31680) 2023-05-17 10:01:14 -07:00
Pankaj Garg b03422968b
Remove Rc and RefCell to carry program cache in invoke_context (#31684) 2023-05-17 06:10:50 -07:00
Jeff Washington (jwash) 7c6478da8f
remove unnecessary pub (#31676) 2023-05-16 13:53:57 -07:00
Jeff Washington (jwash) 5bc41a0eb8
prepare load_transaction_accounts to recognize reward interval (#31673) 2023-05-16 12:55:35 -07:00
Jeff Washington (jwash) cdb430d287
add StorableAccount impl for account value (#31675) 2023-05-16 12:54:48 -07:00
Jeff Washington (jwash) d841ff7fe1
support snapshot deserialization with EpochRewardStatus (#31672)
* support snapshot deserialization with EpochRewardStatus

* pub(crate)
2023-05-16 12:53:52 -07:00