[MariaDB] Zwiększenie wydajności InnoDB

0

Witam,
Jestem w trakcie tworzenia własnej bazy blockchain na dysku z użyciem pakietu bitcoin-abe.
Z dostępnych opcji zdecydowałem się działać z wykorzystaniem InnoDB i jestem już po dziesięciu dniach działania , co na tą chwile daje przetworzonych 412435 bloków ze wszystkich 577427 bloków.
Mając na uwadze świadomość, że początkowe bloki ważyły kilka KB, a przede mną najcięższe i najbardziej obfite w dane bloki - chciałbym się dowiedzieć czy zna ktoś jakieś magiczne ustawienia konfiguracyjne które pozwoliłyby mi zwiększyć wydajność procesu zapisu danych do mojej lokalnej bazy InnoDB?

Mój sprzęt:

CPU: iNTEL Core i3-8100 3,60GHz
RAM: 24GB
SSD: M.2 PCIe Corsair MP510 1TB (prędkość odczytu 3480MB/s / zapisu 3000MB/s)

Konfiguracja "abe" jest następująca: pełny blockchain jest zsynchronizowany do najnowszego bloku na dysku lokalnym. "Abe" odczytuje dane z plików bloków i wprowadza je do bazy umieszczonej na tym samym dysku lokalnym. Obecna konfiguracja my.ini (stworzona ze strżepkowych danych pozbieranych z setek miejsc):

[mysqld]
datadir=B:/MariaDB/data
port=3306
innodb_io_capacity=4000
innodb_read_io_threads=2
innodb_write_io_threads=4
innodb_buffer_pool_size=15360M
innodb_buffer_pool_load_at_startup=ON
innodb_log_file_size = 32M
innodb_log_files_in_group=2
innodb_file_per_table=1
innodb_log_buffer_size=8M
innodb_flush_method=O_DIRECT
innodb_flush_log_at_trx_commit=0
skip-innodb_doublewrite
character-set-server=utf8
[client]
port=3306
plugin-dir=B:/MariaDB/lib/plugin

Dla zobrazowania jak "szybko" trwa proces odczytu/zapisu na obecnym etapie - na moment obecny - od podanej wcześniej wartości przetworzonych bloków do czasu końca pisania tego posta - przetworzonych jest 412614 bloków, a więc zaledwie 179 :)
Pozdrawiam

0

Nie wiem czy to dobry pomysł, aby blockchain trzymać w InnoDB, które samo z siebie dba o konsystencje danych (kosztem wydajności). W blockchaine IMO konsystencji tej rozproszonej bazy pilnują inne nody, więc jak już musisz to SQLizować, to próbuj z jakimś MyISAM czy czymś jeszcze prostszym, co będzie najmniej się "wtrącać" w ten proces.

0
TurkucPodjadek napisał(a):

Nie wiem czy to dobry pomysł, aby blockchain trzymać w InnoDB, które samo z siebie dba o konsystencje danych (kosztem wydajności). W blockchaine IMO konsystencji tej rozproszonej bazy pilnują inne nody, więc jak już musisz to SQLizować, to próbuj z jakimś MyISAM czy czymś jeszcze prostszym, co będzie najmniej się "wtrącać" w ten proces.

Ogólnie rzecz biorąc potrzebuję to mieć lokalnie, abe potem później móc bez limitu generować zapytania (omijając ograniczenia i API blockchain). Na tym etapie tak czy inaczej nie mam już odwrotu i muszę pozostać przy bieżącym engine.

1 użytkowników online, w tym zalogowanych: 0, gości: 1