Last commit made on 2022-06-23
Get this branch:
git clone -b kakurin_sampling

Branch merges

Branch information


Recent commits

074c211... by Nikita Malyavin

sampling analysis

for l in file:
     if l.startswith('SAMPLE') and not l.startswith('SAMPLE root'):
         n = dict((p.split('=')
           for p in l.replace('SAMPLE ', '').replace(' REJECT', '').split()
         if 'REJECT' in l:

max(int(n['size']) for n in nodes)
max((float(n['p']), serialize(n)) for n in nodes)
max((float(n['size']), serialize(n)) for n in nodes if n['height'] == '0')

69af61a... by Nikita Malyavin

report sampling buckets

c378f71... by Nikita Malyavin

Mtr profiling setup

A complete generated table fixture was added. Unfortunately, imported
tables behave bad in innodb. They are subject for checksumming on and on,
so it's better to ALTER TABLE FORCE them before actually profiling.

Put vehicle_reg.ibd in mysq-test/std_data. (cant push it; too large)
./mtr --mem main.profile
It will emit notice, that you should rerun it with --start-dirty.
Wait ~two minutes.
Check that var/mysqld.1 directory is there. If not,
it was archived by mtr. Run:
mv var/log/main.profile-innodb/mysqld.1 var

Now rerun with the dirty dir:
./mtr main.profile --start-dirty --vardir=`pwd`/var --suite=main
You can add --gprof to collect the profiling data.
Make sure you've compiled mariadbd with -DWITH_GPROF=1.
Open gprof.msg and navigate to Call graph.
Dont use IDE to open! The file is huge. Vim/emacs is best, but maybe
sublime would work, too.

2312be2... by Vladislav Kakurin

add tablesample bernoulli() syntax

82657dc... by Vladislav Kakurin

add reject count

2425c61... by Vladislav Kakurin

add awful but working sampling method selection

e88ce8c... by Vladislav Kakurin

psergey's patch

d58425d... by Vladislav Kakurin


0bbdd40... by Vladislav Kakurin


9dc03d0... by Vladislav Kakurin

change A/R flag to explicit, semantic fixs