Hát, a kép értelmezésébe én nem mennék bele. "De viszont ellenben" találgatások helyett megnéztem mit írt a gyorsulás miértjéről az egyik autentikusnak tekinthető versenyző, bizonyos Avi Kivity (Cassandra Summit 2015 ) :
Seastar uses shared-nothing data structures that eliminate costly locking between CPUs, and a dedicated user-space TCP implementation that runs on DPDK. These radical changes in the server design translate into 5X-10x performance gain while preserving all of the Cassandra goodies.
A lassabb valtozat minden lekerdezest szekvencialisan sorbaallit. (aztan persze a sorbaallitott feladatokon belul thread-ezhet, viszont azzal az 1millio keres/sec-tol megtavolabb esne, az inkabb nagy keresekhez jo)
A gyorsabb valtozat, meg parhuzamosan szolgalja ki az egyes alkalmazasokat. Ehhez nyilvan kulon foglalkozniuk kellett azzal, hogy az egymassal kapcsolatban/konfliktusban levo lekerdezeseket kiszurják es azokat megiscsak szekvencialisan hajtsak vegre, de amely muveleteket lehet parhuzamosan is feldolgozni, azokat ugy csinaljak. Ez lehetett itt a nagy melo szerintem, ez az extra logika, ami egyaltalan lehetove tette a parhuzamos mukodest.
Multicore? Tudtommal a java is ismeri a thread fogalmát....(ellenőrizhető a cassandra source-ában) Nyilván itt többről van szó, mint egyszerű átírás. A jó szerszám (c++14) jó kezekben elsőre sokkal jobbat tudott alkotni, mint a legalább 4 éves előnnyel indult csapat. Tényleg szép teljesítmény, ha igaz.
Jaja, előbb átírták C++-ra, ebből lett mondjuk 1.5x-es sebesség, majd megcsinálták a multicore verziót, és az hozta a 6x-os sebességet. Ettől függetlenül dicséretes.
Amúgy a Scylla akár másodpercenkénti 1 millió feletti tranzakciószámát osztva a Cassandra néhány százezres eredményével nálam csak saccperkábé 3.5x-es sebességnövekedésre jön ki, de lehet hogy az én gépemben van a hiba.