On my previous post I have shown how to investigate particular function execution, actually I've just borrowed a ready to use piece of code here: Profiling with perf In this post you will see how to go much deeper Let's consider this fuction ExecInitSeqScan as an example You can see this function exported in ../gpdb/src/include/executor/nodeSeqscan.h … Continue reading Using perf to analyze any(almost) internal gpdb functions
Capture all GPDB SQLs by means of perf utility
I decided to play around a bit with perf utility for debugging greenplum internals First of all you need to install perf itself as sudo yum install perf Then to use some comprehensive features I need to recompile GPDP with debug enabled (I'll try to strip debuginfo as a separate file on one of following … Continue reading Capture all GPDB SQLs by means of perf utility
Greenplum installation on CentOS 7 from source code
Recently I decided to install a popular MPP database Greenplum from"scratch" on some cloud env (http://cloud.yandex.ru). Compiler First of all you would need a "modern" C-compiler and tools, so: sudo yum install centos-release-scl sudo yum install devtoolset-9-gcc* SCL stands for "software collection". You can initialize the collection of your choice as following: scl enable devtoolset-9 … Continue reading Greenplum installation on CentOS 7 from source code
Ideal CPU eater with connect by
It is a common knowledge that huge "connect by" can lead to some kind of out of memory exception. However there is some variant of similar issue that consumes almost zero PGA/TEMP please see below: select distinct id from (select id from (select 1 id from dual union all select 2 from dual union all … Continue reading Ideal CPU eater with connect by
Function call arguments representation , in CPU registries
$rdi - 1st argument $rsi - 2nd argument $rdx - 3nd argument $rcx - 4th argument $rax - return value
Oracle FGA internals (Part 4).Complex (column) expression.
On a previous post we considered a case of FGA set for some quite simple condition. Let's set up a new scene for further experimentation/ideation. Clean up old policies and set a new one (that includes condition on the table column/s) begin dbms_fga.drop_policy(object_schema =>'FGA_OWNER' , object_name => 'TBL_FGA', policy_name =>'TBL_FGA' ); end; / begin dbms_fga.add_policy(object_schema … Continue reading Oracle FGA internals (Part 4).Complex (column) expression.
Oracle FGA internals (Part 3). More complex but still simple condition.
On my previous post we stopped at comparison of noaudit case with a very basic FGA audit setting (actually kind of "No OPeration"). Today I am going to consider slightly more complex case. Let's clean up our audit 1st begin dbms_fga.drop_policy(object_schema =>'FGA_OWNER' , object_name => 'TBL_FGA', policy_name =>'TBL_FGA' ); end; / and set up a … Continue reading Oracle FGA internals (Part 3). More complex but still simple condition.
Oracle FGA internals (Part 2). Simple audit condition.
On my previous post we have set the scene up and raised a couple of questions. Let's start with our new agenda, I have connected to my Oracle session via GDB (debugger). Like gdb -p 12345 and set up a few break points (inside Oracle's codebase) b opifch b selexe0 b expeal Where opifch - … Continue reading Oracle FGA internals (Part 2). Simple audit condition.
Oracle FGA internals (Part 1)
Oracle FGA stands for Fine Grained Audit, see for instance here: Official docs or here: Tim Hall's oracle-base site The main question (or concern) for my use case was how switching on FGA on some object/objects may affect executions of queries from an application itselfs that should not be audited. Let's start setting up the … Continue reading Oracle FGA internals (Part 1)
Terminator to Vagrant box connection
I have the following config piece in my Vagrant file: config.ssh.host = '192.168.1.201' config.vm.network "forwarded_port", id: "ssh", host_ip: "192.168.1.201", guest: 22, host: 25 config.ssh.host port to be used by internal Vagrant ssh config.vm.network "forwarded_port" - VM's port forwarding settings. to connect to this Vagrant box from popular Terminator ssh client I need to point out … Continue reading Terminator to Vagrant box connection