~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/admin-guide/device-mapper/persistent-data.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/admin-guide/device-mapper/persistent-data.rst (Version linux-6.12-rc7) and /Documentation/admin-guide/device-mapper/persistent-data.rst (Version linux-4.19.323)


  1 ===============                                   
  2 Persistent data                                   
  3 ===============                                   
  4                                                   
  5 Introduction                                      
  6 ============                                      
  7                                                   
  8 The more-sophisticated device-mapper targets r    
  9 that is managed in kernel.  In late 2010 we we    
 10 different targets were rolling their own data     
 11                                                   
 12 - Mikulas Patocka's multisnap implementation      
 13 - Heinz Mauelshagen's thin provisioning target    
 14 - Another btree-based caching target posted to    
 15 - Another multi-snapshot target based on a des    
 16                                                   
 17 Maintaining these data structures takes a lot     
 18 we'd like to reduce the number.                   
 19                                                   
 20 The persistent-data library is an attempt to p    
 21 framework for people who want to store metadat    
 22 targets.  It's currently used by the thin-prov    
 23 upcoming hierarchical storage target.             
 24                                                   
 25 Overview                                          
 26 ========                                          
 27                                                   
 28 The main documentation is in the header files     
 29 under drivers/md/persistent-data.                 
 30                                                   
 31 The block manager                                 
 32 -----------------                                 
 33                                                   
 34 dm-block-manager.[hc]                             
 35                                                   
 36 This provides access to the data on disk in fi    
 37 is a read/write locking interface to prevent c    
 38 keep data that is being used in the cache.        
 39                                                   
 40 Clients of persistent-data are unlikely to use    
 41                                                   
 42 The transaction manager                           
 43 -----------------------                           
 44                                                   
 45 dm-transaction-manager.[hc]                       
 46                                                   
 47 This restricts access to blocks and enforces c    
 48 The only way you can get hold of a writable bl    
 49 transaction manager is by shadowing an existin    
 50 copy-on-write) or allocating a fresh one.  Sha    
 51 the same transaction so performance is reasona    
 52 ensures that all data is flushed before it wri    
 53 On power failure your metadata will be as it w    
 54                                                   
 55 The Space Maps                                    
 56 --------------                                    
 57                                                   
 58 dm-space-map.h                                    
 59 dm-space-map-metadata.[hc]                        
 60 dm-space-map-disk.[hc]                            
 61                                                   
 62 On-disk data structures that keep track of ref    
 63 Also acts as the allocator of new blocks.  Cur    
 64 implementations: a simpler one for managing bl    
 65 device (eg. thinly-provisioned data blocks); a    
 66 the metadata space.  The latter is complicated    
 67 its own data within the space it's managing.      
 68                                                   
 69 The data structures                               
 70 -------------------                               
 71                                                   
 72 dm-btree.[hc]                                     
 73 dm-btree-remove.c                                 
 74 dm-btree-spine.c                                  
 75 dm-btree-internal.h                               
 76                                                   
 77 Currently there is only one data structure, a     
 78 There are plans to add more.  For example, som    
 79 array-like interface would see a lot of use.      
 80                                                   
 81 The btree is 'hierarchical' in that you can de    
 82 of nested btrees, and take multiple keys.  For    
 83 thin-provisioning target uses a btree with two    
 84 The first maps a device id to a mapping tree,     
 85 virtual block to a physical block.                
 86                                                   
 87 Values stored in the btrees can have arbitrary    
 88 64bits, although nesting allows you to use mul    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php