Storage Systems: Organization, Performance, Coding, Reliability and Their Data Processing was motivated by the 1988 Redundant Array of Inexpensive/Independent Disks proposal to replace large form factor mainframe disks with an array of commodity disks. Disk loads are balanced by striping data into strips—with one strip per disk— and storage reliability is enhanced via replication or erasure coding, which at best dedicates k strips per stripe to tolerate k disk failures. Flash memories have resulted in a paradigm shift with Solid State Drives (SSDs) replacing Hard Disk Drives (HDDs) for high performance applications. RAID and Flash have resulted in the emergence of new storage companies, namely EMC, NetApp, SanDisk, and Purestorage, and a multibillion-dollar storage market. Key new conferences and publications are reviewed in this book.The goal of the book is to expose students, researchers, and IT professionals to the more important developments in storage systems, while covering the evolution of storage technologies, traditional and novel databases, and novel sources of data. We describe several prototypes: FAWN at CMU, RAMCloud at Stanford, and Lightstore at MIT; Oracle's Exadata, AWS' Aurora, Alibaba's PolarDB, Fungible Data Center; and author's paper designs for cloud storage, namely heterogeneous disk arrays and hierarchical RAID.
1. Chapter 1 Introduction - p. 1 2. 1.1: Computer systems after WW II - p. 2 3. 1.2: High level programming languages - Fortran - p. 4 4. 1.3: Effect of data representation on storage space requirements - p. 8 5. 1.4: Basic computer arithmetic - p. 10 6. 1.5: Author's experience with IBM computers in 1970s - p. 11 7. 1.6: IBM's System 360 and its successors - p. 19 8. 1.7: The IBM S/360 computer family - p. 22 9. 1.8: Operating systems associated with IBM mainframes - p. 25 10. 1.9: Early computer companies possibly competing with IBM - p. 27 11. 1.10: My experience at Burroughs Corp. - p. 28 12. 1.11: Computer company revenue rankings - p. 34 13. 1.12: Computer structures book - p. 34 14. 1.13: Computer family architectures - CFA - p. 35 15. 1.14: Virtual memory and page replacement algorithms - p. 36 16. 1.15: Memory space fragmentation and dynamic storage allocation - p. 38 17. 1.16: Analysis of thrashing in 2-phase locking - 2PL systems - p. 42 18. 1.17: CPU caches - p. 43 19. 1.18: Multiprogrammed computer systems - p. 47 20. 1.19: Timesharing systems - p. 47 21. 1.20: Mean response with FCFS and processor-sharing scheduling - p. 49 22. 1.21: Analysis of open and closed queueing network models - p. 51 23. 1.22: Bottleneck analysis and balanced job bounds - p. 53 24. 1.23: Performance analyses of I/O subsystems - p. 54 25. 1.24: Vector supercomputers - p. 56 26. 1.25: Parallel computers - p. 57 27. 1.26: The future of supercomputing - p. 61 28. 1.27: Microprocessor CPUs, GPUs, FPGAs, and ASICs - p. 64 29. 1.28: RISCV and other microprocessors - p. 67 30. 1.29: The IBM PC and its compatibles - p. 71 31. 1.30: Storage studies by Alan Jay Smith at Berkeley - p. 74 32. 1.31: Prefetching - p. 76 33. 1.32: Database buffers - p. 77 34. 1.33: Checkpointing in processing large jobs - p. 78 35. 1.34: Computer related rule of thumb - p. 79 36. 1.35: Conclusions and summary - p. 87 37. Chapter 2 Storage technologies and their data - p. 89 38. 2.1: Evolution of recording material - p. 90 39. 2.2: Advertising and e-commerce - p. 93 40. 2.3: Computer storage technologies - p. 97 41. 2.4: Reliability studies of DRAM, HDDs, & flash SSDs - p. 131 42. 2.5: Storage Networking Industry Association - SNIA - p. 135 43. 2.6: Big data and its sources - p. 136 44. 2.7: Sources of storage content - p. 137 45. 2.8: Ranking and description of media companies - p. 139 46. The Cisco Cloud Services Stack - CCSS - p. 139 47. 2.9: Sources of news: newspapers, radio and TV stations - p. 141 48. 2.10: Text editing and formatting languages - p. 144 49. 2.11: Online books sources - p. 145 50. 2.12: Free book download web sites - p. 146 51. 2.13: Data, image, audio and video compression - p. 147 52. 2.14: Main memory data compression - p. 152 53. 2.15: Data deduplication in storage systems - p. 157 54. 2.16: Up and coming data deduplication companies - p. 160 55. 2.17: Storage research at IBM's Almaden Research Center in 1990s - p. 163 56. 2.18: Cleversafe and its information dispersal technology - p. 167 57. 2.19: Recent developments at IBM Research at ARC - p. 170 58. 2.20: Storage research at Hewlett-Packard - HP - p. 171 59. 2.21: Primary storage vendors and enterprise companies in 2020 - p. 172 60. 2.22: All-flash upstart storage companies - p. 174 61. 2.23: Hyperconverged infrastructure for storage systems - p. 174 62. 2.24: Top enterprise storage backup players - p. 177 63. 2.25: Data storage companies: up and coming storage vendors - p. 177 64. 2.26: Parallel file systems - p. 179 65. 2.27: Cloud storage - p. 179 66. 2.28: Jai Menon's predictions on the future of clouds - p. 185 67. 2.29: Cloud storage companies - p. 187 68. 2.30: Distributed systems research related to clouds - p. 189 69. 2.31: Data encryption - p. 191 70. 2.32: Conclusions - predictions about storage systems - p. 193 71. Chapter 3 Disk drive data placement and scheduling - p. 197 72. Chapter 4 Mirrored & hybrid arrays - p. 223 73. 4.1: Introduction to mirrored and hybrid disk arrays - p. 223 74. 4.2: Mirrored and hybrid disk array organizations - p. 225 75. 4.3: Routing read requests in mirrored disks - p. 231 76. 4.4: Shortening the tail for response times - p. 232 77. 4.5: Improving write performance in mirrored disks - p. 235 78. 4.6: Disks with multiple R/W heads on a single and multiple arms - p. 235 79. 4.7: Seek distances in single and mirrored disks - p. 236 80. 4.8: Mirrored disk performance in normal, degraded, rebuild modes - p. 238 81. 4.9: Protecting against rare event failures in archival systems - p. 244 82. 4.10: RAIDP: ReplicAtion with IntraDisk Parity for cost effective storage of warm data - p. 247 83. 4.11: Remote mirroring for disaster recovery - p. 248 84. 4.12: RAID reliability analysis - p. 249 85. 4.13: Storage reliability research at IBM's Zurich Research Lab - p. 264 86. 4.14: Conclusions - p. 267 87. Chapter 5 Redundant Arrays of Independent Disks - RAID - p. 269 88. 5.1: Redundant Arrays of Inexpensive Disks - p. 270 89. 5.2: Early RAID products - p. 271 90. 5.3: RAID classification and motivation - p. 277 91. 5.4: RAID0 and striping - p. 278 92. 5.5: RAID2 - p. 280 93. 5.6: RAID3 - p. 281 94. 5.7: RAID4 - p. 281 95. 5.8: RAID5 - p. 281 96. 5.9: RAID5 performance analysis in normal mode - p. 284 97. 5.10: RAID(4+k) disk arrays in normal and degraded mode - p. 286 98. 5.11: Rebuild processing in disk arrays - p. 288 99. 5.12: Vacationing server model for rebuild processing - p. 290 100. 5.13: RAID5 sparing configurations for rebuild - p. 295 101. 5.14: IntraDisk Redundancy - IDR for higher reliability rebuild - p. 296 102. 5.15: Disk scrubbing for higher reliability rebuild processing - p. 298 103. 5.16: Predictive Failure Analysis - PFA - p. 301 104. 5.17: Undetected disk errors and Silent Data Corruption - SDC - p. 301 105. 5.18: Clustered RAID5 layouts - p. 303 106. 5.19: Clustered RAID designs by Walter Burkhard et al. at UCSD - p. 307 107. 5.20: Log-structured file systems and arrays - p. 311 108. 5.21: RAID6 - p. 315 109. 5.22: Reed-Solomon coding for higher reliability - p. 316 110. 5.23: Parity based MDS codes - p. 318 111. 5.24: RDP arrays and their optimal recovery - p. 318 112. 5.25: EVENODD defined and efficient rebuild of a single disk - p. 319 113. 5.26: Blaum-Roth - BR code - p. 321 114. 5.27: X-code disk arrays and rebuild mode with one and two disk failures - p. 321 115. 5.28: The RM2 disk array - p. 324 116. 5.29: RAID7 - p. 326 117. 5.30: Erasure coding for distributed storage - p. 326 118. 5.31: ReGenerating codes - p. 330 119. 5.32: Protection schemes for flash memories - p. 333 120. 5.33: Conclusions - p. 335 121. Chapter 6 Coding for multiple disk failures - p. 337 122. Chapter 7 Saving power in disks, flash memories, and servers - p. 349 123. 7.1: Introduction to power consumption in computer systems - p. 350 124. 7.2: Saving battery power in laptop computers - p. 350 125. 7.3: Varying spindown threshold based on user behavior - p. 350 126. 7.4: Exploiting idleness in storage systems - p. 351 127. 7.5: Making enterprise computers greener by protecting them better - p. 351 128. 7.6: Policy optimization for dynamic power management - p. 352 129. 7.7: Managing energy and server resources in hosting centers - p. 352 130. 7.8: Interplay of energy and performance for RAID running OLTP - p. 353 131. 7.9: Dynamic speed control for server disk power management - p. 354 132. 7.10: Approaches to conserve disk energy in network servers - p. 354 133. 7.11: Energy efficiency through burstiness - p. 355 134. 7.12: Dempsey: a tool for modeling hard disk power consumption - p. 355 135. 7.13: MAID - Massive Arrays of Idle Disks alternative to tape storage - p. 356 136. 7.14: Self-tuning power aware storage cache replacement algorithm - p. 358 137. 7.15: Popular Data Concentration - PDC - p. 359 138. 7.16: Disk layout optimization for reducing energy consumption - p. 359 139. 7.17: Managing server energy and operational costs in hosting centers - p. 360 140. 7.18: Performance directed energy management for main memory and disks - p. 362 141. 7.19: Exploiting redundancy to conserve energy in storage systems - p. 363 142. 7.20: Thermal disk drive design: challenges and possible solutions - p. 364 143. 7.21: PARAID: the gear-shifting Power-Aware RAID - p. 365 144. 7.22: DiskGroup: energy efficient disk layout for RAID1 systems - p. 365 145. 7.23: Pergamum: replacing tape with disk-based archival storage - p. 366 146. 7.24: Energy efficient RAID - ERAID - p. 367 147. 7.25: Power reduction via write-offloading - p. 368 148. 7.26: Redundant Arrays of Hybrid Disks - RAHD - p. 369 149. 7.27: Achieving power-efficient, erasure-coded storage - p. 369 150. 7.28: Effect of energy-saving schemes on disk reliability - p. 370 151. 7.29: Mathematical model of disk reliability versus load and temperature - p. 370 152. 7.30: Sample-Replicate-Consolidate mapping - SRCMap - p. 370 153. 7.31: Power Proportional Distributed File Systems - PPDFS - p. 371 154. 7.32: Dynamic locality improvement to increase effective storage performance - p. 371 155. 7.33: Disk data reorganization for reducing energy consumption - p. 372 156. 7.34: File assignment with minimal variance of service time - p. 373 157. 7.35: Striping-based Energy Aware - SEA placement - p. 376 158. 7.36: PEARL: Performance, Energy, and ReLiability balanced dynamic data distribution - p. 377 159. 7.37: Power proportionality for data center storage - p. 377 160. 7.38: Economic evaluation of energy saving with reliability constraint - p. 378 161. 7.39: Dynamic server provisioning for data center power management - p. 378 162. 7.40: Modeling the energy costs of I/O workloads - p. 379 163. 7.41: Energy proportionality is required in addition to energy efficiency - p. 380 164. 7.42: SDD design tradeoffs from energy perspective - p. 380 165. 7.43: Green AI - p. 381 166. 7.44: Conclusions - p. 382 167. Chapter 8 Database parallelism, big data and analytics, deep learning - p. 385 168. 8.1: Stonebraker's classification of computer systems - p. 387 169. 8.2: Comparison of systems from the viewpoint of CPU performance - p. 388 170. 8.3: High performance network and channel-based interconnects for storage - p. 388 171. 8.4: Concurrency and coherency control in data sharing systems - p. 393 172. 8.5: Combined shared disk and nothing systems - p. 393 173. 8.6: Parallel systems at IBM Research - p. 393 174. 8.7: Interconnection networks in IBM's BlueGene/L - p. 394 175. 8.8: Data allocation and transaction routing in multicomputers - p. 395 176. 8.9: Data allocation with a distributed relational databases - p. 397 177. 8.10: Review of multicomputer Data Base Machines - DBMs - p. 398 178. 8.11: Benchmarking in various forms - p. 402 179. 8.12: Data Base Machines - DBMs and backend processors - p. 407 180. 8.13: Head-per-track disks - p. 410 181. 8.14: Active disks projects - p. 412 182. 8.15: Multidimensional indices on disk, DRAM, and flash - p. 415 183. 8.16: Implementing indices in flash memories - p. 423 184. 8.17: Redesign of relational databases by Stonebraker et al. - p. 425 185. 8.18: Parallel Data Base Machines - DBMs - p. 428 186. 8.19: Google File System, Bigtable, and Spanner - p. 429 187. 8.20: Microsoft Azure - p. 431 188. 8.21: IBM and other cloud service providers - p. 433 189. 8.22: Distributed databases in cloud computing - p. 434 190. 8.23: SpringFS bridging agility and performance in elastic distributed storage - p. 436 191. 8.24: Snowflake cloud based data warehousing with SQL support - p. 436 192. 8.25: Review of peer-to-peer computing - p. 439 193. 8.26: Fast Array of Wimpy Nodes - FAWN - p. 441 194. 8.27: RAMCloud project at Stanford - p. 442 195. 8.28: How flash changes the design of database storage engines - p. 444 196. 8.29: Hybrid Transaction Analytic Processing - HTAP - p. 447 197. 8.30: Intelligent page store for concurrent txn and query processing - p. 447 198. 8.31: Oracle Exadata database machine - p. 447 199. 8.32: Oracle in memory option or Database in Main Memory - DBIM - p. 449 200. 8.33: MemSQL/SingleStore - p. 450 201. 8.34: Amazon Aurora - p. 451 202. 8.35: Transaction processing in the cloud - p. 451 203. 8.36: RAPID and Oracle AutoML: a fast and predictive AutoML pipeline - p. 452 204. 8.37: Benchmarking automatic ML frameworks - p. 453 205. 8.38: Alibaba's X-engine - p. 454 206. 8.39: RocksDB with ultrafast data access - p. 456 207. 8.40: LightStore project at MIT - p. 457 208. 8.41: PinK: high-speed in-storage key-value store with bounded tails - p. 457 209. 8.42: BlueDBM: an appliance for big data analytics - p. 457 210. 8.43: WiSer highly available HTAP DBMS for IoT applications - p. 458 211. 8.44: Raven RDBMS at Microsoft provides ML - p. 458 212. 8.45: Machine Learning data platform - MLdp - p. 459 213. 8.46: Databricks - p. 460 214. 8.47: Fungible - a new storage architecture for big data - p. 461 215. Ranking of networking companies - p. 461 216. 8.48: Network requirements for resource disaggregation - p. 464 217. 8.49: Deep learning and associated hardware - p. 466 218. 8.50: GPU accelerated database systems - p. 467 219. 8.51: Graphics Processing Unit - GPU solutions - p. 470 220. 8.52: Field Programmable Gate Array - FPGA solutions - p. 472 221. 8.53: Multichip modules - p. 475 222. 8.54: Unified solutions - p. 477 223. 8.55: Power consumption in FPGAs and ASICs - p. 479 224. 8.56: Hybrid approaches to acceleration - p. 480 225. 8.57: Application Specific Integrated Circuit - ASIC - p. 480 226. 8.58: Tensorflow and Tensor Processing Units - TPUs - p. 482 227. 8.59: Increasing computational challenges - p. 484 228. 8.60: Quantum Neural Nets - QNNs - p. 485 229. 8.61: Data acceleration examples - p. 485 230. 8.62: Cerebras wafer size chips vs GPUS - p. 487 231. 8.63: Conclusions - p. 491 232. Chapter 9 Structured, unstructured, and diverse databases - p. 493 233. 9.1: Categories of file systems - p. 494 234. 9.2: Mainframe count-key-data disk organizations - p. 496 235. 9.3: Hierarchical and network Data Base Management Systems - DBMSs - p. 496 236. 9.4: Relational data model - p. 498 237. 9.5: Ranking methodology for database engines - p. 503 238. 9.6: Overall ranking of all database types - p. 504 239. 9.7: Relational database management systems - p. 504 240. 9.8: Object relational databases - p. 507 241. 9.9: Data mining - p. 509 242. 9.10: Data warehousing and OLAP - p. 510 243. 9.11: Distinct schools of thought in data warehouse design - p. 513 244. 9.12: Data lakes - p. 515 245. 9.13: Open source big data projects - p. 518 246. 9.14: Semi-structured data and its model - p. 519 247. 9.15: Big data technology and the five Vs - p. 520 248. 9.16: Hadoop technology ecosphere - p. 521 249. 9.17: Distributed batch vs inline processing - p. 522 250. 9.18: NoSQL/non-relational databases - p. 523 251. 9.19: Key-value stores - p. 523 252. 9.20: Document stores - p. 525 253. 9.21: Time-series databases - p. 527 254. 9.22: Kubernetes and other containers - p. 529 255. 9.23: Graph databases - p. 531 256. 9.24: Object-oriented databases - p. 533 257. 9.25: Search engines for text - p. 534 258. 9.26: Web search engines - p. 536 259. 9.27: Resource Description Framework - RDF - p. 537 260. 9.28: Wide column stores - p. 538 261. 9.29: Multivalue databases - p. 541 262. 9.30: Native XML databases - p. 542 263. 9.31: Realtime stream processing - p. 543 264. 9.32: Event stores - p. 543 265. 9.33: Streaming analytics - p. 545 266. 9.34: Trill: a high-performance incremental query processor for diverse analytics - p. 548 267. 9.35: Summary of Forrester WaveTM streaming analytics, Q3, 2109 - p. 548 268. 9.36: Content stores - p. 551 269. 9.37: Multimodel databases - p. 552 270. 9.38: Main memory databases - p. 553 271. 9.39: Distributed file systems and object storage - p. 554 272. 9.40: Enterprise Backup and recovery software solutions - p. 557 273. 9.41: Analytics and Business Intelligence - ABI platforms - p. 558 274. 9.42: Blockchain, Bitcoin, Ethereum - p. 560 275. Chapter 10 Heterogeneous Disk Arrays - HDAs - p. 565 276. 10.1: Introduction to RAID - p. 565 277. 10.2: Data allocation in a Heterogeneous Disk Array - HDA - p. 568 278. 10.3: Analytic justification for HDA - p. 570 279. 10.4: HDA data allocation experiment setup - p. 571 280. 10.5: Data allocation experiments - p. 574 281. 10.6: Rebuild processing in HDA - p. 582 282. 10.7: RAID+ data layout based on Latin squares - p. 582 283. 10.8: Related work - p. 584 284. 10.9: Using utility functions to provision storage systems - p. 587 285. 10.10: Conclusions - p. 590 286. Chapter 11 Hierarchical RAID - HRAID - p. 593 287. 11.1: Introduction to HRAID - p. 593 288. 11.2: Intranode & internode coding in HRAID - p. 594 289. 11.3: Concurrency control in HRAID - p. 596 290. 11.4: RAID IOPS with no disk failures - p. 597 291. 11.5: RAID IOPS with disk failures - p. 598 292. 11.6: HRAID response times - p. 599 293. 11.7: HRAID2/2 performance - p. 602 294. 11.8: RAID and HRAID reliability - p. 603 295. 11.9: Shortcut reliability analysis of HRAID - p. 605 296. 11.10: Simulation to estimate the MTTDL - p. 606 297. 11.11: Multistep recovery in HRAID - p. 610 298. 11.12: Related work - p. 615 299. 11.13: Collective Intelligent Bricks - CIB or Icecube project at IBM - p. 617 300. 11.14: Conclusions - p. 620 301. Chapter 12 Conclusions - p. 623 302. Appendix - p. 625 303. Bibliography - p. 641 304. Bibliography - Continued - p. 654 305. Bibliography - Continued - p. 666 306. Index - p. 695 307. Index - Continued - p. 703
Storage Systems: Organization, Performance, Coding, Reliability and Their Data Processing was motivated by the 1988 Redundant Array of Inexpensive/Independent Disks proposal to replace large form factor mainframe disks with an array of commodity disks. Disk loads are balanced by striping data into strips—with one strip per disk— and storage reliability is enhanced via replication or erasure coding, which at best dedicates k strips per stripe to tolerate k disk failures. Flash memories have resulted in a paradigm shift with Solid State Drives (SSDs) replacing Hard Disk Drives (HDDs) for high performance applications. RAID and Flash have resulted in the emergence of new storage companies, namely EMC, NetApp, SanDisk, and Purestorage, and a multibillion-dollar storage market. Key new conferences and publications are reviewed in this book.The goal of the book is to expose students, researchers, and IT professionals to the more important developments in storage systems, while covering the evolution of storage technologies, traditional and novel databases, and novel sources of data. We describe several prototypes: FAWN at CMU, RAMCloud at Stanford, and Lightstore at MIT; Oracle's Exadata, AWS' Aurora, Alibaba's PolarDB, Fungible Data Center; and author's paper designs for cloud storage, namely heterogeneous disk arrays and hierarchical RAID.
1. Chapter 1 Introduction - p. 1 2. 1.1: Computer systems after WW II - p. 2 3. 1.2: High level programming languages - Fortran - p. 4 4. 1.3: Effect of data representation on storage space requirements - p. 8 5. 1.4: Basic computer arithmetic - p. 10 6. 1.5: Author's experience with IBM computers in 1970s - p. 11 7. 1.6: IBM's System 360 and its successors - p. 19 8. 1.7: The IBM S/360 computer family - p. 22 9. 1.8: Operating systems associated with IBM mainframes - p. 25 10. 1.9: Early computer companies possibly competing with IBM - p. 27 11. 1.10: My experience at Burroughs Corp. - p. 28 12. 1.11: Computer company revenue rankings - p. 34 13. 1.12: Computer structures book - p. 34 14. 1.13: Computer family architectures - CFA - p. 35 15. 1.14: Virtual memory and page replacement algorithms - p. 36 16. 1.15: Memory space fragmentation and dynamic storage allocation - p. 38 17. 1.16: Analysis of thrashing in 2-phase locking - 2PL systems - p. 42 18. 1.17: CPU caches - p. 43 19. 1.18: Multiprogrammed computer systems - p. 47 20. 1.19: Timesharing systems - p. 47 21. 1.20: Mean response with FCFS and processor-sharing scheduling - p. 49 22. 1.21: Analysis of open and closed queueing network models - p. 51 23. 1.22: Bottleneck analysis and balanced job bounds - p. 53 24. 1.23: Performance analyses of I/O subsystems - p. 54 25. 1.24: Vector supercomputers - p. 56 26. 1.25: Parallel computers - p. 57 27. 1.26: The future of supercomputing - p. 61 28. 1.27: Microprocessor CPUs, GPUs, FPGAs, and ASICs - p. 64 29. 1.28: RISCV and other microprocessors - p. 67 30. 1.29: The IBM PC and its compatibles - p. 71 31. 1.30: Storage studies by Alan Jay Smith at Berkeley - p. 74 32. 1.31: Prefetching - p. 76 33. 1.32: Database buffers - p. 77 34. 1.33: Checkpointing in processing large jobs - p. 78 35. 1.34: Computer related rule of thumb - p. 79 36. 1.35: Conclusions and summary - p. 87 37. Chapter 2 Storage technologies and their data - p. 89 38. 2.1: Evolution of recording material - p. 90 39. 2.2: Advertising and e-commerce - p. 93 40. 2.3: Computer storage technologies - p. 97 41. 2.4: Reliability studies of DRAM, HDDs, & flash SSDs - p. 131 42. 2.5: Storage Networking Industry Association - SNIA - p. 135 43. 2.6: Big data and its sources - p. 136 44. 2.7: Sources of storage content - p. 137 45. 2.8: Ranking and description of media companies - p. 139 46. The Cisco Cloud Services Stack - CCSS - p. 139 47. 2.9: Sources of news: newspapers, radio and TV stations - p. 141 48. 2.10: Text editing and formatting languages - p. 144 49. 2.11: Online books sources - p. 145 50. 2.12: Free book download web sites - p. 146 51. 2.13: Data, image, audio and video compression - p. 147 52. 2.14: Main memory data compression - p. 152 53. 2.15: Data deduplication in storage systems - p. 157 54. 2.16: Up and coming data deduplication companies - p. 160 55. 2.17: Storage research at IBM's Almaden Research Center in 1990s - p. 163 56. 2.18: Cleversafe and its information dispersal technology - p. 167 57. 2.19: Recent developments at IBM Research at ARC - p. 170 58. 2.20: Storage research at Hewlett-Packard - HP - p. 171 59. 2.21: Primary storage vendors and enterprise companies in 2020 - p. 172 60. 2.22: All-flash upstart storage companies - p. 174 61. 2.23: Hyperconverged infrastructure for storage systems - p. 174 62. 2.24: Top enterprise storage backup players - p. 177 63. 2.25: Data storage companies: up and coming storage vendors - p. 177 64. 2.26: Parallel file systems - p. 179 65. 2.27: Cloud storage - p. 179 66. 2.28: Jai Menon's predictions on the future of clouds - p. 185 67. 2.29: Cloud storage companies - p. 187 68. 2.30: Distributed systems research related to clouds - p. 189 69. 2.31: Data encryption - p. 191 70. 2.32: Conclusions - predictions about storage systems - p. 193 71. Chapter 3 Disk drive data placement and scheduling - p. 197 72. Chapter 4 Mirrored & hybrid arrays - p. 223 73. 4.1: Introduction to mirrored and hybrid disk arrays - p. 223 74. 4.2: Mirrored and hybrid disk array organizations - p. 225 75. 4.3: Routing read requests in mirrored disks - p. 231 76. 4.4: Shortening the tail for response times - p. 232 77. 4.5: Improving write performance in mirrored disks - p. 235 78. 4.6: Disks with multiple R/W heads on a single and multiple arms - p. 235 79. 4.7: Seek distances in single and mirrored disks - p. 236 80. 4.8: Mirrored disk performance in normal, degraded, rebuild modes - p. 238 81. 4.9: Protecting against rare event failures in archival systems - p. 244 82. 4.10: RAIDP: ReplicAtion with IntraDisk Parity for cost effective storage of warm data - p. 247 83. 4.11: Remote mirroring for disaster recovery - p. 248 84. 4.12: RAID reliability analysis - p. 249 85. 4.13: Storage reliability research at IBM's Zurich Research Lab - p. 264 86. 4.14: Conclusions - p. 267 87. Chapter 5 Redundant Arrays of Independent Disks - RAID - p. 269 88. 5.1: Redundant Arrays of Inexpensive Disks - p. 270 89. 5.2: Early RAID products - p. 271 90. 5.3: RAID classification and motivation - p. 277 91. 5.4: RAID0 and striping - p. 278 92. 5.5: RAID2 - p. 280 93. 5.6: RAID3 - p. 281 94. 5.7: RAID4 - p. 281 95. 5.8: RAID5 - p. 281 96. 5.9: RAID5 performance analysis in normal mode - p. 284 97. 5.10: RAID(4+k) disk arrays in normal and degraded mode - p. 286 98. 5.11: Rebuild processing in disk arrays - p. 288 99. 5.12: Vacationing server model for rebuild processing - p. 290 100. 5.13: RAID5 sparing configurations for rebuild - p. 295 101. 5.14: IntraDisk Redundancy - IDR for higher reliability rebuild - p. 296 102. 5.15: Disk scrubbing for higher reliability rebuild processing - p. 298 103. 5.16: Predictive Failure Analysis - PFA - p. 301 104. 5.17: Undetected disk errors and Silent Data Corruption - SDC - p. 301 105. 5.18: Clustered RAID5 layouts - p. 303 106. 5.19: Clustered RAID designs by Walter Burkhard et al. at UCSD - p. 307 107. 5.20: Log-structured file systems and arrays - p. 311 108. 5.21: RAID6 - p. 315 109. 5.22: Reed-Solomon coding for higher reliability - p. 316 110. 5.23: Parity based MDS codes - p. 318 111. 5.24: RDP arrays and their optimal recovery - p. 318 112. 5.25: EVENODD defined and efficient rebuild of a single disk - p. 319 113. 5.26: Blaum-Roth - BR code - p. 321 114. 5.27: X-code disk arrays and rebuild mode with one and two disk failures - p. 321 115. 5.28: The RM2 disk array - p. 324 116. 5.29: RAID7 - p. 326 117. 5.30: Erasure coding for distributed storage - p. 326 118. 5.31: ReGenerating codes - p. 330 119. 5.32: Protection schemes for flash memories - p. 333 120. 5.33: Conclusions - p. 335 121. Chapter 6 Coding for multiple disk failures - p. 337 122. Chapter 7 Saving power in disks, flash memories, and servers - p. 349 123. 7.1: Introduction to power consumption in computer systems - p. 350 124. 7.2: Saving battery power in laptop computers - p. 350 125. 7.3: Varying spindown threshold based on user behavior - p. 350 126. 7.4: Exploiting idleness in storage systems - p. 351 127. 7.5: Making enterprise computers greener by protecting them better - p. 351 128. 7.6: Policy optimization for dynamic power management - p. 352 129. 7.7: Managing energy and server resources in hosting centers - p. 352 130. 7.8: Interplay of energy and performance for RAID running OLTP - p. 353 131. 7.9: Dynamic speed control for server disk power management - p. 354 132. 7.10: Approaches to conserve disk energy in network servers - p. 354 133. 7.11: Energy efficiency through burstiness - p. 355 134. 7.12: Dempsey: a tool for modeling hard disk power consumption - p. 355 135. 7.13: MAID - Massive Arrays of Idle Disks alternative to tape storage - p. 356 136. 7.14: Self-tuning power aware storage cache replacement algorithm - p. 358 137. 7.15: Popular Data Concentration - PDC - p. 359 138. 7.16: Disk layout optimization for reducing energy consumption - p. 359 139. 7.17: Managing server energy and operational costs in hosting centers - p. 360 140. 7.18: Performance directed energy management for main memory and disks - p. 362 141. 7.19: Exploiting redundancy to conserve energy in storage systems - p. 363 142. 7.20: Thermal disk drive design: challenges and possible solutions - p. 364 143. 7.21: PARAID: the gear-shifting Power-Aware RAID - p. 365 144. 7.22: DiskGroup: energy efficient disk layout for RAID1 systems - p. 365 145. 7.23: Pergamum: replacing tape with disk-based archival storage - p. 366 146. 7.24: Energy efficient RAID - ERAID - p. 367 147. 7.25: Power reduction via write-offloading - p. 368 148. 7.26: Redundant Arrays of Hybrid Disks - RAHD - p. 369 149. 7.27: Achieving power-efficient, erasure-coded storage - p. 369 150. 7.28: Effect of energy-saving schemes on disk reliability - p. 370 151. 7.29: Mathematical model of disk reliability versus load and temperature - p. 370 152. 7.30: Sample-Replicate-Consolidate mapping - SRCMap - p. 370 153. 7.31: Power Proportional Distributed File Systems - PPDFS - p. 371 154. 7.32: Dynamic locality improvement to increase effective storage performance - p. 371 155. 7.33: Disk data reorganization for reducing energy consumption - p. 372 156. 7.34: File assignment with minimal variance of service time - p. 373 157. 7.35: Striping-based Energy Aware - SEA placement - p. 376 158. 7.36: PEARL: Performance, Energy, and ReLiability balanced dynamic data distribution - p. 377 159. 7.37: Power proportionality for data center storage - p. 377 160. 7.38: Economic evaluation of energy saving with reliability constraint - p. 378 161. 7.39: Dynamic server provisioning for data center power management - p. 378 162. 7.40: Modeling the energy costs of I/O workloads - p. 379 163. 7.41: Energy proportionality is required in addition to energy efficiency - p. 380 164. 7.42: SDD design tradeoffs from energy perspective - p. 380 165. 7.43: Green AI - p. 381 166. 7.44: Conclusions - p. 382 167. Chapter 8 Database parallelism, big data and analytics, deep learning - p. 385 168. 8.1: Stonebraker's classification of computer systems - p. 387 169. 8.2: Comparison of systems from the viewpoint of CPU performance - p. 388 170. 8.3: High performance network and channel-based interconnects for storage - p. 388 171. 8.4: Concurrency and coherency control in data sharing systems - p. 393 172. 8.5: Combined shared disk and nothing systems - p. 393 173. 8.6: Parallel systems at IBM Research - p. 393 174. 8.7: Interconnection networks in IBM's BlueGene/L - p. 394 175. 8.8: Data allocation and transaction routing in multicomputers - p. 395 176. 8.9: Data allocation with a distributed relational databases - p. 397 177. 8.10: Review of multicomputer Data Base Machines - DBMs - p. 398 178. 8.11: Benchmarking in various forms - p. 402 179. 8.12: Data Base Machines - DBMs and backend processors - p. 407 180. 8.13: Head-per-track disks - p. 410 181. 8.14: Active disks projects - p. 412 182. 8.15: Multidimensional indices on disk, DRAM, and flash - p. 415 183. 8.16: Implementing indices in flash memories - p. 423 184. 8.17: Redesign of relational databases by Stonebraker et al. - p. 425 185. 8.18: Parallel Data Base Machines - DBMs - p. 428 186. 8.19: Google File System, Bigtable, and Spanner - p. 429 187. 8.20: Microsoft Azure - p. 431 188. 8.21: IBM and other cloud service providers - p. 433 189. 8.22: Distributed databases in cloud computing - p. 434 190. 8.23: SpringFS bridging agility and performance in elastic distributed storage - p. 436 191. 8.24: Snowflake cloud based data warehousing with SQL support - p. 436 192. 8.25: Review of peer-to-peer computing - p. 439 193. 8.26: Fast Array of Wimpy Nodes - FAWN - p. 441 194. 8.27: RAMCloud project at Stanford - p. 442 195. 8.28: How flash changes the design of database storage engines - p. 444 196. 8.29: Hybrid Transaction Analytic Processing - HTAP - p. 447 197. 8.30: Intelligent page store for concurrent txn and query processing - p. 447 198. 8.31: Oracle Exadata database machine - p. 447 199. 8.32: Oracle in memory option or Database in Main Memory - DBIM - p. 449 200. 8.33: MemSQL/SingleStore - p. 450 201. 8.34: Amazon Aurora - p. 451 202. 8.35: Transaction processing in the cloud - p. 451 203. 8.36: RAPID and Oracle AutoML: a fast and predictive AutoML pipeline - p. 452 204. 8.37: Benchmarking automatic ML frameworks - p. 453 205. 8.38: Alibaba's X-engine - p. 454 206. 8.39: RocksDB with ultrafast data access - p. 456 207. 8.40: LightStore project at MIT - p. 457 208. 8.41: PinK: high-speed in-storage key-value store with bounded tails - p. 457 209. 8.42: BlueDBM: an appliance for big data analytics - p. 457 210. 8.43: WiSer highly available HTAP DBMS for IoT applications - p. 458 211. 8.44: Raven RDBMS at Microsoft provides ML - p. 458 212. 8.45: Machine Learning data platform - MLdp - p. 459 213. 8.46: Databricks - p. 460 214. 8.47: Fungible - a new storage architecture for big data - p. 461 215. Ranking of networking companies - p. 461 216. 8.48: Network requirements for resource disaggregation - p. 464 217. 8.49: Deep learning and associated hardware - p. 466 218. 8.50: GPU accelerated database systems - p. 467 219. 8.51: Graphics Processing Unit - GPU solutions - p. 470 220. 8.52: Field Programmable Gate Array - FPGA solutions - p. 472 221. 8.53: Multichip modules - p. 475 222. 8.54: Unified solutions - p. 477 223. 8.55: Power consumption in FPGAs and ASICs - p. 479 224. 8.56: Hybrid approaches to acceleration - p. 480 225. 8.57: Application Specific Integrated Circuit - ASIC - p. 480 226. 8.58: Tensorflow and Tensor Processing Units - TPUs - p. 482 227. 8.59: Increasing computational challenges - p. 484 228. 8.60: Quantum Neural Nets - QNNs - p. 485 229. 8.61: Data acceleration examples - p. 485 230. 8.62: Cerebras wafer size chips vs GPUS - p. 487 231. 8.63: Conclusions - p. 491 232. Chapter 9 Structured, unstructured, and diverse databases - p. 493 233. 9.1: Categories of file systems - p. 494 234. 9.2: Mainframe count-key-data disk organizations - p. 496 235. 9.3: Hierarchical and network Data Base Management Systems - DBMSs - p. 496 236. 9.4: Relational data model - p. 498 237. 9.5: Ranking methodology for database engines - p. 503 238. 9.6: Overall ranking of all database types - p. 504 239. 9.7: Relational database management systems - p. 504 240. 9.8: Object relational databases - p. 507 241. 9.9: Data mining - p. 509 242. 9.10: Data warehousing and OLAP - p. 510 243. 9.11: Distinct schools of thought in data warehouse design - p. 513 244. 9.12: Data lakes - p. 515 245. 9.13: Open source big data projects - p. 518 246. 9.14: Semi-structured data and its model - p. 519 247. 9.15: Big data technology and the five Vs - p. 520 248. 9.16: Hadoop technology ecosphere - p. 521 249. 9.17: Distributed batch vs inline processing - p. 522 250. 9.18: NoSQL/non-relational databases - p. 523 251. 9.19: Key-value stores - p. 523 252. 9.20: Document stores - p. 525 253. 9.21: Time-series databases - p. 527 254. 9.22: Kubernetes and other containers - p. 529 255. 9.23: Graph databases - p. 531 256. 9.24: Object-oriented databases - p. 533 257. 9.25: Search engines for text - p. 534 258. 9.26: Web search engines - p. 536 259. 9.27: Resource Description Framework - RDF - p. 537 260. 9.28: Wide column stores - p. 538 261. 9.29: Multivalue databases - p. 541 262. 9.30: Native XML databases - p. 542 263. 9.31: Realtime stream processing - p. 543 264. 9.32: Event stores - p. 543 265. 9.33: Streaming analytics - p. 545 266. 9.34: Trill: a high-performance incremental query processor for diverse analytics - p. 548 267. 9.35: Summary of Forrester WaveTM streaming analytics, Q3, 2109 - p. 548 268. 9.36: Content stores - p. 551 269. 9.37: Multimodel databases - p. 552 270. 9.38: Main memory databases - p. 553 271. 9.39: Distributed file systems and object storage - p. 554 272. 9.40: Enterprise Backup and recovery software solutions - p. 557 273. 9.41: Analytics and Business Intelligence - ABI platforms - p. 558 274. 9.42: Blockchain, Bitcoin, Ethereum - p. 560 275. Chapter 10 Heterogeneous Disk Arrays - HDAs - p. 565 276. 10.1: Introduction to RAID - p. 565 277. 10.2: Data allocation in a Heterogeneous Disk Array - HDA - p. 568 278. 10.3: Analytic justification for HDA - p. 570 279. 10.4: HDA data allocation experiment setup - p. 571 280. 10.5: Data allocation experiments - p. 574 281. 10.6: Rebuild processing in HDA - p. 582 282. 10.7: RAID+ data layout based on Latin squares - p. 582 283. 10.8: Related work - p. 584 284. 10.9: Using utility functions to provision storage systems - p. 587 285. 10.10: Conclusions - p. 590 286. Chapter 11 Hierarchical RAID - HRAID - p. 593 287. 11.1: Introduction to HRAID - p. 593 288. 11.2: Intranode & internode coding in HRAID - p. 594 289. 11.3: Concurrency control in HRAID - p. 596 290. 11.4: RAID IOPS with no disk failures - p. 597 291. 11.5: RAID IOPS with disk failures - p. 598 292. 11.6: HRAID response times - p. 599 293. 11.7: HRAID2/2 performance - p. 602 294. 11.8: RAID and HRAID reliability - p. 603 295. 11.9: Shortcut reliability analysis of HRAID - p. 605 296. 11.10: Simulation to estimate the MTTDL - p. 606 297. 11.11: Multistep recovery in HRAID - p. 610 298. 11.12: Related work - p. 615 299. 11.13: Collective Intelligent Bricks - CIB or Icecube project at IBM - p. 617 300. 11.14: Conclusions - p. 620 301. Chapter 12 Conclusions - p. 623 302. Appendix - p. 625 303. Bibliography - p. 641 304. Bibliography - Continued - p. 654 305. Bibliography - Continued - p. 666 306. Index - p. 695 307. Index - Continued - p. 703