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 - 46 total

Transactional task outbox in Django with django-taskq

We have given up on distributed transactions (2PC) but have not given up working with multiple...

Learn More 0 0Jul 7

A Philosophy of Software Design

In a world full of Uncles Bob be John Ousterhout More of method length, comment and TDD discussion...

Learn More 0 0Jul 7

Serializable isolation level and transaction processing

While on the topic of On-Line Transaction Processing Benchmarks, it’s interesting to observe the...

Learn More 0 0Jul 7

A broker-less distributed messaging system from the previous century

When examining the On-Line Transaction Processing Benchmark, most people focus on the performance...

Learn More 0 0Jul 7

My Friday's "old man yells at cloud" moment

Casey Muratori had this to say: You should never take library design advice from anyone who hasn’t...

Learn More 0 0Jul 7

Python JSON encoder apples and oranges and making it faster

There are several JSON library benchmarks like this one where the built-in Python json library is not...

Learn More 0 0Jul 7

Ledgers are simple, stop spreading FUD!

When you do need thousands and tens of thousands of transactions per second, TigerBeetle is there for...

Learn More 0 0May 10

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