-
Notifications
You must be signed in to change notification settings - Fork 336
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
Witness_node Memory Management Discussion #621
Comments
Originally BitShares was created with architecture of core (bare minimum needed for validation) and plugins (containing data not needed for validation, e.g. operation history). As time went on, more and more code stopped following this architecture. There's a lot of stuff in the core that needs to be moved to a plugin. For example:
As a large portion of the objects are never modified, as a stopgap you can simply run the witness node on a system with a large swap file. |
Using larger swap file seems to be a good idea. However, when a swapped out object need to be read (but not be modified), it still need to be swapped in, this will more or less affect performance. We need analysis to show what objects are in memory, how big is each of them, how useful is each of them etc. As @theoreticalbts mentioned, market history is one of useless objects for block producers. |
The "large swap" idea may not work if rarely used objects in memory are interleaved with often-used objects. A single often-used object in a memory page will effectively lock that page in RAM. |
This issue was moved to bitshares/bitshares-core#192 |
Fix error logging in push_proposal
This ticket is for discussing potential optimization on memory management of witness_node.
Currently, 5 months after BTS 2.0 launch,
head_block_num
is about4,300,000
,Perhaps we'll have to face scalability issues rather soon.
Ideas?
The text was updated successfully, but these errors were encountered: