- Page 2 and 3: For your convenience Apress has pla
- Page 6 and 7: INTRODUCTIONIn January of 2011, the
- Page 11 and 12: C H A P T E R 1•••What Is Exa
- Page 13 and 14: CHAPTER 1 WHAT IS EXADATA?Figure 1
- Page 15 and 16: CHAPTER 1 WHAT IS EXADATA?Alternat
- Page 17 and 18: CHAPTER 1 WHAT IS EXADATA?reducing
- Page 19 and 20: CHAPTER 1 WHAT IS EXADATA?support
- Page 21 and 22: CHAPTER 1 WHAT IS EXADATA?the Unbr
- Page 23 and 24: CHAPTER 1 WHAT IS EXADATA?The data
- Page 25 and 26: CHAPTER 1 WHAT IS EXADATA?0.00 0.0
- Page 27 and 28: CHAPTER 1 WHAT IS EXADATA?rootroot
- Page 29 and 30: CHAPTER 1 WHAT IS EXADATA?The top
- Page 31 and 32: CHAPTER 1 WHAT IS EXADATA?User Mod
- Page 33 and 34: CHAPTER 2 OFFLOADING / SMART SCANO
- Page 35 and 36: CHAPTER 2 OFFLOADING / SMART SCANA
- Page 37 and 38: CHAPTER 2 OFFLOADING / SMART SCANo
- Page 39 and 40: CHAPTER 2 OFFLOADING / SMART SCAN-
- Page 41 and 42: CHAPTER 2 OFFLOADING / SMART SCANS
- Page 43 and 44: CHAPTER 2 OFFLOADING / SMART SCANC
- Page 45 and 46: CHAPTER 2 OFFLOADING / SMART SCAN-
- Page 47 and 48: CHAPTER 2 OFFLOADING / SMART SCAN
- Page 49 and 50: CHAPTER 2 OFFLOADING / SMART SCANK
- Page 51 and 52: CHAPTER 2 OFFLOADING / SMART SCANE
- Page 53 and 54: CHAPTER 2 OFFLOADING / SMART SCANP
- Page 55 and 56:
CHAPTER 2 OFFLOADING / SMART SCANI
- Page 57 and 58:
CHAPTER 2 OFFLOADING / SMART SCANT
- Page 59 and 60:
CHAPTER 2 OFFLOADING / SMART SCANS
- Page 61 and 62:
CHAPTER 2 OFFLOADING / SMART SCAN*
- Page 63 and 64:
CHAPTER 2 OFFLOADING / SMART SCANN
- Page 65 and 66:
CHAPTER 2 OFFLOADING / SMART SCANA
- Page 67 and 68:
CHAPTER 2 OFFLOADING / SMART SCANS
- Page 69 and 70:
CHAPTER 2 OFFLOADING / SMART SCANS
- Page 71 and 72:
CHAPTER 2 OFFLOADING / SMART SCANP
- Page 73 and 74:
CHAPTER 2 OFFLOADING / SMART SCAN_
- Page 75 and 76:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 77 and 78:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 79 and 80:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 81 and 82:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 83 and 84:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 85 and 86:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 87 and 88:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 89 and 90:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 91 and 92:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 93 and 94:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 95 and 96:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 97 and 98:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 99 and 100:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 101 and 102:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 103 and 104:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 105 and 106:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 107 and 108:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 109 and 110:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 111 and 112:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 113 and 114:
CHAPTER 3 HYBRID COLUMNAR COMPRESS
- Page 115 and 116:
CHAPTER 4 STORAGE INDEXES■ Kevin
- Page 117 and 118:
CHAPTER 4 STORAGE INDEXESSYS@EXDB1
- Page 119 and 120:
CHAPTER 4 STORAGE INDEXES2010-12-2
- Page 121 and 122:
CHAPTER 4 STORAGE INDEXESStorage I
- Page 123 and 124:
CHAPTER 4 STORAGE INDEXESPartition
- Page 125 and 126:
CHAPTER 4 STORAGE INDEXESreturned
- Page 127 and 128:
CHAPTER 4 STORAGE INDEXES■ Kevin
- Page 129 and 130:
CHAPTER 4 STORAGE INDEXESElapsed:
- Page 131 and 132:
CHAPTER 4 STORAGE INDEXESSYS@SANDB
- Page 133 and 134:
CHAPTER 4 STORAGE INDEXESIn this e
- Page 135 and 136:
CHAPTER 5 EXADATA SMART FLASH CACH
- Page 137 and 138:
CHAPTER 5 EXADATA SMART FLASH CACH
- Page 139 and 140:
CHAPTER 5 EXADATA SMART FLASH CACH
- Page 141 and 142:
CHAPTER 5 EXADATA SMART FLASH CACH
- Page 143 and 144:
CHAPTER 5 EXADATA SMART FLASH CACH
- Page 145 and 146:
CHAPTER 5 EXADATA SMART FLASH CACH
- Page 147 and 148:
CHAPTER 5 EXADATA SMART FLASH CACH
- Page 149 and 150:
CHAPTER 5 EXADATA SMART FLASH CACH
- Page 151 and 152:
CHAPTER 5 EXADATA SMART FLASH CACH
- Page 153 and 154:
CHAPTER 6 MAKING PCBSTable 6-1. Da
- Page 155 and 156:
CHAPTER 6 MAKING PCBSAuto DOPOne o
- Page 157 and 158:
CHAPTER 6 MAKING PCBSSQL_ID AVG_ET
- Page 159 and 160:
CHAPTER 6 MAKING PCBScalibration p
- Page 161 and 162:
CHAPTER 6 MAKING PCBS3. We then ju
- Page 163 and 164:
CHAPTER 6 MAKING PCBSNAME VALUE IS
- Page 165 and 166:
CHAPTER 6 MAKING PCBS-------------
- Page 167 and 168:
CHAPTER 6 MAKING PCBSparallel_serv
- Page 169 and 170:
CHAPTER 6 MAKING PCBSThis listing
- Page 171 and 172:
CHAPTER 6 MAKING PCBS584 bgcmmcyyy
- Page 173 and 174:
CHAPTER 6 MAKING PCBS7. The first
- Page 175 and 176:
CHAPTER 6 MAKING PCBSparallelized)
- Page 177 and 178:
CHAPTER 6 MAKING PCBSNow we’ll s
- Page 179 and 180:
CHAPTER 6 MAKING PCBSNote-----auto
- Page 181 and 182:
CHAPTER 6 MAKING PCBSSQL_ID AVG_ET
- Page 183 and 184:
C H A P T E R 7Resource ManagementI
- Page 185 and 186:
CHAPTER 7 RESOURCE MANAGEMENTTable
- Page 187 and 188:
CHAPTER 7 RESOURCE MANAGEMENTBEGIN
- Page 189 and 190:
CHAPTER 7 RESOURCE MANAGEMENTCLIEN
- Page 191 and 192:
CHAPTER 7 RESOURCE MANAGEMENTMAINT
- Page 193 and 194:
CHAPTER 7 RESOURCE MANAGEMENTDBA_U
- Page 195 and 196:
CHAPTER 7 RESOURCE MANAGEMENTCONSU
- Page 197 and 198:
CHAPTER 7 RESOURCE MANAGEMENTplan=
- Page 199 and 200:
CHAPTER 7 RESOURCE MANAGEMENTTest
- Page 201 and 202:
CHAPTER 7 RESOURCE MANAGEMENTJOBS=
- Page 203 and 204:
CHAPTER 7 RESOURCE MANAGEMENTUSERN
- Page 205 and 206:
CHAPTER 7 RESOURCE MANAGEMENTcol c
- Page 207 and 208:
CHAPTER 7 RESOURCE MANAGEMENTusers
- Page 209 and 210:
CHAPTER 7 RESOURCE MANAGEMENT> bur
- Page 211 and 212:
CHAPTER 7 RESOURCE MANAGEMENTNow l
- Page 213 and 214:
CHAPTER 7 RESOURCE MANAGEMENTINTER
- Page 215 and 216:
CHAPTER 7 RESOURCE MANAGEMENTSCRAT
- Page 217 and 218:
CHAPTER 7 RESOURCE MANAGEMENTwhen
- Page 219 and 220:
CHAPTER 7 RESOURCE MANAGEMENTThe a
- Page 221 and 222:
CHAPTER 7 RESOURCE MANAGEMENTdbms_
- Page 223 and 224:
CHAPTER 7 RESOURCE MANAGEMENTFigur
- Page 225 and 226:
CHAPTER 7 RESOURCE MANAGEMENTNow,
- Page 227 and 228:
CHAPTER 7 RESOURCE MANAGEMENTFigur
- Page 229 and 230:
CHAPTER 7 RESOURCE MANAGEMENT Note
- Page 231 and 232:
CHAPTER 7 RESOURCE MANAGEMENTTable
- Page 233 and 234:
CHAPTER 7 RESOURCE MANAGEMENTand l
- Page 235 and 236:
CHAPTER 7 RESOURCE MANAGEMENT3. Al
- Page 237 and 238:
CHAPTER 7 RESOURCE MANAGEMENT-- IO
- Page 239 and 240:
CHAPTER 7 RESOURCE MANAGEMENTFigur
- Page 241 and 242:
CHAPTER 7 RESOURCE MANAGEMENTCreat
- Page 243 and 244:
CHAPTER 7 RESOURCE MANAGEMENTSumma
- Page 245 and 246:
CHAPTER 8 CONFIGURING EXADATA• O
- Page 247 and 248:
CHAPTER 8 CONFIGURING EXADATArecen
- Page 249 and 250:
CHAPTER 8 CONFIGURING EXADATAconti
- Page 251 and 252:
CHAPTER 8 CONFIGURING EXADATAExada
- Page 253 and 254:
CHAPTER 8 CONFIGURING EXADATAHigh
- Page 255 and 256:
CHAPTER 8 CONFIGURING EXADATAEnvir
- Page 257 and 258:
CHAPTER 8 CONFIGURING EXADATANetwo
- Page 259 and 260:
CHAPTER 8 CONFIGURING EXADATAAddit
- Page 261 and 262:
CHAPTER 8 CONFIGURING EXADATAField
- Page 263 and 264:
CHAPTER 8 CONFIGURING EXADATADevic
- Page 265 and 266:
CHAPTER 8 CONFIGURING EXADATAIn ad
- Page 267 and 268:
CHAPTER 8 CONFIGURING EXADATAProce
- Page 269 and 270:
CHAPTER 8 CONFIGURING EXADATAcell.
- Page 271 and 272:
CHAPTER 8 CONFIGURING EXADATAOneCo
- Page 273 and 274:
CHAPTER 8 CONFIGURING EXADATAFile
- Page 275 and 276:
CHAPTER 8 CONFIGURING EXADATAexadb
- Page 277 and 278:
CHAPTER 8 CONFIGURING EXADATAFrom
- Page 279 and 280:
CHAPTER 8 CONFIGURING EXADATAConfi
- Page 281 and 282:
C H A P T E R 9Recovering ExadataYo
- Page 283 and 284:
CHAPTER 9 RECOVERING EXADATAlistin
- Page 285 and 286:
CHAPTER 9 RECOVERING EXADATAbe com
- Page 287 and 288:
CHAPTER 9 RECOVERING EXADATATable
- Page 289 and 290:
CHAPTER 9 RECOVERING EXADATAseveri
- Page 291 and 292:
CHAPTER 9 RECOVERING EXADATASystem
- Page 293 and 294:
CHAPTER 9 RECOVERING EXADATAWhen t
- Page 295 and 296:
CHAPTER 9 RECOVERING EXADATAExtern
- Page 297 and 298:
CHAPTER 9 RECOVERING EXADATAHere y
- Page 299 and 300:
CHAPTER 9 RECOVERING EXADATABackin
- Page 301 and 302:
CHAPTER 9 RECOVERING EXADATAcompre
- Page 303 and 304:
CHAPTER 9 RECOVERING EXADATAboot i
- Page 305 and 306:
CHAPTER 9 RECOVERING EXADATABefore
- Page 307 and 308:
CHAPTER 9 RECOVERING EXADATACell R
- Page 309 and 310:
CHAPTER 9 RECOVERING EXADATASYS:+A
- Page 311 and 312:
CHAPTER 9 RECOVERING EXADATADiskGo
- Page 313 and 314:
CHAPTER 9 RECOVERING EXADATAAmber
- Page 315 and 316:
CHAPTER 9 RECOVERING EXADATA)where
- Page 317 and 318:
CHAPTER 9 RECOVERING EXADATATable
- Page 319 and 320:
CHAPTER 9 RECOVERING EXADATACALIBR
- Page 321 and 322:
CHAPTER 9 RECOVERING EXADATAWARNIN
- Page 323 and 324:
CHAPTER 9 RECOVERING EXADATACELLCl
- Page 325 and 326:
C H A P T E R 10Exadata Wait Events
- Page 327 and 328:
CHAPTER 10 EXADATA WAIT EVENTSThe
- Page 329 and 330:
CHAPTER 10 EXADATA WAIT EVENTSLOAD
- Page 331 and 332:
CHAPTER 10 EXADATA WAIT EVENTSthe
- Page 333 and 334:
CHAPTER 10 EXADATA WAIT EVENTS■
- Page 335 and 336:
CHAPTER 10 EXADATA WAIT EVENTSEven
- Page 337 and 338:
CHAPTER 10 EXADATA WAIT EVENTSTABL
- Page 339 and 340:
CHAPTER 10 EXADATA WAIT EVENTSLOAD
- Page 341 and 342:
CHAPTER 10 EXADATA WAIT EVENTSWAIT
- Page 343 and 344:
CHAPTER 10 EXADATA WAIT EVENTSExad
- Page 345 and 346:
CHAPTER 10 EXADATA WAIT EVENTSBy t
- Page 347 and 348:
CHAPTER 10 EXADATA WAIT EVENTSReso
- Page 349 and 350:
CHAPTER 10 EXADATA WAIT EVENTSWAIT
- Page 351 and 352:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 353 and 354:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 355 and 356:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 357 and 358:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 359 and 360:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 361 and 362:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 363 and 364:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 365 and 366:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 367 and 368:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 369 and 370:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 371 and 372:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 373 and 374:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 375 and 376:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 377 and 378:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 379 and 380:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 381 and 382:
CHAPTER 11 UNDERSTANDING EXADATA P
- Page 383 and 384:
C H A P T E R 12Monitoring Exadata
- Page 385 and 386:
CHAPTER 12 MONITORING EXADATA PERF
- Page 387 and 388:
CHAPTER 12 MONITORING EXADATA PERF
- Page 389 and 390:
CHAPTER 12 MONITORING EXADATA PERF
- Page 391 and 392:
CHAPTER 12 MONITORING EXADATA PERF
- Page 393 and 394:
CHAPTER 12 MONITORING EXADATA PERF
- Page 395 and 396:
CHAPTER 12 MONITORING EXADATA PERF
- Page 397 and 398:
CHAPTER 12 MONITORING EXADATA PERF
- Page 399 and 400:
CHAPTER 12 MONITORING EXADATA PERF
- Page 401 and 402:
CHAPTER 12 MONITORING EXADATA PERF
- Page 403 and 404:
CHAPTER 12 MONITORING EXADATA PERF
- Page 405 and 406:
CHAPTER 12 MONITORING EXADATA PERF
- Page 407 and 408:
CHAPTER 12 MONITORING EXADATA PERF
- Page 409 and 410:
CHAPTER 12 MONITORING EXADATA PERF
- Page 411 and 412:
CHAPTER 12 MONITORING EXADATA PERF
- Page 413 and 414:
CHAPTER 12 MONITORING EXADATA PERF
- Page 415 and 416:
CHAPTER 12 MONITORING EXADATA PERF
- Page 417 and 418:
CHAPTER 12 MONITORING EXADATA PERF
- Page 419 and 420:
CHAPTER 12 MONITORING EXADATA PERF
- Page 421 and 422:
CHAPTER 12 MONITORING EXADATA PERF
- Page 423 and 424:
C H A P T E R 13Migrating to Exadat
- Page 425 and 426:
CHAPTER 13 MIGRATING TO EXADATAgoo
- Page 427 and 428:
CHAPTER 13 MIGRATING TO EXADATApor
- Page 429 and 430:
CHAPTER 13 MIGRATING TO EXADATAREM
- Page 431 and 432:
CHAPTER 13 MIGRATING TO EXADATAdat
- Page 433 and 434:
CHAPTER 13 MIGRATING TO EXADATA No
- Page 435 and 436:
CHAPTER 13 MIGRATING TO EXADATA No
- Page 437 and 438:
CHAPTER 13 MIGRATING TO EXADATANot
- Page 439 and 440:
CHAPTER 13 MIGRATING TO EXADATA(SE
- Page 441 and 442:
CHAPTER 13 MIGRATING TO EXADATASQL
- Page 443 and 444:
CHAPTER 13 MIGRATING TO EXADATAinc
- Page 445 and 446:
CHAPTER 13 MIGRATING TO EXADATAIn
- Page 447 and 448:
CHAPTER 13 MIGRATING TO EXADATAReq
- Page 449 and 450:
CHAPTER 13 MIGRATING TO EXADATATab
- Page 451 and 452:
CHAPTER 13 MIGRATING TO EXADATA•
- Page 453 and 454:
CHAPTER 13 MIGRATING TO EXADATAThe
- Page 455 and 456:
CHAPTER 13 MIGRATING TO EXADATAcon
- Page 457 and 458:
CHAPTER 13 MIGRATING TO EXADATA2.
- Page 459 and 460:
CHAPTER 13 MIGRATING TO EXADATAsin
- Page 461 and 462:
CHAPTER 13 MIGRATING TO EXADATASYS
- Page 463 and 464:
CHAPTER 13 MIGRATING TO EXADATAint
- Page 465 and 466:
CHAPTER 13 MIGRATING TO EXADATA•
- Page 467 and 468:
CHAPTER 13 MIGRATING TO EXADATAWhe
- Page 469 and 470:
CHAPTER 13 MIGRATING TO EXADATAPla
- Page 471 and 472:
CHAPTER 14 STORAGE LAYOUTLinux O/S
- Page 473 and 474:
CHAPTER 14 STORAGE LAYOUTDATA_DGCE
- Page 475 and 476:
CHAPTER 14 STORAGE LAYOUT…o/192.
- Page 477 and 478:
CHAPTER 14 STORAGE LAYOUTFastest T
- Page 479 and 480:
CHAPTER 14 STORAGE LAYOUTCellCLI>
- Page 481 and 482:
CHAPTER 14 STORAGE LAYOUT• The n
- Page 483 and 484:
CHAPTER 14 STORAGE LAYOUTstorage c
- Page 485 and 486:
CHAPTER 14 STORAGE LAYOUT• DATA_
- Page 487 and 488:
CHAPTER 14 STORAGE LAYOUTCellCLI>
- Page 489 and 490:
CHAPTER 14 STORAGE LAYOUTTable 14-
- Page 491 and 492:
CHAPTER 14 STORAGE LAYOUTby the AS
- Page 493 and 494:
CHAPTER 14 STORAGE LAYOUT> chmod 6
- Page 495 and 496:
CHAPTER 14 STORAGE LAYOUTSYS:+PAY>
- Page 497 and 498:
CHAPTER 14 STORAGE LAYOUTCellCLI>
- Page 499 and 500:
C H A P T E R 15Compute Node Layout
- Page 501 and 502:
CHAPTER 15 COMPUTE NODE LAYOUT■
- Page 503 and 504:
CHAPTER 15 COMPUTE NODE LAYOUTDB1D
- Page 505 and 506:
CHAPTER 15 COMPUTE NODE LAYOUTDisk
- Page 507 and 508:
CHAPTER 15 COMPUTE NODE LAYOUTRAC
- Page 509 and 510:
CHAPTER 15 COMPUTE NODE LAYOUTClus
- Page 511 and 512:
CHAPTER 15 COMPUTE NODE LAYOUTswit
- Page 513 and 514:
CHAPTER 16 UNLEARNING SOME THINGS
- Page 515 and 516:
CHAPTER 16 UNLEARNING SOME THINGS
- Page 517 and 518:
CHAPTER 16 UNLEARNING SOME THINGS
- Page 519 and 520:
CHAPTER 16 UNLEARNING SOME THINGS
- Page 521 and 522:
CHAPTER 16 UNLEARNING SOME THINGS
- Page 523 and 524:
CHAPTER 16 UNLEARNING SOME THINGS
- Page 525 and 526:
CHAPTER 16 UNLEARNING SOME THINGS
- Page 527 and 528:
CHAPTER 16 UNLEARNING SOME THINGS
- Page 529 and 530:
CHAPTER 16 UNLEARNING SOME THINGS
- Page 531 and 532:
CHAPTER 16 UNLEARNING SOME THINGS
- Page 533 and 534:
CHAPTER 16 UNLEARNING SOME THINGS
- Page 535 and 536:
CHAPTER 16 UNLEARNING SOME THINGS
- Page 537 and 538:
APPENDIX A CELLCLI AND DCLI8. Ther
- Page 539 and 540:
APPENDIX A CELLCLI AND DCLIdbUniqu
- Page 541 and 542:
APPENDIX A CELLCLI AND DCLIwhere d
- Page 543 and 544:
APPENDIX A CELLCLI AND DCLInotific
- Page 545 and 546:
APPENDIX A CELLCLI AND DCLIcell_gr
- Page 547 and 548:
APPENDIX B ONLINE EXADATA RESOURCE
- Page 549 and 550:
APPENDIX C DIAGNOSTIC SCRIPTSScrip
- Page 551 and 552:
APPENDIX C DIAGNOSTIC SCRIPTSScrip
- Page 553 and 554:
• INDEXcell metricsDESCRIBE METRI
- Page 555 and 556:
• INDEXDiagnostic scripts, 547as.
- Page 557 and 558:
• INDEXExternal USB drive, recove
- Page 559 and 560:
• INDEXManual parallel degree pol
- Page 561 and 562:
• INDEXSmart Scan, 387metrics and
- Page 563 and 564:
• INDEXUser I/O class (cont.)phys
- Page 565 and 566:
n CONTENTS AT A GLANCEExpert Oracle
- Page 567 and 568:
• CONTENTSBits and Pieces........
- Page 569 and 570:
• CONTENTSSummary ...............
- Page 571 and 572:
• CONTENTSDBRM Example ..........
- Page 573 and 574:
• CONTENTScell list of blocks phy
- Page 575 and 576:
• CONTENTSSummary ...............
- Page 577 and 578:
About the Author Kerry Osborne bega
- Page 579:
AcknowledgmentsAs always, it’s th