430
ordered map
erase operation, 291
find operation, 288, 289
insert operation, 289–291
Collision, 194
Compare-and-exchange (CMPXCHG)
operation, 286
Concurrent data
structures, 286–287
config_setup() function, 145, 149
Content delivery networks
(CDN), 263
Copy-on-write (CoW), 192, 193
count_all() function, 150
create() abstract method, 266
D
Data at rest, 17
Data in-flight, 17
Data Loss Count (DLC), 342–346
Data structure
hash table and transactions, 194
persistence, 197, 200–202
sorted array, versioning, 202–206
Data visibility, 23
DAX-enabled file system, 179, 184
DB-Engines, 143
deleteNodeFromSLL(), 273
deleteRowFromAllIndexedColumns()
function, 273
delete_row() method, 272
Direct access (DAX), 19, 66
Direct Data IO (DDIO), 352
Direct memory access (DMA), 12, 347
Dirty reads, 233
Dynamic random-access memory
(DRAM), 11, 155
E
Ecosystem, persistent containers
begin() and end(), 138
implementation, 134
iterating, 136, 138
memory layout, 134
snapshots, 138
std::vector, 135, 136
vector, 135
Enhanced Asynchronous DRAM
Refresh (eADR), 18
Error correcting codes (ECC), 333
errormsg() method, 150
exists() method, 150
External fragmentation, 177, 188
F
Fence
code, 21, 22
libpmem library, 23
PMDK, 22
pseudocode, 21
SFENCE instructions, 23
flush() function, 217, 242
Flushing
msync(), 20
non-temporal stores, 19
optimized flush, 19
temporal locality, 19
Fragmentation, 187
func() function, 237
G
General-purpose remote replication
method (GPRRM)
performance implications, 355
persistent data, 354, 355
Concurrent data structures (cont.)
Index
ordered map
erase operation, 291
find operation, 288, 289
insert operation, 289–291
Collision, 194
Compare-and-exchange (CMPXCHG)
operation, 286
Concurrent data
structures, 286–287
config_setup() function, 145, 149
Content delivery networks
(CDN), 263
Copy-on-write (CoW), 192, 193
count_all() function, 150
create() abstract method, 266
D
Data at rest, 17
Data in-flight, 17
Data Loss Count (DLC), 342–346
Data structure
hash table and transactions, 194
persistence, 197, 200–202
sorted array, versioning, 202–206
Data visibility, 23
DAX-enabled file system, 179, 184
DB-Engines, 143
deleteNodeFromSLL(), 273
deleteRowFromAllIndexedColumns()
function, 273
delete_row() method, 272
Direct access (DAX), 19, 66
Direct Data IO (DDIO), 352
Direct memory access (DMA), 12, 347
Dirty reads, 233
Dynamic random-access memory
(DRAM), 11, 155
E
Ecosystem, persistent containers
begin() and end(), 138
implementation, 134
iterating, 136, 138
memory layout, 134
snapshots, 138
std::vector, 135, 136
vector, 135
Enhanced Asynchronous DRAM
Refresh (eADR), 18
Error correcting codes (ECC), 333
errormsg() method, 150
exists() method, 150
External fragmentation, 177, 188
F
Fence
code, 21, 22
libpmem library, 23
PMDK, 22
pseudocode, 21
SFENCE instructions, 23
flush() function, 217, 242
Flushing
msync(), 20
non-temporal stores, 19
optimized flush, 19
temporal locality, 19
Fragmentation, 187
func() function, 237
G
General-purpose remote replication
method (GPRRM)
performance implications, 355
persistent data, 354, 355
Concurrent data structures (cont.)
Index
