Skip to content

Instantly share code, notes, and snippets.

View superstructor's full-sized avatar

Isaac Johnston superstructor

View GitHub Profile
@PhilipSchmid
PhilipSchmid / ubuntu-1804-lacp-bonding.md
Last active January 31, 2023 20:48
Ubuntu 18.04 LACP Network Interface Bonding

Interface bonding

Configure a LACP active network interface bonding on Ubuntu 18.04 using netplan:

root@srv01:~# mv /etc/netplan/50-cloud-init.yaml /etc/netplan/01-netcfg.yaml
root@srv01:~# cat /etc/netplan/01-netcfg.yaml 
network:
    version: 2
    renderer: networkd
 ethernets:
@saurabhnanda
saurabhnanda / tuning-postgres-zfs.md
Last active August 2, 2023 06:06
Tuning Postgres + ZFS

Tuning ZFS + Postgres to outperform EXT4 + Postgres

Please refer to ZFS 2-3x slower than EXT4 to see how ZFS defaults + Postgres defaults severely underperform EXT4 defaults + Postgres defaults (and also to know more about the system on which these benchmarks were performed). This page documents how to tune ZFS + Postgres to give better performance for the tpcb-like benchmark.

BIG FAT WARNING

Please do not copy these settings blindly because I am myself not clear on why/how these settings had the impact they did. For example, I cannot explain why full_page_writes=off independently did not give that much boost, nor did an optimized PG configuration. However, putting both of them together gave a 2-4x boost compared to baseline numbers.

Benchmark results

@jkrasnay
jkrasnay / re-frame-subs.adoc
Last active June 17, 2022 08:59
Re-frame Subscription Helpers

Re-frame Subscription Helpers

There are a couple of common problems with Re-frame subscriptions that I’d like to solve:

  1. Because subscriptions are registered via keywords, the ClojureScript compiler does nothing to help check that we haven’t made a typo when subscribing.

  2. We often need to use the same logic to access a value in the app DB in both a subscription and in events.

I’ve come up with the following structure. First we create the accessor function, which can be used by both the subscription and any events. (This of course implies that the namespace where we implement our events must refer to the namespace where we define our subscriptions.)