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

MetaScore calculation is slow for older blockchain accounts #3

Open
advaita-saha opened this issue May 20, 2023 · 5 comments
Open

MetaScore calculation is slow for older blockchain accounts #3

advaita-saha opened this issue May 20, 2023 · 5 comments
Labels
bug Something isn't working GSSoC'23 Girlscript summer of Code contrib help wanted Extra attention is needed level3 not assigned

Comments

@advaita-saha
Copy link
Contributor

Describe the bug
For very old account metascore calculation becomes very slow, as

Expected behavior
It should be fast.

PS - you can use multi-process to make it fast, or can come up with your own solution

@advaita-saha advaita-saha added bug Something isn't working help wanted Extra attention is needed GSSoC'23 Girlscript summer of Code contrib labels May 20, 2023
@AK4266
Copy link

AK4266 commented May 20, 2023

Hey, can you assign me this issue. I would like to work on this under GSSoC'23

@advaita-saha
Copy link
Contributor Author

Hey, can you assign me this issue. I would like to work on this under GSSoC'23

Sure,
Do let me know your approach.
If I find your approach good enough will assign you the issue

@AK4266
Copy link

AK4266 commented May 20, 2023

Sure, I will start working on this, and I'll let you know as soon as I get the idea...

@shahkushal38
Copy link

any update @AK4266 ??

@AishwaryaSatpute1
Copy link

I'm here to suggest some alternative approaches that may help improve the speed and efficiency of MetaScore calculation for these accounts.

Data Segmentation: Instead of processing the entire blockchain account data at once, consider segmenting the data based on time intervals or specific blocks. By breaking down the calculation into smaller chunks, you can distribute the workload and reduce the processing time for each segment.

Historical Snapshot: Create a periodic snapshot of older blockchain accounts and their associated data. Instead of recalculating the MetaScore from scratch every time, use the latest snapshot as a starting point and apply incremental updates based on subsequent changes. This approach can significantly reduce the computational overhead for older accounts.

Parallel Processing: Explore the possibility of parallelizing the MetaScore calculation process by utilizing multiple computing resources. By dividing the workload among multiple threads or machines, you can expedite the calculation for older accounts. However, ensure proper synchronization and data consistency to avoid any conflicts.

Algorithmic Optimization: Review the existing MetaScore calculation algorithm and look for opportunities to optimize its efficiency. Consider employing more efficient data structures, algorithmic techniques (such as dynamic programming or memoization), or leveraging pre-calculated values to speed up the calculation process.

Caching Mechanism: Implement a caching mechanism to store previously calculated MetaScores for older accounts. This way, you can retrieve the precalculated values instead of recomputing them. Ensure the cache is efficiently managed and refreshed whenever relevant changes occur to maintain accuracy.

Prioritization Strategy: Analyze the importance and frequency of MetaScore calculations for different accounts. Prioritize the calculation process based on account activity or relevance to ensure that accounts requiring immediate attention receive faster processing.

Please guide on which one you feels more suitable for this project ???? Soon I'll update you with pseudo Algorithm. 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working GSSoC'23 Girlscript summer of Code contrib help wanted Extra attention is needed level3 not assigned
Projects
None yet
Development

No branches or pull requests

4 participants