SlideShare a Scribd company logo
1 of 40
Download to read offline
www.postgrespro.ru
РАЗДЕЛЯЕМАЯ ПАМЯТЬ И
БЛОКИРОВКИ
Hacking PostgreSQL
21.04.2016
2
Содержание
1.Разделяемая память (shared memory)
2.Блокировки
3.Стратегии замещения
3
Память в PostgreSQL
4
Разделяемая память
src/include/storage
src/backend/storage/ipc
dsm.c procsignal.c shmqueue.c sinval.c dsm_impl.c
ipc.c procarray.c hm_mq.c sinvaladt.c ipci.c
pmsignal.c shmem.c shm_toc.c standby.c
src/backend/storage/buffer
buf_init.c bufmgr.c buf_table.c freelist.c localbuf.c
src/backend/storage/lmgr
deadlock.c lmgr.c lock.c lwlock.c s_lock.c
spin.c lwlocknames.c predicate.c proc.c
src/backend/port
5
Создание разделяемой памяти
src/backend/storage/ipc/ipci.c
CreateSharedMemoryAndSemaphores()
PGSharedMemoryCreate()
PGReserveSemaphores()
CreateLWLocks();
InitShmemIndex();
InitBufferPool();
InitLocks();
CreateSharedProcArray();
...
/*
* Now give loadable modules a chance to set up their shmem allocations
*/
if (shmem_startup_hook)
shmem_startup_hook();
6
System V, POSIX, mmap()
src/include/storage/pg_shmem.h
src/backend/port/sysv_shmem.c
PGSharedMemoryCreate()
CreateAnonymousSegment(&size);
InternalIpcMemoryCreate(NextShmemSegID, sysvsize);
typedef struct PGShmemHeader
{
int32 magic; /* magic # to identify Postgres segments */
#define PGShmemMagic 679834894
pid_t creatorPID; /* PID of creating process */
Size totalsize; /* total size of segment */
Size freeoffset; /* offset to first free space */
dsm_handle dsm_control; /* ID of dynamic shared memory control seg */
void *index; /* pointer to ShmemIndex table */
#ifndef WIN32 /* Windows doesn't have useful inode#s */
dev_t device; /* device data directory is on */
ino_t inode; /* inode number of data directory */
#endif
} PGShmemHeader;
7
Структуры данных
src/include/storage/shmem.h
src/backend/storage/ipc/shmem.c
src/backend/storage/ipc/shmqueue.c
ShmemInitStruct()
ShmemInitHash()
SHMQueueInit()
8
ShmemIndex
src/backend/storage/ipc/shmem.c
/* primary index hashtable for shmem */
static HTAB *ShmemIndex = NULL;
/* this is a hash bucket in the shmem index table */
typedef struct
{
char key[SHMEM_INDEX_KEYSIZE]; /* string name */
void *location; /* location in shared mem */
Size size; /* # bytes allocated for the structure */
} ShmemIndexEnt;
9
Разделяемая память
10
Shared buffers
src/include/storage/buf_internals.h
src/backend/storage/buffer/buf_init.c
InitBufferPool()
11
pg_buffercache
CREATE EXTENSION pg_buffercache;
select* from pg_buffercache limit 1;
bufferid | 1
relfilenode | 1262
reltablespace | 1664
reldatabase | 0
relforknumber | 0
relblocknumber | 0
isdirty | f
usagecount | 5
pinning_backends | 0
12
pg_buffercache
pgbench -i -s 200 $DBNAME
pgbench -S -c 8 -t 25000 $DBNAME
shared_buffers | size
----------------+--------
16384 | 128 MB
database_size
---------------
2998 MB
13
pg_buffercache
SELECT c.relname, count(*) AS buffers
FROM pg_class c
INNER JOIN pg_buffercache b
ON b.relfilenode=c.relfilenode
INNER JOIN pg_database d
ON (b.reldatabase=d.oid AND d.datname=current_database())
GROUP BY c.relname
ORDER BY 2 DESC
LIMIT 10;
relname | buffers
---------------------------------+---------
pgbench_accounts | 8256
pgbench_accounts_pkey | 7995
pg_amop | 5
pg_operator_oprname_l_r_n_index | 4
pg_operator | 4
pg_index | 3
pg_amop_opr_fam_index | 3
pg_amop_fam_strat_index | 3
pg_amproc_fam_proc_index | 3
pg_opclass | 3
14
pg_buffercache
SELECT usagecount,count(*),isdirty
FROM pg_buffercache
GROUP BY isdirty,usagecount
ORDER BY isdirty,usagecount;
usagecount | count | isdirty
------------+-------+---------
0 | 8063 | f
1 | 7819 | f
2 | 207 | f
3 | 18 | f
4 | 29 | f
5 | 245 | f
2 | 2 | t
5 | 1 | t
15
pg_buffercache
SELECT c.relname, pg_size_pretty(count(*) * 8192::bigint) as buffered,
round(100.0 * count(*) /
(SELECT setting FROM pg_settings WHERE
name='''shared_buffers''')::integer,1)
AS buffers_percent,
round(100.0 * count(*) * 8192 / pg_relation_size(c.oid),1)
AS percent_of_relation
FROM pg_class c
INNER JOIN pg_buffercache b
ON b.relfilenode = c.relfilenode
INNER JOIN pg_database d
ON (b.reldatabase = d.oid AND d.datname = current_database())
GROUP BY c.oid,c.relname
ORDER BY 3 DESC
LIMIT 10;
relname | buffered | buffers_percent | percent_of_relation
-----------------------+------------+-----------------+---------------------
pgbench_accounts | 64 MB | 50.3 | 2.5
pgbench_accounts_pkey | 62 MB | 48.7 | 14.6
16
pg_buffercache
SELECT c.relname, count(*) AS buffers, usagecount
FROM pg_class c
INNER JOIN pg_buffercache b
ON b.relfilenode = c.relfilenode
INNER JOIN pg_database d
ON (b.reldatabase = d.oid AND d.datname = current_database())
WHERE c.relname LIKE '''pgbench%'''
GROUP BY c.relname,usagecount
ORDER BY c.relname,usagecount;
relname | buffers | usagecount
-----------------------+---------+------------
pgbench_accounts | 4235 | 0
pgbench_accounts | 3980 | 1
pgbench_accounts | 28 | 2
pgbench_accounts_pkey | 3833 | 0
pgbench_accounts_pkey | 3788 | 1
pgbench_accounts_pkey | 161 | 2
pgbench_accounts_pkey | 3 | 3
pgbench_accounts_pkey | 1 | 4
pgbench_accounts_pkey | 193 | 5
17
pg_buffercache
shared_buffers | size
----------------+--------
16384 | 128 MB
relname | buffered | buffers_percent | percent_of_relation
-----------------------+------------+-----------------+---------------------
pgbench_accounts | 64 MB | 50.3 | 2.5
pgbench_accounts_pkey | 62 MB | 48.7 | 14.6
shared_buffers | size
----------------+---------
262144 | 2048 MB
relname | buffered | buffers_percent | percent_of_relation
-----------------------+------------+-----------------+---------------------
pgbench_accounts | 1180 MB | 57.6 | 46.1
pgbench_accounts_pkey | 418 MB | 20.4 | 97.5
18
Блокировки
19
Pins & Locks
●
Pin – счетчик ссылок
– state.refcount
– PinBuffer()/ UnpinBuffer()
20
Pins & Locks
●
BufferContentLock – блокировка содержимого буфера
– LWLock
21
Блокировки
●
Блокировки на уровне объектов БД (heavy-weight locks)
– pg_locks, pg_stat_activity
– определение дедлоков
– освобождаются в конце транзакции
●
LWLocks (lightweight locks)
– блокировки на чтение/запись (shared/exclusive) для структур в
разделяемой памяти
– нет определения дедлоков
– блокируют query_cancel() и die()
●
Spinlocks
– в основном инфраструктура для LWLocks
– TAS (test-and-set) инструкции процессора
– блокируют query_cancel() и die()
22
Блокировки
src/backend/storage/lmgr/README
●
Блокировки на уровне объектов БД (heavy-weight locks)
– src/backend/storage/lmgr/lmgr.c
– src/backend/storage/lmgr/lock.c
●
LWLocks (lightweight locks)
– src/backend/storage/lmgr/lwlock.c
●
Spinlocks
– src/backend/storage/lmgr/spin.c – эмуляция через семафоры
– src/backend/storage/lmgr/s_lock.c
23
Улучшения в 9.6
●
Allow Pin/UnpinBuffer to operate in a lockfree manner
– PostgreSQL на многоядерных серверах Power 8
●
Provide much better wait information in pg_stat_activity
– Мониторинг ожиданий в PostgreSQL
– Интерфейс ожиданий в PostgreSQL
– Monitoring Wait Events in PostgreSQL 9.6. pg_wait_sampling
– pg_stat_* documentation
24
Обычная стратегия замещения
src/backend/storage/buffer/freelist.c
Основано на презентации
“Illustrated guide to the buffer cache”, Selena Deckelmann
25
Обычная стратегия замещения
BufferAlloc('base/tbl', 13);
26
Обычная стратегия замещения
BufferAlloc('base/tbl', 13);
27
Обычная стратегия замещения
BufferAlloc('base/tbl', 118);
28
Обычная стратегия замещения
BufferAlloc('base/tbl', 118);
29
Обычная стратегия замещения
BufferAlloc('base/tbl', 118);
30
Обычная стратегия замещения
BufferAlloc('base/tbl', 118);
31
Обычная стратегия замещения
BufferAlloc('base/tbl', 118);
32
Background writer
●
bgwriter_delay (integer)
●
bgwriter_lru_maxpages (integer)
●
bgwriter_lru_multiplier (floating point)
●
bgwriter_flush_after (int) 9.6
33
Обычная стратегия замещения
BufferAlloc('base/tbl', 118);
34
Специальная стратегия
замещения
src/include/storage/bufmgr.h
●
SeqScan
– 256 KB
– Вытесняет dirty buffers в общее кольцо
●
VACUUM
– 256 KB
– Ожидает записи WAL на диск
●
BulkWrite (COPY IN, CREATE TABLE AS SELECT)
– 16 MB
– Ожидает записи WAL на диск
●
Возможно стоит использовать BulkWrite стратегию для UPDATE и
DELETE на больших таблицах
35
Улучшения в 9.6
●
Allow to trigger kernel writeback after a configurable number of
writes.
●
Checkpoint sorting and balancing.
●
Extend relations multiple blocks at a time to improve scalability.
36
Проблемы: Hash-таблица
●
Hash-таблица
– Большие ключи
– Нельзя эффективно упорядочивать страницы
– Удаление таблиц дорогое (?)
Решение: Замена hash-таблицы на Tree of Radix tree.
37
Проблемы: clock sweep
●
Clock sweep
– Каждый бэкенд выполняет clock sweep сам
Решение: передать эту работу отдельному бэкенд процессу.
●
Clock sweep
– В худшем случае нужно прочитать Nbuffers*5 буферов
– Часто большинство буферов имеют usagecount=5
(это и есть худший случай)
●
Буферы никогда не возвращаются во freelist
●
bg_writer_delay – задается фиксированно
Решение: ???
38
Проблемы
●
Двойная буферизация менее эффективна
Решение: использовать O_DIRECT ?
39
Источники
●
Monitoring PostgreSQL Buffer Cache Internals. 2010
●
Illustrated buffer cache. 2010
●
Setting up shared memory for PostgreSQL. 2013
●
Inside PostgreSQL Shared Memory. 2015
●
CheckPoint Internals of PostgreSQL and Oracle. 2013
●
Improving Postgres' Buffer Manager. 2016
www.postgrespro.ru
СПАСИБО ЗА ВНИМАНИЕ!
ВОПРОСЫ?
Hacking PostgreSQL
21.04.2016
hacking@postgrespro.ru

More Related Content

What's hot

Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.Alexey Lesovsky
 
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...Ontico
 
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Fwdays
 
Call of Postgres: Advanced Operations (part 5)
Call of Postgres: Advanced Operations (part 5)Call of Postgres: Advanced Operations (part 5)
Call of Postgres: Advanced Operations (part 5)Alexey Lesovsky
 
pgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recoverypgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recoveryМихаил Тюрин
 
pgday17. How shared memory works in modern PostgreSQL
pgday17. How shared memory works in modern PostgreSQLpgday17. How shared memory works in modern PostgreSQL
pgday17. How shared memory works in modern PostgreSQLDmitry Kremer
 
Streaming replication in practice
Streaming replication in practiceStreaming replication in practice
Streaming replication in practiceAlexey Lesovsky
 
Введение в современную PostgreSQL. Часть 1
Введение в современную PostgreSQL. Часть 1Введение в современную PostgreSQL. Часть 1
Введение в современную PostgreSQL. Часть 1Dzianis Pirshtuk
 
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай КондратовБыстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай КондратовFuenteovejuna
 
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (..."Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...AvitoTech
 
Семь тысяч Rps, один go
Семь тысяч Rps, один goСемь тысяч Rps, один go
Семь тысяч Rps, один goBadoo Development
 
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"IT Event
 
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»Tanya Denisyuk
 
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Ontico
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервераRoman Brovko
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)Ontico
 
SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)Ontico
 
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...Ontico
 
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptСтажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptSmartTools
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколыRoman Brovko
 

What's hot (20)

Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.
 
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
 
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
 
Call of Postgres: Advanced Operations (part 5)
Call of Postgres: Advanced Operations (part 5)Call of Postgres: Advanced Operations (part 5)
Call of Postgres: Advanced Operations (part 5)
 
pgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recoverypgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recovery
 
pgday17. How shared memory works in modern PostgreSQL
pgday17. How shared memory works in modern PostgreSQLpgday17. How shared memory works in modern PostgreSQL
pgday17. How shared memory works in modern PostgreSQL
 
Streaming replication in practice
Streaming replication in practiceStreaming replication in practice
Streaming replication in practice
 
Введение в современную PostgreSQL. Часть 1
Введение в современную PostgreSQL. Часть 1Введение в современную PostgreSQL. Часть 1
Введение в современную PostgreSQL. Часть 1
 
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай КондратовБыстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
 
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (..."Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
 
Семь тысяч Rps, один go
Семь тысяч Rps, один goСемь тысяч Rps, один go
Семь тысяч Rps, один go
 
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
 
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
 
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
 
SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)
 
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
 
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptСтажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы
 

Viewers also liked

2009-2010 10 Syllabus
2009-2010 10 Syllabus2009-2010 10 Syllabus
2009-2010 10 Syllabusslr1541
 
Survival Packet
Survival PacketSurvival Packet
Survival Packetslr1541
 
SalesRev - Boost Your Conversions and Generate More Business Without Spending...
SalesRev - Boost Your Conversions and Generate More Business Without Spending...SalesRev - Boost Your Conversions and Generate More Business Without Spending...
SalesRev - Boost Your Conversions and Generate More Business Without Spending...Keith McGibbon
 
Making Awesome Experiences with Biosensors
Making Awesome Experiences with BiosensorsMaking Awesome Experiences with Biosensors
Making Awesome Experiences with BiosensorsSophiKravitz
 
Kumpulan pantun by:ririnrosalinda abdinegara
Kumpulan pantun by:ririnrosalinda abdinegara Kumpulan pantun by:ririnrosalinda abdinegara
Kumpulan pantun by:ririnrosalinda abdinegara ririnrosalinda
 
Historia de los_satelites_de_comunicaciones._bit_134._5c6c417a
Historia de los_satelites_de_comunicaciones._bit_134._5c6c417aHistoria de los_satelites_de_comunicaciones._bit_134._5c6c417a
Historia de los_satelites_de_comunicaciones._bit_134._5c6c417aJesus Ayerve Tuiro
 
2011-2012 AmLit Syllabus
2011-2012 AmLit Syllabus2011-2012 AmLit Syllabus
2011-2012 AmLit Syllabusslr1541
 
2008-2009 AP Syllabus
2008-2009 AP Syllabus2008-2009 AP Syllabus
2008-2009 AP Syllabusslr1541
 
Andre Silva Campos P (9)
Andre Silva Campos P (9)Andre Silva Campos P (9)
Andre Silva Campos P (9)Josinei Tavares
 
Kpi google analytics
Kpi google analyticsKpi google analytics
Kpi google analyticschamberthomas
 
Instructivo hidrología unamba
Instructivo hidrología unambaInstructivo hidrología unamba
Instructivo hidrología unambaJesus Ayerve Tuiro
 
Kpi for project management
Kpi for project managementKpi for project management
Kpi for project managementchamberthomas
 

Viewers also liked (20)

2009-2010 10 Syllabus
2009-2010 10 Syllabus2009-2010 10 Syllabus
2009-2010 10 Syllabus
 
Survival Packet
Survival PacketSurvival Packet
Survival Packet
 
Destroying Router Security
Destroying Router SecurityDestroying Router Security
Destroying Router Security
 
SalesRev - Boost Your Conversions and Generate More Business Without Spending...
SalesRev - Boost Your Conversions and Generate More Business Without Spending...SalesRev - Boost Your Conversions and Generate More Business Without Spending...
SalesRev - Boost Your Conversions and Generate More Business Without Spending...
 
Toyato cars
Toyato carsToyato cars
Toyato cars
 
Page compression. PGCON_2016
Page compression. PGCON_2016Page compression. PGCON_2016
Page compression. PGCON_2016
 
Making Awesome Experiences with Biosensors
Making Awesome Experiences with BiosensorsMaking Awesome Experiences with Biosensors
Making Awesome Experiences with Biosensors
 
Kumpulan pantun by:ririnrosalinda abdinegara
Kumpulan pantun by:ririnrosalinda abdinegara Kumpulan pantun by:ririnrosalinda abdinegara
Kumpulan pantun by:ririnrosalinda abdinegara
 
Historia de los_satelites_de_comunicaciones._bit_134._5c6c417a
Historia de los_satelites_de_comunicaciones._bit_134._5c6c417aHistoria de los_satelites_de_comunicaciones._bit_134._5c6c417a
Historia de los_satelites_de_comunicaciones._bit_134._5c6c417a
 
Kpi key
Kpi keyKpi key
Kpi key
 
2011-2012 AmLit Syllabus
2011-2012 AmLit Syllabus2011-2012 AmLit Syllabus
2011-2012 AmLit Syllabus
 
2008-2009 AP Syllabus
2008-2009 AP Syllabus2008-2009 AP Syllabus
2008-2009 AP Syllabus
 
Andre Silva Campos P (9)
Andre Silva Campos P (9)Andre Silva Campos P (9)
Andre Silva Campos P (9)
 
Kpi google analytics
Kpi google analyticsKpi google analytics
Kpi google analytics
 
Global warming
Global warmingGlobal warming
Global warming
 
Instructivo hidrología unamba
Instructivo hidrología unambaInstructivo hidrología unamba
Instructivo hidrología unamba
 
Kpi indicator
Kpi indicatorKpi indicator
Kpi indicator
 
P (1)ele escolheu você
P (1)ele escolheu vocêP (1)ele escolheu você
P (1)ele escolheu você
 
10
1010
10
 
Kpi for project management
Kpi for project managementKpi for project management
Kpi for project management
 

Similar to Hacking PostgreSQL. Разделяемая память и блокировки.

Where is the space, Postgres?
Where is the space, Postgres?Where is the space, Postgres?
Where is the space, Postgres?Alexey Ermakov
 
#PostgreSQLRussia в банке Тинькофф, доклад №1
#PostgreSQLRussia в банке Тинькофф, доклад №1#PostgreSQLRussia в банке Тинькофф, доклад №1
#PostgreSQLRussia в банке Тинькофф, доклад №1Nikolay Samokhvalov
 
Cgroup и их использование в бк
Cgroup и их использование в бкCgroup и их использование в бк
Cgroup и их использование в бкYandex
 
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.SECON
 
PostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationPostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationAlexey Lesovsky
 
Kostja Root Conf
Kostja Root ConfKostja Root Conf
Kostja Root ConfLiudmila Li
 
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Mikhail Kurnosov
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Ontico
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2Technopark
 
Беспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQLБеспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQLДмитрий Васильев
 
Db in-memory-overview 2015-10_14
Db in-memory-overview 2015-10_14Db in-memory-overview 2015-10_14
Db in-memory-overview 2015-10_14remizovd
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache MahoutTechnopark
 
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Ontico
 
Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015OSLL
 
Soft labs. достижима ли в c++ эффективность языка среднего уровня
Soft labs. достижима ли в c++ эффективность языка среднего уровняSoft labs. достижима ли в c++ эффективность языка среднего уровня
Soft labs. достижима ли в c++ эффективность языка среднего уровняLuxoftTraining
 
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...Alexey Paznikov
 
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...Performance optimization of virtual network infrastructure (RUS, OpenStack Me...
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...Vadim Ponomarev
 
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)AvitoTech
 

Similar to Hacking PostgreSQL. Разделяемая память и блокировки. (20)

Where is the space, Postgres?
Where is the space, Postgres?Where is the space, Postgres?
Where is the space, Postgres?
 
#PostgreSQLRussia в банке Тинькофф, доклад №1
#PostgreSQLRussia в банке Тинькофф, доклад №1#PostgreSQLRussia в банке Тинькофф, доклад №1
#PostgreSQLRussia в банке Тинькофф, доклад №1
 
Cgroup и их использование в бк
Cgroup и их использование в бкCgroup и их использование в бк
Cgroup и их использование в бк
 
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
 
PostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationPostgreSQL Streaming Replication
PostgreSQL Streaming Replication
 
Kostja Root Conf
Kostja Root ConfKostja Root Conf
Kostja Root Conf
 
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2
 
Беспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQLБеспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQL
 
Db in-memory-overview 2015-10_14
Db in-memory-overview 2015-10_14Db in-memory-overview 2015-10_14
Db in-memory-overview 2015-10_14
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
 
pgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresqlpgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresql
 
Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015
 
Soft labs. достижима ли в c++ эффективность языка среднего уровня
Soft labs. достижима ли в c++ эффективность языка среднего уровняSoft labs. достижима ли в c++ эффективность языка среднего уровня
Soft labs. достижима ли в c++ эффективность языка среднего уровня
 
NetApp Virtualization
NetApp VirtualizationNetApp Virtualization
NetApp Virtualization
 
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
 
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...Performance optimization of virtual network infrastructure (RUS, OpenStack Me...
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...
 
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
 

Hacking PostgreSQL. Разделяемая память и блокировки.