-
Notifications
You must be signed in to change notification settings - Fork 60
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
PostgreSQL #1888
Comments
Weekly Update
|
I suggest to confirm PostgreSQL integration done, as it is actually done, especially that concurrent requests are already implemented. This should be good enough for 10k users. We can then move this issue to scope PostgreSQL optimizations for 1mil users target. Do you agree @Ivansete-status ? |
Morning @fryorcraken ! The PostgreSQL integration is completed but I have a doubt: for 10k users, how many requests per second should we support ? And how many for 1mil? I think we need first to measure the current performance and this task is in progress, implementing a basic stress tests :) |
@kaiserd did a hackmd that did the estimation for relay scaling which gave us a theoretical green light for 10k users per shard. Maybe we can use the same figures for Store. However, it is challenging to estimate the needs in any case. An alternative would be to look at the usage of store node in Status prod fleet. It's for ~100 contributors. Another alternative would be to stress test sqlite and postgresql and if we demonstrated a 10x improvement then we can reach the same conclusion: we can support 100 users with sqlite, postgresql is 10x more performance, hence in theory we can support 1000 users with PostgreSQL. SQLite and PostgreSQL are industry standards, surely there are available benchmarks that can tell us this performance difference? Then, the next step is the needs of 10k users. I believe this is where optimization and DST simulation would be necessary.
Indeed, it may make sense to measure performance and confirm there are no issues on nwaku code that bottlenecks the usage of PostgreSQL.
Is that something to be done with Kurtosis or more simple one? Where is it tracked? is the intent to just run it once or have it part of regular processes (e.g. release candidate). Cc @jm-clius |
The stress test creation is tracked in the next issue. The idea, for now, is to make manual runs and measurements. |
For now a manual measurement would be a good start IMO. In fact, we can look at current query rate for Status Community and assume a linear increase with increase in numbers and simply script that many queries to a postgresql instance. Very crude estimate with approximate results, but will give us a good initial benchmark. |
Weekly Update
|
Weekly Update
|
Weekly Update
|
Weekly Update
|
Weekly Update
|
Weekly Update
|
Weekly Update
|
Weekly Update
|
Weekly Update
|
I'll disregard for now the point of "having the queries in a separate file". The main reason is that we are using prepared statements intensively, in order to enhance query performance, and that induced a more complex query set. Therefore, I don't see a benefit of doing that in the short-term. |
The report was created in https://github.com/waku-org/nwaku/wiki/Postgres-adoption |
I crossed out "#1885" from the description list because the "size" retention policy isn't strictly related to Postgres only. Therefore, this task can be considered complete. |
Planned start date:
Due date:
Summary
Implementation of PosgreSQL database engine for Waku Store queries.
See waku-org/pm#4 for details.
Acceptance Criteria
Tasks
- [ ] Add retention policy with GB or MB limitation #1885RAID (Risks, Assumptions, Issues and Dependencies)
The text was updated successfully, but these errors were encountered: