-
Notifications
You must be signed in to change notification settings - Fork 624
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
Define scalable Social DB traffic and integrate it into the load generator / test runner #9095
Comments
High-level definition of Social DB workloadInitialization of SocialDB is quite straight forward:
Then to register a user, we don't have to do anything. But for every call we do later, we must ensure there is enough storage. To facilitate, user initialization can be as easy as:
For actual workload, I am thinking of three different interactions to starts:
All of these interactions are just calls to The argument construction requires nested JSON serialization as shown below. Luckily, it can be done in just a few lines of Python code. // Example JSON for "jakmeier.near" following "pugachag.near"
{
"data": {
"jakmeier.near": {
"graph": {
"follow": {
"pugachag.near": ""
}
},
"index": {
"graph": "{\"key\":\"follow\",\"value\":{\"type\":\"follow\",\"accountId\":\"pugachag.near\"}}",
"notify": "{\"key\":\"pugachag.near\",\"value\":{\"type\":\"follow\"}}"
}
}
}
} See the full call in the explorer: https://explorer.near.org/transactions/J2erddvLFo8L4Qn9Rb4HV8tHA3iJtNcgW6iSDBRwCcBh |
So far I code the initialization and the follow transactions. It's available in this commit: dbef2f0 |
We merged #9133 with initialization, "Follow someone else" and "Post a message". |
One inconvenience so far is that the smart contract validation might not be enough for us to be sure that meaningful work is being done. A Ideally we would attach a frontend to benchmarking and look at users and posts from there, even if just to confirm that it does what it should. But I will keep this as a nice-to-have addition for now. |
I'm going to close this as there is currently no plan to add likes or a frontend. The current socialDB load is good enough for, as it can be used to test how many users we can support in a given setup. |
We are now using locust to create the TPS benchmark described in #8999.
This issue is to track how we integrate SocialDB traffic.
The text was updated successfully, but these errors were encountered: