Me to prijde ze nevite co delate... rekneme ze 10*256 + 10*5000(cca) = 50KB na radek x 400M = 20 TB dat.
(3K dotazu nad 50K radky dela cca 150MB/s traffic, cca)
V cem by vam melo pomoct 64GB ram jako? :))
Nejspis vam ten index nefunguje tak, jak si predstavujete, a nejdrazsi operace nad 400M index stromem bude patrne insert s rebalancingem indexu.
Osobne bych to resil rozdelenim na 256 az 4K tabulek, tj. spocital 8 az 12-bit hash vaseho primarniho klice, a pak dale operoval nad danou tabulkou, ktera bude mit 1.5M az 100K radku kazda, kde ten prepocet indexu po insertu nebude tak drahej.
Nasledne si udelejte benchmark, kolik jakych operaci jste schopen provest nad tou mini-tabulkou na 1 cpu jadru a 1 disku. Vyjde vam ze treba 100 cteni, 50 updatu, nebo 20 insertu. Z toho vidite ze potrebujete pro 1K dotazu 10 R cpu, 20 U cpu, 50 I cpu, dohromady 10+20+50 = 80 jader.
Bottleneck u storage nejspis nebude, pokud tech 20T udelate nad SSD, ale to zjistite az udelate mereni vykonu s daty ktere predstavuji realny use-case.
Reseni je tedy iterativni... postavit, nasimulovat, zmerit, opravit, a znova.