Skip to content

Category: Computer Science

Containers 101

It is helpful to remember that containers are just normal Unix processes with two special tricks.

Normal Unix Processes

Unix starts processes by performing a fork() system call to create a new child process. The child process still contains the same program as the parent process, so the parent processes program still has control over the child. It usually performs a number of operations within the context of the new child, preparing the environment for the new program, from within.

PID 17 forks, and creates a new process with PID 18. This process executes a copy of the original program.

Then, after the environment is complete, the parent program within the child processes context replaces itself by calling execve(). This system call unloads the current program in a process and reuses the process to load a new program into it.

Leave a Comment

Load, Load Testing and Benchmarking

(In order to be able to give up the test blog at blogspot.nl, I am moving content over)

So you have a new system and want to know what the load limits are. For that you want to run a benchmark.

Basic Benchmarking

The main plan looks like this:

The basic idea: Find a box, offer load, see what happens, learn.

You grab a box and find a method to generate load. Eventually the box will be fully loaded and you will notice this somehow.

Leave a Comment

What will become of Hangouts?

Last year in August we got the news that Google is hating us all. And by that I do not just mean the new and “improved” Google plus sans Hangout integration and Search, but also their announcement to kill Chrome Apps for no reason at all instead of fixing the independent restart and focus problems.

For Hangouts, that means we are left with hangouts.google.com. Which looks half Material Design and Half Gmail-Retro-Industrial. Also, the chat window is narrow, cannot be resized, and generally manages to transmit the vibe that Google has fired all UX and UI designers they never managed to talk to in the first place.

You can reach me on WhatsApp.

8 Comments

Post like it is 2015

Following a great idea from their friends at GitLab, Soup.io loses all postings since 2015 because of malfunctioning backups. They write:

We had a big database crash, and the backups we had were corrupted.
The only working backup was from 2015.

Also, TIL soup.io still exists. Meanwhile, Gitlab posted a blameless postmortem. You can read it online, and they write:

Improving Recovery Procedures

[…]
9. Automated testing of recovering PostgreSQL database backups (#1102)
[…]

Does your database backup successfully restore? Are you sure? Are you testing this?

Remember these words of wisdom:

Nobody wants backup.
Everybody wants restore.
— Martin Seeger

1 Comment

How can MySQL replicate? Let me count the ways

Percona Blog: MySQL Replication Overview

The Percona Blog has an Overview Of Different MySQL Replication Solutions. On top of the regular traditional Async Replication shown above, they also cover SemiSync, Group Replication, and Galera Cluster. Statement and Row Based Replication are contrasted.

Finally, “some misconceptions about replication” are being addressed, with “Replication is not a cluster”, “Replication is a HA solution”, “Replication replaces backups” and “Replication replaces Load Balancing”.

Leave a Comment

Hipsterdoom with Mongobingo

Felix Gessert does a postmortem of the failed Parse startup and product: “The AWS and MongoDB Infrastructure of Parse: Lessons Learned“.

Technical problem II: the real problem and bottleneck was not the API servers but almost always the shared MongoDB database cluster.

And that was with MongoRocks (Mongo on RocksDB) and replacing the initial app in Ruby with a Go implementation of said thing, with WriteConcern = 1, and other horrible presets. All in all, this is like the perfect nightmare of startup architecture decisions.

Felix closes pointing at his current project:

If this idea sounds interesting to you, have a look at Baqend. It is a high-performance BaaS that focuses on web performance through transparent caching and scalability through auto-sharding and polyglot persistence.

Bingo. Also, found the Hipster.

Leave a Comment

Using a blade center chassis to make Döner Kebap

I had the opportunity to play with a Blade Center Chassis with 16 Blades, each of them a Dual-E5 2690v4, so 56 threads (28 cores) times 16.

$ mkdir mprime; \
] cd mprime; \
] wget http://www.mersenne.org/ftp_root/gimps/p95v2810.linux64.tar.gz; \
] tar xvzf p95v2810.linux64.tar.gz; \
] ./mprime -m

running with “stress test only”, “mode 1 – small FFT” and 56 cores gets me quite a bit of power consumption.

Idle Blades is being reported as 140W, busy blades are 400W.

Images below the fold.

2 Comments

The 2017 web is bloated and slow, and I am guilty, too.

Dan Luu has been benchmarking the web, using Webpagetest and other means. Turns out we have given up on optimization – we are doing too many requests, have too many dependencies and our files are just too large.

This site is no exception.

If you are running on Dialup connection or 3G speeds, or add packet loss, everything goes to hell, and most things don’t even load any more.

Only blog.fefe.de soldiers on.

2 Comments