Skip to content

Instantly share code, notes, and snippets.

CREATE TABLE counters (
count_type INTEGER NOT NULL,
count_id INTEGER NOT NULL,
count INTEGER NOT NULL
);
-- later to fix the issue
ALTER TABLE counters ADD PRIMARY KEY (count_type, count_id);
CREATE TABLE primary_relation (
@drsnyder
drsnyder / counters.py
Created January 2, 2014 16:40
A simplified counters example with a deadlock issue. The SQL is here https://gist.github.com/drsnyder/8222047.
import os
import random
import time
import psycopg2
COUNTERS = 5
THREADS = 10
ITERATIONS = 500
def increment():
@drsnyder
drsnyder / upsert_test.py
Created December 21, 2013 00:28
upsert test
import os
import random
import time
import psycopg2
COUNTERS = 5
THREADS = 50
ITERATIONS = 100
def increment():
@drsnyder
drsnyder / correlation.R
Created December 14, 2013 01:24
explorations with correlation
# negative correlation x = seq(0,10,0.5)
fX = function(x) { return(x) }
fY = function(x) { return(-x) }
df = data.frame(x=x, fX=fX(x), fY=fY(x))
ggplot(df, aes(x=x)) + geom_line(aes(y=fX), color="green") + geom_line(aes(y=fY), color="blue")
cov(df$fX, df$fY)
cor(df$fX, df$fY)
fX = function(x) { return(x - 5) }
@drsnyder
drsnyder / click-rate-estimation.R
Created October 30, 2013 23:30
Click rate estimation.
# Aapproximation for the 95th % of clicks per minute given a 25k click rate per
# day from viglink.
# Assumes that the click rate follows an exponential distribution where
# the per-unit time we are using is 1min.
viglink.clickrate = 25000 # day
rate.min.u = viglink.clickrate/24/60 # min
print("rate per minute")
rate.min.u
# mean of exponential distribution is u = 1/lambda, lambda = 1/u
@drsnyder
drsnyder / baman.log
Last active December 26, 2015 19:29
Barman xlog corruption issue
2013-10-28 17:45:38,991 barman.server INFO: WAL retention policy for server db022: main
2013-10-28 17:45:39,219 barman.server INFO: Retention policy for server db018: RECOVERY WINDOW OF 3 DAYS
2013-10-28 17:45:39,219 barman.server INFO: WAL retention policy for server db018: main
2013-10-28 17:45:39,583 root ERROR: ERROR: Unhandled exception. See log file for more details.
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/barman-1.2.0-py2.6.egg/barman/cli.py", line 453, in main
p.dispatch(pre_call=global_config, output_file=_output_stream)
File "/usr/lib/python2.6/site-packages/argh-0.23.1-py2.6.egg/argh/helpers.py", line 47, in dispatch
return dispatch(self, *args, **kwargs)
File "/usr/lib/python2.6/site-packages/argh-0.23.1-py2.6.egg/argh/dispatching.py", line 121, in dispatch
@drsnyder
drsnyder / ca-wages.R
Created October 3, 2013 18:44
Process CA Wage Data. Data pulled from here http://publicpay.ca.gov/Reports/RawExport.aspx.
require(ggplot2)
require(reldist)
require(plyr)
# from http://publicpay.ca.gov/Reports/RawExport.aspx
# mv 2012_StateDepartment.csv 2012_ca_all.csv
# sed '1d' 2012_HigherEd-CAStateUniversity.csv >> 2012_ca_all.csv
options(width=1000)
allca = read.csv("2012_ca_all.csv", header=T)
@drsnyder
drsnyder / deadlock-postgresql-upsert.sh
Last active May 11, 2019 18:04
Deadlock postgresql upsert.
#!/bin/bash
#CREATE TABLE poky (
#bucket varchar(256) NOT NULL,
#key varchar(1024) NOT NULL,
#data text,
#created_at timestamptz NOT NULL DEFAULT NOW() CONSTRAINT created_at_utc_check CHECK (EXTRACT(TIMEZONE FROM created_at) = '0'),
#modified_at timestamptz NOT NULL DEFAULT NOW() CONSTRAINT modified_at_utc_ch
@drsnyder
drsnyder / testlockfile.py
Last active December 21, 2015 15:09
barman.lockfile test
import os
import multiprocessing
import time
import lockfile
STRING = "A" * 10
def parse(line):
a, b, s = line.split()
s = s.strip()
@drsnyder
drsnyder / freeze.sql
Created August 21, 2013 16:19
what tables are approaching the need for a freeze vacuum? below 70% should be safe
SELECT
freez::int,age(relfrozenxid) as txns,
ROUND(100*(age(relfrozenxid)::bigint/freez::float)) AS perc,
n.nspname as "schema"
, relname::text as "name"
FROM
pg_class c
LEFT JOIN pg_namespace n on n.oid = c.relnamespace
JOIN (SELECT setting AS freez FROM pg_settings WHERE name = 'autovacuum_freeze_max_age') AS foo
ON (true) WHERE relkind='r' order by perc ;