Skip to content

Instantly share code, notes, and snippets.

View JessicaGreben's full-sized avatar

Jessica G JessicaGreben

View GitHub Profile
@JessicaGreben
JessicaGreben / db-trace
Last active February 26, 2020 19:39
debug trace endpoint
From a production satellite:
1. Port forward from the pod
I=0; for API in $(kubectl -n satellite get pods | rg api | awk '{print $1}'); do I=$(($I+1)); kubectl -n satellite port-forward $API 5999$I:5999 & done
2. Hit the db trace debug endpoint
curl 127.0.0.1:5999{1,2,3}/debug/run/trace/db
3. Perform desired uplink operation, i.e. upload/download/etc
package main
// stringMatch returns a list of indexes of the starting positions of the
// matching substr, does not count overlapping matches.
// worst case runtime: len(str) * len(substr)
// pathological inputs would be a substr that doesn't matches but has many similar chars
// so that for every char in str we would iterate thru all chars in the substr
// ex: aaaaaaaaa, aaad
// typical performance len(str) plus however many occurrences of the matching first chars of substr
func bruteStringMatch(str, substr string) []int {
@JessicaGreben
JessicaGreben / bench_test.go
Last active January 25, 2020 17:11
insertion sort with tests and benchmarks
package main
import (
"math/rand"
"testing"
"time"
)
const (
random = 0
@JessicaGreben
JessicaGreben / qsort.go
Last active January 22, 2020 06:56
a quicksort implementation with some tests
package main
func quicksort(input []int) {
if len(input) < 2 {
return
}
// pivot is a pointer to the last item in the input array
pivot := len(input) - 1
$ cockroach sql --url 'postgres://postgres:<PW>@us-central1-352.gcp-us-central1.cockroachlabs.cloud:26257/satellite?sslmode=verify-full&sslrootcert=us-central1-ca.crt' --execute "select node_id, session_id, session_start, oldest_query_start, age(clock_timestamp(), oldest_query_start::timestamptz), substring(active_queries,0,50) as query from [show sessions] where oldest_query_start is not null order by oldest_query_start asc limit 10;"
node_id | session_id | session_start | oldest_query_start | age | query
+---------+----------------------------------+----------------------------------+----------------------------------+-----------------+---------------------------------------------------+
1 | 15ea0c2329edfa000000000000000001 | 2020-01-15 11:32:44.513491+00:00 | 2020-01-15 12:59:16.03245+00:00 | 02:53:43.354511 | INSERT INTO used_serials(serial_number_id, storag
1 | 15ea0c232b4c65570000000000000001 | 2
@JessicaGreben
JessicaGreben / metainfoschema.sql
Last active May 5, 2020 18:45
updated: 2020-05-05
CREATE TABLE pathdata (
fullpath bytea PRIMARY KEY,
metadata bytea NOT NULL
);
@JessicaGreben
JessicaGreben / constraints_fk.sql
Last active January 7, 2020 19:23
Foreign key constraints for satellite.DB up to version 73, ref: https://github.com/storj/storj/blob/master/satellite/satellitedb/migrate.go#L93
ALTER TABLE ONLY public.api_keys
ADD CONSTRAINT api_keys_project_id_fkey FOREIGN KEY (project_id) REFERENCES public.projects(id) ON DELETE CASCADE;
ALTER TABLE ONLY public.bucket_metainfos
ADD CONSTRAINT bucket_metainfos_project_id_fkey FOREIGN KEY (project_id) REFERENCES public.projects(id);
ALTER TABLE ONLY public.stripecoinpayments_apply_balance_intents
ADD CONSTRAINT fk_transactions FOREIGN KEY (tx_id) REFERENCES public.coinpayments_transactions(id) ON DELETE CASCADE;
CREATE TABLE accounting_rollups (
id bigserial NOT NULL,
node_id bytea NOT NULL,
start_time timestamp with time zone NOT NULL,
put_total bigint NOT NULL,
get_total bigint NOT NULL,
get_audit_total bigint NOT NULL,
get_repair_total bigint NOT NULL,
put_repair_total bigint NOT NULL,
at_rest_total double precision NOT NULL,
@JessicaGreben
JessicaGreben / nginx_prometheus_metrics.txt
Created July 22, 2018 01:02
Example list of nginx ingress controller prometheus metrics
$ curl <ip-of-nginx-ingress-controller-pod>:10254/metrics
# HELP cpu_seconds_total Cpu usage in seconds
# TYPE cpu_seconds_total counter
cpu_seconds_total 125.68
# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 1.9937e-05
go_gc_duration_seconds{quantile="0.25"} 2.5599e-05
go_gc_duration_seconds{quantile="0.5"} 2.8249e-05

Keybase proof

I hereby claim:

  • I am jessicagreben on github.
  • I am jessg (https://keybase.io/jessg) on keybase.
  • I have a public key ASDLj2rOEsgiyRt-zCbR7R8VERuHWl1JK6l2t2wsWL5thAo

To claim this, I am signing this object: