package main
/* Билеты по Проектированию Высоко нагруженных систем
- В этом конспекте нет автоматической грамматической проверки
- Он написан для личного пользования, исключительно для подготовки к экзамену
package main | |
import ( | |
"bufio" | |
"fmt" | |
"net" | |
"net/http" | |
"net/url" | |
"crypto/tls" |
package main
/* Билеты по Проектированию Высоко нагруженных систем
This recipe is a work in progress and has never been run as-is.
This SQL creates a Postgres function to generate sequential, numeric, unique IDs in a consistent format across services. Useful for database sharding or microservices.
Draws heavily on Instagram's ID generator, via Rob Conery, with minor modifications.
The main changes are that the unique number resolution is per-second rather than per-millisecond. This is to reduce key size below 2^53^-1 so that generated IDs that are under Javascripts Number.MAX_SAFE_INTEGER
limit . This is important if you're using these on a Node.js server (e.g. our use case is an Express API using Hashids).
Max IDs are in the order of 51 bits, broken down as follows:
-- show running queries (pre 9.2) | |
SELECT procpid, age(clock_timestamp(), query_start), usename, current_query | |
FROM pg_stat_activity | |
WHERE current_query != '<IDLE>' AND current_query NOT ILIKE '%pg_stat_activity%' | |
ORDER BY query_start desc; | |
-- show running queries (9.2) | |
SELECT pid, age(clock_timestamp(), query_start), usename, query | |
FROM pg_stat_activity | |
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%' |
import timeit | |
import asyncio | |
import contextlib | |
import requests | |
from aiohttp import ClientSession | |
from web3.providers.base import JSONBaseProvider | |
from web3.providers import HTTPProvider | |
from web3 import Web3 |
def get_count(q): | |
count_q = q.statement.with_only_columns([func.count()]).order_by(None) | |
count = q.session.execute(count_q).scalar() | |
return count | |
q = session.query(TestModel).filter(...).order_by(...) | |
# Slow: SELECT COUNT(*) FROM (SELECT ... FROM TestModel WHERE ...) ... | |
print q.count() |
import itertools | |
a = 'a' | |
b = 'b' | |
c = 'c' | |
participant = [a,b,c] | |
payments = { |
#!/usr/bin/env python | |
# liuw | |
# Nasty hack to raise exception for other threads | |
import ctypes # Calm down, this has become standard library since 2.5 | |
import threading | |
import time | |
NULL = 0 |