Slides Stockage Physique FR
Slides Stockage Physique FR
Slides Stockage Physique FR
Contenu du chapitre:
-2 020
2019
Stockage : la mémoire au niveau du hardware
Stockage physique (Rappel)
Lectures vs Écritures: architecture de stockage
B.Groz 1
Table des matières
-20 20
2019
Stockage physique des données dans un SGBD
Stockage : la mémoire au niveau du hardware
Stockage physique (Rappel)
Lectures vs Écritures: architecture de stockage
B.Groz 2
New DB technologies and trends
Data storage and processing evolutions:
New hardware (FPGA, GPGPU, SSD, NVRAM)
In-memory DB/ Column storage
NoSQL: (shared nothing) massively parallel architecture
(Map/Reduce, key/value)
Trends emphasize
supporting both analytical (OLAP, mining) and prediction queries
(statistical ML)
ACID in distributed data processing
trust management – so far, more of an issue for transactions rather
than storage/analysis (blockchain)
integrating new (external) types of data (text, feeds, images, video...)
building data summaries (data too large to be stored): sampling, etc.
real-time DW
B.Groz 3
Hardware: data storage
The hard drive
Created in 1956 (IBM).
Multiple disks (platters) spinning rapidly together (thousands rpm/min).
Ferromagnetic. Multiple tracks per platter. 1 head per platter, on air
cushion.
u 100€
a few TB
100gr.
CPU
registers
volatile
CPU Caches
Main memory
Flash
Hard disk
tape cheaper, higher
storage capacity
On early computers, CPU frequency u memory bus and memory access.
But CPU became much faster than memory.
B.Groz 5
Hardware: storage
Memory hierarchy:
faster access
CPU
registers
volatile
CPU Caches SRAM: 500$/GB
[https://www.usenix.org/system/files/fast19-kourtis.pdf]
B.Groz 8
Table des matières
-20 20
2019
Stockage physique des données dans un SGBD
Stockage : la mémoire au niveau du hardware
Stockage physique (Rappel)
Lectures vs Écritures: architecture de stockage
B.Groz 9
3 niveaux de conception
Conception Description orientée-utilisateur, indépendante
Conceptuelle de l’implémentation
E-R, UML
B.Groz 10
Accès aux données
Données de base R1 R2
MV1 MV2
Vues Matérialisées o
n
Chemin
d’accès
logique
Partitions
Chemin
B+ -tree R-tree k-d tree
Index d’accès
bitmap Z-curve ...
physique
B.Groz 12
Stockage Physique: Oracle (1)
logical physical
B.Groz 13
Stockage Physique: Oracle (2)
1 KB
1 KB
1 KB
1 KB
1 KB
1 KB
8 KB
1 KB
1 KB
Bloc de données Oracle
Blocs systèmes
B.Groz 14
Stockage Physique: blocs PostgreSQL
ctid ' row pointers
8kB
Tuple
Page Header General info about the page, including free space pointers. 24 bytes
Item Ids Array of (offset,length) pairs pointing to the actual items. 4b/item
Free space The unallocated space. New items are allocated from the end
Tuples The actual items themselves (row for tables, entry for indexs)
Special space Empty in ordinary tables. Used for indexes
B.Groz 15
Stockage Physique: en-tête des blocs PostgreSQL
typedef struct PageHeaderData
{
PageXLogRecPtr pd_lsn; /* LSN: xlog record for last change to page*/
uint16 pd_checksum; /* page checksum, if set */
uint16 pd_flags; /* flags: page full, unused ItemId, all visible */
LocationIndex pd_lower; /* offset to start of free space */
LocationIndex pd_upper; /* offset to end of free space */
LocationIndex pd_special; /* offset to start of special space */
uint16 pd_pagesize_version;
TransactionId pd_prune_xid; /* oldest prunable XID, or zero if none */
ItemIdData pd_linp[FLEXIBLE_ARRAY_MEMBER]; /* line pointer array */
} PageHeaderData;
B.Groz 16
Stockage Physique: tuple PostgreSQL
Field Type Length Description
t_xmin TransactionId 4 bytes insert XID stamp
t_xmax TransactionId 4 bytes delete XID stamp
t_cid CommandId 4 bytes insert and/or delete CID stamp (overlays with
t_xvac)
t_xvac TransactionId 4 bytes XID for VACUUM operation moving a row ver-
sion
t_ctid ItemPointerData 6 bytes current TID of this or newer row version
t_infomask2 uint16 2 bytes number of attributes, plus various flag bits
t_infomask uint16 2 bytes various flag bits
t_hoff uint8 1 byte offset to user data
B.Groz 17
Bibliographie
https://en.wikibooks.org/wiki/Oracle_and_DB2,_Comparison_and_
Compatibility/Storage_Model/Physical_Storage/Summary
ftp:
//ftp.software.ibm.com/software/data/db2/9/labchats/20110331-slides.pdf
(a bit outdated: 2011. . . )
http://www.postgresql.org/docs/9.4/static/storage-page-layout.html
https://www.postgresql.org/docs/11/storage-page-layout.html
B.Groz 18
Table des matières
-20 20
2019
Stockage physique des données dans un SGBD
Stockage : la mémoire au niveau du hardware
Stockage physique (Rappel)
Lectures vs Écritures: architecture de stockage
B.Groz 19
Gestion des écritures dans les SGBD
opération d’écriture
RAM Buffer de la BD
wi wi+1 Blocj
Bloci
HDD
B.Groz 20
Types d’architectures (MVCC) en terme de tables
O2N : oldest-to-newest
N2O : newest-to-oldest
B.Groz 21
Types d’architectures
update-in-place storage: la plupart des BD relationnelles. Limites:
historisation conduit à fragmenter. Verrous sur pages durant m-à-j.
Stratégie souvent associée au B-tree. Optimise lectures (u1 seek per
read/1 per scan if unfragmented). Mettre à jour index est plus lent.
delta with main store: main store optimisé en lecture, updates dans un
write-optimized buffer (SAP Hana/Sans Souci, et autres column stores).
Buffer fusionné de temps en temps.
B.Groz 22
LSM-tree
Famille de structures optimisées pour le débit en écriture (
write-throughput) . . . comme tout log-structured storage:
LSM-tree consiste en 2 niveaux ou plus C0 , C1 (, C2 . . . , Ck ).
C0 in-memory: tree, hash table...
les autres (C1 , . . . ) sont B-trees, stockés sur disque/mémoire +lente.
les m-à-j écrites sont seulement dans C0
8i quant Ci est plein, on le fusionne avec Ci+1 (Ci est vidé)
,! 8i, les versions dans Ci sont +récentes que Ci+1
,! au plus r versions des tuples co-existent.
,! une lecture parcourt les niveaux C0 , C1 . . . jusquà trouver le tuple.
. . . mais il reste à préciser la définition de “plein”:
Faiblessess:
8 accéder à une valeur peut être plus long
B.Groz 24
Bibliographie
Rappels simples sur le stockage dans les SGBDs
- http: // sys. bdpedia. fr/
MVCC storage
- http: // www. vldb. org/ pvldb/ vol10/ p781-Wu. pdf
LSM trees
- http: // www. vldb. org/ pvldb/ vol10/ p1526-bocksrocker. pdf
- http: // www. eecs. harvard. edu/ ~margo/ cs165/ papers/ gp-lsm. pdf
- https:
// www. quora. com/ How-does-the-Log-Structured-Merge-Tree-work
B.Groz 25