Commit Graph

131 Commits

Author SHA1 Message Date
Jeff Washington (jwash) 31a620c42b
move towards accounts index being dynamic (#19032) 2021-08-04 09:18:05 -05:00
Jeff Washington (jwash) 6dadc75a6f
during range, stop scanning earlier than currently scanning (#18896)
* during range, stop scanning earlier than currently scanning

* refactor for better testing

* clean up a different edge case
2021-07-27 13:40:45 -05:00
Jeff Washington (jwash) 53d8cad206
remove unused return value from account index upsert (#18895) 2021-07-27 08:46:27 -05:00
Jeff Washington (jwash) 181f21529d
add Debug trait to T in AccountsIndex (#18702) 2021-07-16 17:05:23 -05:00
Jeff Washington (jwash) 958d27bb0e
accounts index scan starts looking in bin where bound would exist (#18613) 2021-07-15 10:26:50 -05:00
Jeff Washington (jwash) da9fdd785c
measure and speed up 2nd half of generate_index (#18503)
* add metrics and speedup storage calcs in generate_index

* add tests, refactor

* rename map variable

* rename another index variable
2021-07-15 10:26:00 -05:00
Jeff Washington (jwash) bb41cf3461
remove unnecessary generic args to make refactoring easier (#18619) 2021-07-13 12:05:23 -05:00
Jeff Washington (jwash) 0bd8710d34
prevent excess allocation with AccountsIndexIterator (#18605) 2021-07-13 11:11:17 -05:00
Jeff Washington (jwash) f5ff4b2058
serial insertion of bins into accounts index (#18469) 2021-07-12 12:00:45 -05:00
Jeff Washington (jwash) f04340b125
move allocation out of critical section and estimate capacity better (#18450) 2021-07-07 15:36:40 -05:00
Jeff Washington (jwash) 49c4e54b28
accounts index insert uses pubkey by value (#18460) 2021-07-07 15:35:35 -05:00
Jeff Washington (jwash) afd64d27c9
bin accounts index (#18111) 2021-06-28 15:03:57 -05:00
Jeff Washington (jwash) 1f1e54b9d8
reduce pubkey copies on insert path (#18240) 2021-06-28 12:04:29 -05:00
Jeff Washington (jwash) e06376664b
replace account index bulk insert with iterator (#18198) 2021-06-25 14:31:55 -05:00
Jeff Washington (jwash) f2a2581259
metric for accounts index insertion time (#18202) 2021-06-25 08:36:55 -05:00
dependabot[bot] 9429d0463c
chore: bump ouroboros from 0.5.1 to 0.9.3 (#18189)
* chore: bump ouroboros from 0.5.1 to 0.9.3

Bumps [ouroboros](https://github.com/joshua-maros/ouroboros) from 0.5.1 to 0.9.3.
- [Release notes](https://github.com/joshua-maros/ouroboros/releases)
- [Commits](https://github.com/joshua-maros/ouroboros/commits)

---
updated-dependencies:
- dependency-name: ouroboros
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* [auto-commit] Update all Cargo lock files

* Api changes

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2021-06-25 00:53:54 -06:00
Jeff Washington (jwash) f9fccdee85
remove unnecessary copies from accounts index code paths (#18196) 2021-06-24 17:56:25 -05:00
Jeff Washington (jwash) 4b314be5bd
rework dirty_pubkeys from insert_new_if_missing_into_primary_index (#18200) 2021-06-24 14:52:11 -05:00
sakridge 3b1738c000
Keep track of dirty stores on remove accounts to clean (#17601)
* Keep track of dirty stores on remove accounts to clean

and not zero_lamport key set

* Only dirty when count==0?

* Add another clean
2021-06-23 10:28:35 +02:00
Lijun Wang ccf6b21bf8
Removed unused purged_slots in purge_older_root_entries (#18102)
Removed unused purged_slots in purge_older_root_entries
2021-06-22 15:27:37 -07:00
Alexander Meißner 6514096a67 chore: cargo +nightly clippy --fix -Z unstable-options 2021-06-18 10:42:46 -07:00
Jeff Washington (jwash) 0a81c37fce
introduce LockMapType for accounts_index (#18021) 2021-06-17 14:41:52 -05:00
carllin ccc013e134
Handle removing slots during account scans (#17471) 2021-06-14 21:04:01 -07:00
sakridge c2191d885d
Fix accounts index panic in purge_exact (#17757) 2021-06-14 16:10:26 +02:00
Jeff Washington (jwash) d4cc975fe9
calculate_capitalization uses hash calculation (#17443)
* calculate_capitalization uses hash calculation

* feedback

* remove debugging code, clean up slot math
2021-06-14 08:53:07 -05:00
Jeff Washington (jwash) 58fe1d0764
add min to roots_tracker (#17806) 2021-06-08 08:32:16 -06:00
sakridge 14c52ab018
Skip shrink when it doesn't save anything (#17405) 2021-06-02 09:51:46 +02:00
Jeff Washington (jwash) 8924fbf6a0
RollingBitField: bug fixes and add tests (#17525)
* RollingBitField: bug fixes and add tests

* respond to feedback
2021-05-28 16:33:07 +00:00
sakridge 49402b7d82
Only add keys with multiple index entries to the clean set (#17473) 2021-05-27 16:31:24 +02:00
carllin d8bc56fa51
Refactor purge_slots_from_cache_and_store() and handle_reclaims() (#17319) 2021-05-24 13:51:17 -07:00
Jeff Washington (jwash) 3f3324231d
Hold read lock during startup shrink (#17309)
* hold read lock during account scan of shrink

* rename and improve rusty
2021-05-21 13:59:32 -05:00
Jeff Washington (jwash) 8143ee5502
add AccountsIndex AccountMapsReadLock type (#17365) 2021-05-21 10:02:14 -05:00
Jeff Washington (jwash) 33ab9c4e8d
batch insert account_index items in generate_index (#17290) 2021-05-20 10:29:13 -05:00
Jeff Washington (jwash) 32ec8341f9
generate_index inserts ideal initial data (#17247)
* improve insert into map initially

* rework towards single code path

* rename

* update test
2021-05-19 16:21:24 -05:00
Jeff Washington (jwash) ed9cbd50f0
move Ancestors to its own module (#17316) 2021-05-19 11:50:34 -05:00
Jeff Washington (jwash) 4788976517
rework slot list update (#17232) 2021-05-19 08:48:46 -05:00
Jeff Washington (jwash) a3c0833a1c
tests: cleanup test (#17305)
* tests: cleanup test

* 2 more replacements
2021-05-18 18:08:37 -05:00
Jeff Washington (jwash) d1db5448b9
hold lock to speed up insert (#17194)
* hold lock to speed up insert

* add tests
2021-05-17 11:58:33 -05:00
Jeff Washington (jwash) 3745e0babc
minor refactoring of AccountsIndex in preparation of bigger things (#17237) 2021-05-14 15:27:10 -05:00
carllin 239ab8799c
Remove bloat from secondary indexes (#17048) 2021-05-12 15:29:30 -07:00
Jeff Washington (jwash) 7d96f78821
include/exclude keys on account secondary index (#17110)
* AccountSecondaryIndexes.include/exclude

* use normal scan if key is not indexed

* add a test to ask for a scan for an excluded secondary index

* fix up cli args
2021-05-11 22:06:22 +00:00
Jeff Washington (jwash) f39dda00e0
type AccountSecondaryIndexes = HashSet (#17108) 2021-05-10 14:22:48 +00:00
Jeff Washington (jwash) a6a1355b80
fix secondary index test (#17111) 2021-05-10 08:54:30 -05:00
Jeff Washington (jwash) dc0429f5e6
add metric for assumption (#17061) 2021-05-06 15:04:13 -05:00
Jeff Washington (jwash) ffbe8906ed
get root lock once (#16829) 2021-05-05 15:17:45 -05:00
Brooks Prumo 17e6bd579f
Clean unrooted dropped banks (#16580) (#16911)
In a scenario where a bank is unrooted and dropped, any keys that exist
_only_ in that bank are now cleaned up.

This work was originally based on PR #15106.
2021-04-30 15:34:38 -05:00
Jeff Washington (jwash) 23d67e4ac7
stretchy roots tracker (#16830)
* stretchy roots tracker

* rename hash to hash_set in tests

* update comment

* try 2 widths in test

* bool iter

* add assert

* helper function for bitfield insert/remove

* introduce RollingBitFieldTester

* another bool iter replacement

* map cleanup

* map to cloned
2021-04-29 09:11:28 -05:00
Jeff Washington (jwash) 9070191b8b
stats on clean for removing roots (#16849)
* stats on clean for removing roots

* rename

* accumulate and swap metrics
2021-04-28 13:24:01 -05:00
Jeff Washington (jwash) 47ca7063f2
rootstracker.remove returns previous state (#16831) 2021-04-27 09:15:44 -05:00
Jeff Washington (jwash) 1cc9a1c0eb
log roots range metric (#16636)
* log roots range metric

* rename
2021-04-23 16:09:39 +00:00