Understanding ACID transactions https://www.essentialsql.com/sql-acid-database-properties-explained/
Understanding CAP theorem https://towardsdatascience.com/cap-theorem-and-distributed-database-management-systems-5c2be977950e
| // src https://www.cs.cmu.edu/afs/cs/academic/class/15213-f99/www/class26/tcpserver.c | |
| // modified to show the impact of bind(2) v listen(2) on tcp connection as visible by netstat -atp | |
| /* | |
| * tcpserver.c - A simple TCP echo server | |
| * usage: tcpserver <port> | |
| */ | |
| #include <stdio.h> |
Understanding ACID transactions https://www.essentialsql.com/sql-acid-database-properties-explained/
Understanding CAP theorem https://towardsdatascience.com/cap-theorem-and-distributed-database-management-systems-5c2be977950e
| git log --pretty=format:"%h" <base branch>..<target branch> | xargs -I {} git diff-tree -v --name-status -r {} |
| /* | |
| we depend on the discipline List<T> have (or not) arround allocating arrays | |
| if you are dealing with known length then modify to have a cap parameter and pre allocate your List<T> | |
| */ | |
| using System; | |
| using System.Threading; | |
| using System.Collections.Generic; | |
| using System.Runtime.CompilerServices; |
don't do this at home!. This runs kernel 5.0.0 on Azure VM. The version itself is not certified yet to run on Azure.
Create VM on Azure follow https://docs.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-cli
ssh to your new machine
| <network> | |
| <name>kernel-net</name> | |
| <uuid>5618453a-d6af-42f5-b77d-eb1727371b73</uuid> | |
| <forward mode='nat'> | |
| <nat> | |
| <port start='1024' end='65535'/> | |
| </nat> | |
| </forward> | |
| <bridge name='kerneldevbr0' stp='on' delay='0'/> | |
| <mac address='42:ef:c9:0b:a4:f1'/> |
| # on a debian system | |
| # expects $1 as "<binary>:<package> <binary>:<package>" | |
| # example "qemu-img:qemu-utils nslookup:dnsutils" | |
| # if you are not sure which package has your binary | |
| # use apt-file search <binary name> | |
| # we don't handle error here. so make sure you are | |
| # using the correct binary and package names in design time | |
| ensure_tooling(){ | |
| local req_tools=($1) | |
| for tool in "${req_tools[@]}"; do |
| #Sources: | |
| # https://stackoverflow.com/a/28938235 | |
| # Reset | |
| Color_Off='\033[0m' # Text Reset | |
| # Regular Colors | |
| Black='\033[0;30m' # Black | |
| Red='\033[0;31m' # Red | |
| Green='\033[0;32m' # Green |
| # simple linux tracepoint parser that converts | |
| # /sys/kernel/debug/tracing/events/<sub sys>/<tracepoint>/format | |
| # into a meaningful json object for further processing. | |
| # each event is has subsystem, id, fields, fmt (original fmt in format file) | |
| # each field has name, size, is_array, array_size, is_pointer | |
| # stderr has max tracepoint record size, subsystem, name | |
| # run with `python linux_tracepoint_parser.py | jq` |
| #!/bin/bash | |
| # What is this: it creates vxlan across two hosts | |
| # does this need multicast on hosts: no, we are using the no learning approach | |
| # How: we are using static popluation of fdb and arp database. (we don't use l2miss or l3miss - maybe we try it on a different script) | |
| # What do i need: | |
| # two VMs running everywhere, as long as you can do udp between them. | |
| # modify host1/2 for host ips (your VMs) | |
| # modify ip1/ip2 and vip1/vip2 for your configuration. | |
| # the script connect to VMs via ssh. so make sure you have the keys handy | |
| # what can i use it for: VMs/Containers/funky networking. get creative |