Aivars Kalvāns

Aivars Kalvāns @aivarsk

About: Making the world a better place through minimal message-oriented transport layers

Location:
Jelgava, Latvia
Joined:
Apr 15, 2020

Aivars Kalvāns
articles - 39 total

Making sense of card range query EXPLAIN plans

I was listening to a talk about finding a PAN in a haystack and this slide came up with performance...

Learn More 0 0Mar 18

The COST of double-entry accounting

Sometimes I think the most important paper of our times is Scalability! But at what COST?We build...

Learn More 0 0Mar 14

bpftrace username and the openat system call

Once again I am playing with eBPF and bpftrace. This time I am trying to trace all file access....

Learn More 0 0Mar 14

The O of SOLID

Wikipedia says that O stands for: | Open–closed principle: “Software entities … should be open for...

Learn More 0 0Sep 30 '24

The S of SOLID

So many people throw SOLID around as the unquestionable truth that I decided to dig a bit deeper and...

Learn More 0 0Sep 19 '24

Listing SystemV IPC queues

The correct way to list the queues on the Linux machine is by using the ipcs -q command. However, I...

Learn More 0 0Sep 19 '24

Monitoring Oracle Tuxedo with Linux eBPF

I have built several scripts for monitoring Oracle Tuxedo over the years. Most relied on the tmtrace...

Learn More 0 0Sep 19 '24

Optimizing Python application's Docker image with strip

I was going through some Docker images of large applications and looking at the layer sizes with...

Learn More 0 0Dec 4 '23

Accounting systems before TigerBeetle

TigerBeetle is an interesting project to follow. It links to interesting papers, it challenges...

Learn More 0 0Dec 4 '23

Today I Learned... WTF, Kafka?

I was reading about offset retention and was mentally prepared for losing consumer offsets when the...

Learn More 0 0Dec 4 '23

Running your pytests faster

Open your conftest.py and type the following lines: import gc # Like gc.disable() but overrides...

Learn More 0 0Jan 12 '23

How I made `json.dumps` ~20% faster

My journey to understand the performance and concurrency of FastAPI services lead me to the Python...

Learn More 0 0Oct 4 '22

FastAPI and cooperative multi-threading pt. 2

After finding a good enough solution for FastAPI and cooperative multi-threading issues, a part of me...

Learn More 1 0Aug 11 '22

Idle HTTP connections in Scala on Kubernetes

Both the HTTP client (Scala) and HTTP server (Python) are running in Kubernetes. Depending on the...

Learn More 6 0Jan 22 '22

FastAPI and cooperative multi-threading

Cal Paterson wrote a great article comparing and describing synchronous and asynchronous Python...

Learn More 11 0Jan 21 '22

Optimizing Kafka producers for latency

TL;DR Don’t forget to set socket.nagle.disable=True to disable Nagle’s algorithm The code I am...

Learn More 3 0Nov 1 '21

Inspecting Python functions

I have a piece of C++ code that calls user-defined functions implemented in Python. Instead of...

Learn More 1 0Nov 1 '21

The hitchhiker's guide to the tpcall flags

Oracle Tuxedo documentation of the tpcall function describes (mostly) the high-level behavior of the...

Learn More 0 0Nov 3 '21

Tracing msgrcv with ltrace

ltrace is a tool for tracing dynamic library calls. I use it from time to time and this time I needed...

Learn More 0 0Nov 1 '21

Fchg32 is the Swiss Army knife of Tuxedo FML32

FML32 is Oracle Tuxedo buffer type similar to std::multimap in C++ or multidict in Python where the...

Learn More 0 0Nov 3 '21

Debugging Boolean Expressions of Fielded Buffers

I described the SIGFPE bomb of Boolean Expressions before. Going through the list of the C functions...

Learn More 0 0Nov 3 '21

Making sense of Tuxedo's SCANUNIT, SANITYSCAN, and BLOCKTIME

Time accounting is strange in Oracle Tuxedo. First, there is the SCANUNIT parameter which must be a...

Learn More 0 0Nov 3 '21

Oracle Tuxedo MSSQ vs. SSSQ

Servers in Oracle Tuxedo can be configured either in Multiple Servers - Single Queue (MSSQ) setup or...

Learn More 0 0Nov 3 '21

Boolean Expressions of Fielded Buffers

Oracle Tuxedo has the Fboolev32 function for evaluating Boolean expressions in which the “variables”...

Learn More 0 0Nov 3 '21

Tracking Oracle Tuxedo file transfer

Oracle Tuxedo uses System V IPC message queues for sending messages between processes. These queues...

Learn More 0 0Nov 3 '21

A Prometheus exporter of Tuxedo metrics

Now that my book about Oracle Tuxedo is completed, I can work on some code that did not make it into...

Learn More 0 0Nov 3 '21

Oracle Tuxedo queues illustrated

I did investigate tpacall() before and you can find more details there. But this time I had to...

Learn More 0 0Nov 1 '21

tmshutdown and MSSQ

A server waits for a new incoming service call by using msgrcv() system call on IPC queue. The call...

Learn More 0 0Nov 3 '21

tpacall(3c) and XA transactions

Oracle Tuxedo allows us to develop transactional service-oriented (or microservice) applications...

Learn More 0 0Nov 3 '21

Java hates TABs!

Today I Learned one more thing for “tabs versus spaces” debate: Java hates tabs. Turns out Java...

Learn More 0 1Nov 1 '21