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

Benchmarking #111

Open
archenroot opened this issue Nov 27, 2016 · 3 comments
Open

Benchmarking #111

archenroot opened this issue Nov 27, 2016 · 3 comments

Comments

@archenroot
Copy link

Do you have some common set of bench-marking you were doing in the past?

NOTE: Have you done for example 10000 requests per second benchmark, or some very high load? Is even Alenka design good for such approach?

I am just compiling the JDBC driver, so will have mine soon. I found on gpgpu.org Alenka benchmark blog post, but the links are gone.

Regards,

Ladislav

@antonmks
Copy link
Owner

Alenka is more suitable for high throughput than for high request count. In a past I run some TPC-H benchmarks with good results, you can see the load scripts and queries here : https://github.com/antonmks/Alenka/blob/master/how_to_run_tpch.txt

@archenroot
Copy link
Author

Thanks for note, it looks quite promising :-)

@AlexeyAB
Copy link
Contributor

AlexeyAB commented Dec 20, 2016

@archenroot

For highload projects - you can use batch processing, accumulate parameters of SQL-query in the table (for each type of SQL-statement), and launch each type of SQL-statement sequentially. Compared to the CPU: it increase performance, but also increase latency.

For example, you can accumulate :par1 in table user_parameters for each for u_userid and to use:
OFI := SELECT o_orderkey AS o_orderkey, o_orderdate AS o_orderdate, u_userid AS u_userid FROM orders JOIN user_parameters ON o_orderdate = u_orderdate

Instead of many queries:

OFI := FILTER orders BY o_orderdate = :par1;    // for u_userid = 1
OFI := FILTER orders BY o_orderdate = :par1;    // for u_userid = 2
OFI := FILTER orders BY o_orderdate = :par1;    // for u_userid = 3
...

Usually Highload-servers have few prepared SQL-statements 10-20. Also note that, as in MyISAM, there is not transactions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants