Open andrii0lomakin opened 8 years ago
It looks like this work was worth it! Good job @laa.
Yes. Absolutely!!! Being web based content is basically the 5/95 scenario, getting about 3 times more performance is brilliant! Great work! :+1:
Scott
Hi,
a +1 also from me, I think we should target this for 3.0.
Bye
Hi @tglman I also thought about 3.0 but let discuss it closer to 3.0 release.
Reference:
https://github.com/orientechnologies/orientdb-labs/blob/master/OEP_9.md
Summary:
Use 16k pages for next versions of OrientDB by default
Goals:
Improve speed of read/writes operation by decreasing of default size of database page
Non-Goals:
Success metrics:
Improve numbers of performance benchmarks
Motivation:
If we decrease default size of cache page we decrease amplification of read and write operations.
Description:
According to our investigation during the database load:
All of this suggest do decrease page size from 64KB which is huge to 16 KB, which should increase a speed of random IO operations and should not affect or should improve the speed of write operations.
Let's check all those speculations by real YCSB benchmark. If we run following YCSB loads (mixed load (50% writes, 50% reads), mostly read load (5% writes, 95% reads), read only load (100% of reads)) in case page sizes are 16 KB and 64 KB we get following results:
Load of data
64k pages
Total time: 18 hrs 32 mins 59.659 secs = 66 721 secs
16k pages
Total time: 11 hrs 31 mins 58.591 secs = 41 461 secs
Performance gain - 16k pages 1.61 times faster on load
Mixed load 50% of writes, 50% of reads
64k pages
Thoroughput = 3494 op/secs
Thoroughput = 1 088 op/secs
16k pages
Thoroughput = 6668 op/secs
Thoroughput = 1 587 op/secs
Performance gain - read throughput is improved at 1.9 times, read latency is improved at 14 times !, write throughput is improved at 1.45 times, write latency is improved at 26 times !
Read mostly load 5% writes, 95% reads
64k pages
Thoroughput = 3 421 op/secs
Thoroughput = 10 767 op/secs
16k pages
Thoroughput = 3 210 op/secs
Thoroughput = 14 288 op/secs
Performance gain: write throughput is almost the same, write latency is improved at 2.6 times. Read throughput 1.32 times better, read latency is improved at 3.26 times.
Read only workload
64k pages
Thoroughput = 16 538 op/secs
16k pages
Thoroughput = 30 327 op/secs
Performance gain - read throughput 1.8 times better, read latency is improved at 2.2 times
Alternatives:
Risks and assumptions:
Maximum key size will be decreased from 10240 to about 5120
Impact matrix