Changeset 413
- Timestamp:
- Apr 9, 2004, 3:14:49 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/doc/design/specs.tex (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/design/specs.tex
r409 r413 1 %%% $Id: specs.tex,v 1. 1 2004-04-09 02:25:41eugene Exp $1 %%% $Id: specs.tex,v 1.2 2004-04-10 01:14:49 eugene Exp $ 2 2 \documentclass[panstarrs]{panstarrs} 3 3 … … 53 53 Open Issues and TBDs in this document are marked \tbd{in bold, red 54 54 with surrounding square brackets}. 55 56 All timing measurements are to execution time as measured on a 57 \tbd{Reference Pan-Starrs Computation Node} and assumed to be not 58 limited by network bandwidth. 59 55 60 56 61 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 279 284 \paragraph{Pixel Server} 280 285 281 \begin{itemize} 282 \item $T_{\rm min}$ is the minimum time between exposures. $T_{\rm min}$ is 283 assumed to always be $\ge 30s$. 284 \item All timing measurements are to execution time as measured on a 285 \tbd{Reference Pan-Starrs Computation Node} and assumed to be not limited 286 by network bandwidth. 287 \end{itemize} 288 289 \begin{enumerate} 290 \item IPP Pixel Data Scheduler 291 \item IPP Pixel Data Locality Optimizer 292 \item IPP Pixel Data Database 293 \item IPP Pixel Data Retrieval Agent 294 \item IPP Pixel Data Query Library 295 \item IPP Pixel Data I/O Library 296 \end{enumerate} 297 298 \subparagraph{IPP Pixel Data Scheduler (IPP-PDS)} 299 300 {\it Inputs} 301 302 \begin{itemize} 303 \item Accepts an XML document containing the type of operation and image 304 meta-data if applicable. 305 \end{itemize} 306 307 The input document is one of the follow classes of message. 308 309 \begin{itemize} 310 \item {\em new data notification} 311 \item {\em move data request} 312 \item {\em copy data request} 313 \item {\em delete data request} 314 \end{itemize} 315 316 \tbd{The format of this XML doc is TBD.} 317 \tbd{The application layer transport protocol is TBD.} 318 319 {\it Outputs} 320 321 Outputs an XML document containing one or more {\em data managements tasks}. 322 This document is to be passed through all registered filters that match it's 323 task type. The document is then sent to the IPP Controller. 324 325 The IPP-PDS can fulfill all of it's modes of operations by generating just two 326 types of {\em data management tasks}. 327 328 \begin{itemize} 329 \item {\em retrieve data task} 330 \item {\em delete data task} 331 \end{itemize} 332 333 Seemingly there should be a third task type {\em move data} but this can be 334 broken down into a {\em retrieve data} task and a {\em delete data}. This 335 strategy has the added benefit of adding atomicity to the operation. 336 337 \tbd{The format of this XML doc is TBD.} 338 \tbd{The application layer transport protocol is TBD.} 339 340 {\it Configuration} 341 342 A configuration file defining at least the address of IPP Controller and the 343 IPP Pixel Data Database connection string. 344 345 \tbd{The format of this file is TDB.} 346 347 {\it Performance} 348 349 The IPP-PDS must be able to concurrently: 350 351 \begin{itemize} 352 \item receive and process 260 {\em new data notifications} in less time 353 then ${T_{\rm min}}$. 354 \item generate, filter, and transmit 260 {\em data management tasks} in less 355 time then ${T_{\rm min}}$. 356 \end{itemize} 357 358 \subparagraph{IPP Pixel Data Locality Optimizer (IPP-PDLO)} 359 360 {\it Inputs} 361 362 \begin{itemize} 363 \item Accepts an XML document containing one or {\em data management tasks}. 364 \end{itemize} 365 366 \tbd{The format of this XML doc is TBD.} 367 \tbd{The I/O protocol is TBD (possibly stdin/stdout).} 368 369 {\it Outputs} 370 371 \begin{itemize} 372 \item Outputs an XML document containing one or {\em data management tasks}. 373 \end{itemize} 374 375 \tbd{The format of this XML doc is TBD.} 376 \tbd{The I/O protocol is TBD (possibly stdin/stdout).} 377 378 \subparagraph{Configuration} 379 380 A configuration file defining what sort of optimization should be done and 381 the IPP Pixel Data Database connection string. 382 383 \tbd{The format of this file is TDB.} 384 385 \subparagraph{Performance} 386 387 \begin{itemize} 388 \item The time spent in this filter should be added to the execution timing of 389 the IPP Pixel Data Scheduler and can not cause it to exceed $T_{\rm min}$. 390 \end{itemize} 391 392 \subparagraph{IPP Pixel Data Database (IPP-PDD)} 393 394 The IPP Pixel Data Database will maintain a record of {\em new data notifications} 395 received from the Summit Pixel Server, the storage location of downloaded but 396 unreduced image data, the storage location of reduced image data, the storage 397 location of stacked image data, and the storage location of calibration data. 398 \tbd{In addition to the storage location(s) of image data some or all of it's 399 associated meta-data will contained in the IPP-PDD} 400 401 {\it Interfaces} 402 403 \begin{itemize} 404 \item Native database bindings 405 \item ODBC 406 \end{itemize} 407 408 {\it Configuration} 409 410 \tbd{Database scheme is TBD.} 411 412 {\it Functionality} 413 414 \begin{itemize} 415 \item Linux $\ge$ 2.4.x and Glibc $\ge$ 2.3 416 \item SQL Syntax $\ge$ SQL-99 417 \item native bindings for C and Perl 418 \item databases size $\ge 1TB$ 419 \item ODBC $\ge 3.5$ 420 \item basic stored procedure support 421 \item hot backups 422 \item replication 423 \end{itemize} 424 425 {\it Performance} 426 427 \begin{itemize} 428 \item Process $> 30 \times 260$ select, insert, update, or delete queries in less time then 429 ${T_{\rm min}}$. 430 \end{itemize} 431 432 \subparagraph{IPP Pixel Data Retrieval Agent (IPP-PDRA)} 433 434 One instance of the IPP Pixel Data retrieval Agent is spawned per 435 {\em data management task} that needs to be serviced. The IPP Pixel Data I/O 436 Library will be used to retrieve a URI into memory and to write data from 437 memory to a specified URI. \tbd{File lock management may or may not be 438 necessary within this component.} 439 440 {\it Inputs} 441 442 \begin{itemize} 443 \item Accepts an XML document containing one or {\em data management tasks}. 444 \end{itemize} 445 446 \tbd{The format of this XML doc is TBD.} 447 \tbd{The I/O protocol is TBD (possibly stdin/stdout).} 448 449 {\it Outputs} 450 451 \begin{itemize} 452 \item Returns an XML document containing one or completed {\em data management tasks}. 453 \end{itemize} 454 455 \tbd{The format of this XML doc is TBD.} 456 \tbd{The I/O protocol is TBD (possibly stdin/stdout).} 457 458 {\it Configuration} 459 460 A configuration file defining the address of the IPP Controller. 461 462 \tbd{The format of this file is TDB.} 463 464 {\it Performance} 465 466 \begin{itemize} 467 \item Must capable of fully saturating a $1Gb/s$ network connection via the 468 IPP-PDIOL. 469 \end{itemize} 470 471 \subparagraph{IPP Pixel Data Query Library (IPP-PDQL)} 472 473 The IPP Pixel Data Query Library must hide all SQL details from the caller. 474 475 {\it Interfaces} 476 477 \begin{itemize} 478 \item C API 479 \item Perl (XSub of the C API) API 480 \end{itemize} 481 482 {\it Configuration} 483 484 A configuration file with the database connection string. 485 486 \tbd{The format of this file is TDB.} 487 488 {\it Query Types} 489 490 The IPP-PDQL only supports simple database queries. 491 492 \tbd{The specific queries supported is TDB.} 493 494 {\it Performance} 495 496 \begin{itemize} 497 \item Process $> 30$ select, insert, update, or delete queries in less time then 498 ${T_{\rm min}}$. 499 \end{itemize} 500 501 \subparagraph{IPP Pixel Data I/O Library (IPP-PDIOL)} 502 503 The IPP Pixel Data I/O Library retrieves data from or writes data to \cite{uri}s. 504 Must be able to download multiple segments of a file simultaneously if the 505 transport protocol supports it. Similar to the \cite{proz} download accelerator. 506 Must be able to handle file locking issues if the transport protocol supports it. 507 The HTTP/WEBDAV protocol should be implement with the \cite{neon} library. 508 509 {\it Interfaces} 510 511 \begin{itemize} 512 \item C API 513 \item Perl (XSub of the C API) API 514 \end{itemize} 515 516 {\it Configuration} 517 518 A configuration file defining the optional behaviors for the protocols that 519 have optional features. 520 521 \tbd{The format of this file is TDB.} 522 523 {\it Protocols} 524 525 Must support at least the following protocols: 526 527 \begin{itemize} 528 \item \cite{http} 529 \item \cite{http} w/\cite{webdav} 530 \item \cite{ftp} 531 \item \cite{rsync} 532 \item file 533 \end{itemize} 534 535 {\it Performance} 536 537 \begin{itemize} 538 \item Must capable of fully saturating a $1Gb/s$ network connection. 539 \end{itemize} 540 541 \subparagraph{Pixel Data Flow} 542 543 \subparagraph{Bandwidth} 544 545 \begin{enumerate} 546 \item Summit Pixel Server(s) 547 \begin{itemize} 548 \item $n \times$ \tbd{TBD} 549 \begin{itemize} 550 \item $\frac{2 \times 2.4Gb/s}{n}$ 551 \end{itemize} 552 \end{itemize} 553 \item Summit Core Switch 554 \begin{itemize} 555 \item Cisco 65xx 556 \begin{itemize} 557 \item $2 \times 2.4Gb/s$ 558 \end{itemize} 559 \end{itemize} 560 \item Summit Border Router 561 \begin{itemize} 562 \item Cisco 76xx 563 \begin{itemize} 564 \item $1 \times 2.4Gb/s$ 565 \end{itemize} 566 \end{itemize} 567 \item Summit $\Longleftrightarrow$ Data Center connection (WAN link) 568 \begin{itemize} 569 \item $2 \times 1Gb/s$ Ethernet (over ATM/Sonet) or OC-48 Sonet 570 \begin{itemize} 571 \item $1 \times 2.4Gb/s$ 572 \end{itemize} 573 \end{itemize} 574 \item Data Center Border Router 575 \begin{itemize} 576 \item Cisco 76xx 577 \begin{itemize} 578 \item $1 \times 2.4Gb/s$ 579 \end{itemize} 580 \end{itemize} 581 \item IPP Cluster Core Switch 582 \begin{itemize} 583 \item Cisco 65xx 584 \begin{itemize} 585 \item $48Gb/s$ 586 \end{itemize} 587 \end{itemize} 588 \item IPP Cluster Nodes 589 \begin{itemize} 590 \item $240 \times$ \tbd{Reference Pan-Starrs Computation Node} 591 \begin{itemize} 592 \item $\frac{48Gb/s}{240}$ 593 \end{itemize} 594 \end{itemize} 595 \item Extended Network 596 \begin{itemize} 597 \item Cisco 65xx 598 \begin{itemize} 599 \item \tbd{TBD} 600 \end{itemize} 601 \end{itemize} 602 \item Static Sky DB, other components, etc. 603 \begin{itemize} 604 \item \tbd{TBD} 605 \begin{itemize} 606 \item \tbd{TBD} 607 \end{itemize} 608 \end{itemize} 609 \end{enumerate} 610 611 \begin{figure} 612 \begin{center} 613 % \resizebox{!}{20cm}{\includegraphics{pixel_wan.epsi}} 614 \caption{ \label{acquisition} Pixel Data Flow: Bandwidth} 615 \end{center} 616 \end{figure} 617 \pagebreak 618 619 \subparagraph{Bandwidth Estimates} 620 621 {\it Assumptions} 622 623 \begin{itemize} 624 \item $T_{\rm min} = 30s$ 625 \end{itemize} 626 627 {\it Exposure with overclocks in integer} 628 629 {\it Storage Size} 630 $$2bytes \times (4096^2pixels \times 1.125overclocks) \times 240otas = 72477573120b$$ 631 632 {\it Bandwidth Requirement} 633 $$\frac{72477573120b}{T_{\rm min}} = 2415919104b/s$$ 634 635 {\it Exposure in float} 636 637 {\it Storage Size} 638 $$4bytes \times 4096^2pixels \times 240otas = 128849018880b$$ 639 640 {\it Bandwidth Requirement} 641 $$\frac{128849018880b}{T_{\rm min}} = 4294967296b/s$$ 642 643 {\it Stacked exposure in float} 644 645 {\it Storage Size} 646 $$4bytes \times 4096^2pixels \times 60otas = 32212254720b$$ 647 648 {\it Bandwidth Requirement} 649 $$\frac{32212254720b}{T_{\rm min}} = 1073741824b/s$$ 650 651 {\it Full calibration set in float} 652 653 $$(1 \times debias, 1 \times dark, 1 \times flat, 2 \times fringe, 2 \times sky)$$ 654 655 {\it Storage Size} 656 $$7 \times (exposure\ in\ float) = 901943132160b$$ 657 658 {\it Bandwidth Requirement} 659 $$\frac{901943132160b}{T_{\rm min}} = 30064771072b/s$$ 660 661 {\it Aggregate Bandwidth Requirement} 662 663 \begin{center} 664 % \begin{tabular}{>{$}l<{$}>{$}r<{$}l} 665 \begin{tabular}{lrl} 666 [phase 2]&&\\ 667 & 2415919104b/s & summit $\rightarrow$ disk (exposure)\\ 668 +& 2415919104b/s & non-local disk $\rightarrow$ memory (exposure)\\ 669 +& 30064771072b/s& non-local disk $\rightarrow$ memory (calibration)\\ 670 +& 4294967296b/s & memory $\rightarrow$ non-local disk (reduced)\\ 671 \cline{1-2} 672 & 39,191,576,576b/s &\\ 673 674 [phase 4]&&\\ 675 & 4294967296b/s & non-local disk $\rightarrow$ memory (reduced)\\ 676 +& 1073741824b/s & non-local disk $\rightarrow$ memory (best)\\ 677 +& 1073741824b/s & non-local disk $\rightarrow$ memory (working)\\ 678 +& 1073741824b/s & memory $\rightarrow$ non-local disk (diff)\\ 679 +& 1073741824b/s & memory $\rightarrow$ non-local disk (working)\\ 680 \cline{1-2} 681 & 8,589,934,592b/s &\\ 682 683 [total]&&\\ 684 & 39191576576b/s & [phase 2] total\\ 685 +& 8589934592b/s & [phase 4] total\\ 686 \cline{1-2} 687 & 47,781,511,168b/s & $\sim48Gb/s$ 688 \end{tabular} 689 \end{center} 690 691 \subparagraph{IPP Pixel Data Database Query Estimates} 692 693 {\it Assumptions} 694 695 \begin{itemize} 696 \item There is no caching of query results. 697 \end{itemize} 698 699 {\it Acquisition} 700 701 \begin{itemize} 702 \item select new data notification from IPP Data Scheduler 703 \item insert new data notification from IPP Data Scheduler 704 \item select from IPP Pixel Data Locality Optimizer 705 \item select new data notification from IPP Pixel Data Scheduler 706 \item update new data notification from IPP Pixel Data Scheduler 707 \item select data available from IPP Pixel Data Scheduler 708 \item insert data available from IPP Pixel Data Scheduler 709 \end{itemize} 710 711 {\it Phase 2} 712 713 \begin{itemize} 714 \item select data available from IPP Scheduler 715 \item select $\times 7$ calibration data from IPP Image Agent 716 \item select data available from IPP Scheduler 717 \item update data available from IPP Scheduler 718 \item select reduced data available from IPP Scheduler 719 \item insert reduced data available from IPP Scheduler 720 \end{itemize} 721 722 {\it yPhase 4} 723 724 \begin{itemize} 725 \item select reduced data available from IPP Scheduler 726 \item select $\times 2$ stacked data from IPP Image Agent 727 \item select reduced data available from IPP Scheduler 728 \item update reduced data available from IPP Scheduler 729 \item select stacked data available from IPP Scheduler 730 \item insert stacked data available from IPP Scheduler 731 \item select difference data available from IPP Scheduler 732 \item insert difference data available from IPP Scheduler 733 \end{itemize} 734 735 \begin{verbatim} 736 \bibitem[Link aggregation]{aggregation} 737 http://cisco.com/en/US/products/hw/switches/ps708/products\_configuration\_guide\_chapter09186a008019f011.html 738 \bibitem[ProZilla]{proz} 739 http://prozilla.genesys.ro/ 740 \bibitem[neon]{neon} 741 http://www.webdav.org/neon/ 742 \bibitem[Uniform Resource Identifiers (URI)]{uri} 743 ftp://ftp.rfc-editor.org/in-notes/rfc2396.txt 744 \bibitem[HTTP]{http} 745 ftp://ftp.rfc-editor.org/in-notes/rfc2616.txt 746 \bibitem[WEBDAV]{webdav} 747 ftp://ftp.rfc-editor.org/in-notes/rfc2518.txt\\ 748 ftp://ftp.rfc-editor.org/in-notes/rfc3253.txt\\ 749 ftp://ftp.rfc-editor.org/in-notes/rfc3648.txt 750 \bibitem[FTP]{ftp} 751 ftp://ftp.rfc-editor.org/in-notes/rfc454.txt 752 \bibitem[rsync]{rsync} 753 http://rsync.samba.org/ 754 \end{verbatim} 286 The IPP Pixel Server \tbd{rename as Image Server?} is a large data 287 store for all images used by the IPP. The Pixel Server is required to 288 store all of the images needed by the IPP for the length of time they 289 are required; total data volume is specified in detail in the hardware 290 summary, but is in the vicinity of \tbd{700 GB}. 291 292 The IPP Pixel Server must maintain a record of all images currently 293 available in the repository \tbd{and all no longer available}. This 294 record shall include the image name, location (which machine), the 295 state of the image (available, deleted), the image size, the image 296 type, and the existence and location of secondary copies of the 297 image. This information need not include other metadata such as the 298 image summary statistics or the state of the image processing for the 299 image. 300 301 The IPP Pixel Server shall store images as FITS files on disk. Raw 302 images from the telescope shall be stored as individual OTA images for 303 each file, with multiple Cell images per file as well as video 304 sequences from the guide stars. Images of the Static Sky shall be 305 stored in the form of \tbd{triangular segments} to minimize the total 306 data volume and pixel overlap. 307 308 The IPP Pixel Server shall distribute images across a cluster of 309 machines. The IPP Pixel Server shall be capable of honoring requests 310 to store an image on a specific machine. If such a request cannot be 311 honored, the IPP Pixel Server shall select an appropriate machine and 312 notify the requesting agent of the new locations. The IPP Pixel 313 Server shall provide a mechanism to maintain multiple (at least two) 314 copies of a single known image. 315 316 The IPP Pixel Server must interface with other subsystems of the IPP. 317 It must provide an interface to other IPP subsystems to identify the 318 image location (the computer on which it resides). It must provide a 319 mechanism to serve a specified image to another IPP or Pan-STARRS 320 subsystem. It must provide a mechanism for deletion of images in the 321 Pixel Server. It must have a mechanism to accept or retrieve an image 322 from another Pan-STARRS subsystem, in particular OATS. Communication 323 of messages between the IPP Pixel Server and other subsystem shall be 324 via \tbd{XML messages} passed via \tbd{some transport}. 325 326 The IPP Pixel Server must accept images at the telescope maximum rate 327 of 1 full-camera image every 30 seconds. The IPP Pixel Server must 328 accept notifications and process retrievals at a rate of 128 raw OTAs 329 per 60 seconds. 330 331 \tbd{O/S, language, SQL, ODBC requirements?} 332 333 \tbd{hardware requirements?} 334 335 \tbd{communication protocols?} 336 337 \paragraph{P\&A Database} 338 339 The IPP requires a mechanism to store data related to astronomical 340 objects derived from various sources with a variety of associations. 341 The PnA (Photometry and Astrometry) Database serves this function. 342 The PnA Database deals with two related concepts: {\em objects} and 343 {\em detections}. The objects are descriptions of astronomical 344 objects while the detections are the specific measurements of those 345 objects on an image. A collection of {\em detections} may be used to 346 derive average quantities which describe a particular {\em object}. 347 348 The PnA Database must store the collections of detections which were 349 derived from specific images from any of the analysis stages. It must 350 be possible to determine and locate (perhaps via interactions with the 351 pixel server) the image from which a specific detection was derved. 352 It must also be possible to extract all detections derived from a 353 specific images. These associations must include descriptive 354 information including the coordinates of the detection on the image. 355 356 The PnA Database must provide a mechanism to associate together 357 multiple detections of a specific object. Several major classes of 358 objects will be present, each of which must be handled correctly. 359 360 First, the distant stars will have nearly fixed locations relative to 361 other nearby stars, with only small deviations for individual 362 measurements. The association between multiple detections of such 363 objects must be made on the basis of their coincident positions. The 364 PnA Database must be able to determine the average position of the 365 object and the deviations of the individual detections from that 366 average. 367 368 Second, solar system objects do not have a fixed location and 369 detections of such objects must associated on the basis of their 370 coincidence with the orbit of the objects. The PnA Database must be 371 able to associate detections with the orbits of known objects. The 372 determination of this association is the responsibility of the MOPS 373 and must be communicated to the IPP PnA Database on \tbd{some 374 timescale}. The PnD Database must be able to retrieve the 375 detections associated with the object and to provide the object 376 associated with the specific detections. This association must 377 include descriptive information such as the offset of the detection 378 from the predicted location of the detection based on the orbit. 379 380 Third, stars in the general vicinity of the solar system fall in 381 between these first two classes of objects. Their proper motion and 382 parallax response is significant enough ($>1\asec$ in 10 years) that 383 they are not well-described by an average location and a collection of 384 offsets. These objects must be described by a distance and a proper 385 motion vector. The PnA Database must be able to find and associate 386 detections of objects for which either of the parallax or the proper 387 motion are substantial. 388 389 Fourth, many detections, especially in their initial states, will not 390 be associated with a specific astronomical object of any of the above 391 classes and should be treated as orphans. Some of these will be 392 suprious (not represent real objects), some will be from solar system 393 objects for which orbits are not yet determined, some will be from 394 faint stars near the detection limits, some will be from short-term 395 transients which have only been detected once. The PnA Database must 396 be able to carry these detections until they have been associated with 397 one of the objects above. It must be possible to migrate individual 398 detections associated with an astronomical object back to the orphan 399 state. 400 401 For every object, and all orphaned detections, it must be possible to 402 determine the images for which the coordinates were included but for 403 which no detection was made. The minimum set of information which 404 must be carried for these non-detections is the image and the 405 associated object or orphan. 406 407 The PnA Database must store the relationships between various 408 photometric systems and, in some cases, the evolution of that 409 relationship. It must be possible, given a determined set of 410 calibrations, to convert between the measured instrumental magnitude 411 of a detection with a specific filter, detector, and telescope, and at 412 particular time and the implied magnitude in the average Pan-STARRS 413 magnitude systems. It must also be possible, given the magnitudes of 414 an object in one system to convert those to the magnitudes in another 415 system; an example of such a conversion is between the average 416 Pan-STARRS filter systems and the various reference systems 417 appropriate for those filters. 418 419 The PnA Database must provide interfaces to extract lists of objects 420 and detections based on various query parameters. It must be possible 421 to extract all detections associated with a specific object, all 422 non-detections of that object (or orphan) and summary statistics from 423 these collections. It must be possible to extract all objects or 424 detections within specified spatial regions including regions bounded 425 by great circles (RA,DEC; GLAT,GLON; ELAT,ELON) and regions described 426 by a location and a search radius. It must be possible to extract the 427 image parameters associated with a specific detection including image 428 coordinates of the detection, exposure time, time and date of the 429 detection, etc. 430 431 \tbd{volume requirements} 432 433 \tbd{speed / access requirements} 434 435 \paragraph{Metadata Database} 436 437 The IPP requires a Metadata Database to store and provide access to 438 metadata of various types and from various sources. Metadata in the 439 context of the IPP represents all data which is not included in the 440 two data stores discussed above (Images and Detection/Objects). 441 Metadata is generated at the telescope and during the various analysis 442 stages 443 444 The Metadata Database must store and provide metadata for all raw 445 images, for processed images, for the calibration images (both raw and 446 master), for the extracted object lists. Metadata describing the 447 environmental conditions at the telescope must also be stored and 448 provided as needed. 449 450 If analysis results are exchanged via the metadata database, it must 451 provide access to the queried data on timescales of $<2 sec$ to avoid 452 slowing down the analysis systems. 453 454 \tbd{volume requirements} 455 456 \tbd{does the description of images belong in the Metadata database or 457 in the Pixel / Image Server?} 458 459 \tbd{queries} 460 461 \paragraph{Configuration Database -- a subset of the metadata database?} 462 463 The IPP requires a Configuration Database to store and provide access to 464 information about the IPP itself. Examples of data in the 465 configuration database include the default parameters for the various 466 analysis programs, the description of the computing environment, the 467 process status information, etc. 468 469 \paragraph{Controller} 470 471 The IPP uses a collection of computers to store and process images and 472 to manipulate collections of detections. These computers perform any 473 of a large number of analysis stages or other processing tasks without 474 significant interprocess communication. It is necessary to have a 475 mechanism which initiates computing tasks on the different computers, 476 which monitors the tasks as they are executed, which handles the 477 output and the errors from these tasks, and which reacts to the 478 failure of any of the computing nodes. The system responsible for the 479 tasks in the IPP is the Controller. 480 481 The Controller must interact with the collection of computers under 482 its management and with other subsystems in the IPP. The controller 483 must accept a variety of inputs from other subsystems, described 484 below, and respond accordingly. The controller must also provide 485 information to other subsystems on demand. 486 487 Computers managed by the controller are allowed to be in one of 488 several states, and the controller must interact with it in an 489 appropriate way for each of those states. A computer may be {\tt 490 alive}, {\tt dead} or {\tt off}. If the computer is {\tt alive}, it 491 responds to commands from the controller and may be used for tasks 492 subject to other constraints. If it is {\tt dead}, the computer is 493 not responsive and should not be used for executing tasks. The 494 controller must identify computers which have died and occasionally 495 test them to see if they are {\tt alive} again. Computers which are 496 {\tt off} are not available for tests and should not be tested. 497 Computers may be set to the {\tt off} or {\tt dead} states by external 498 subsystems; it is the responsibility of the Controller to move a 499 computer to the {\tt alive} state if possible. 500 501 Computers which are in the {\tt alive} state may be in one of two 502 modes: {\tt busy} and {\tt free}. A computer which is {\tt busy} 503 currently has a task assigned to it. The controller may only assign 504 one task to one computer at a time\footnote{a physical piece of 505 hardware may be defined to the Controller as multiple computers to 506 allow multi-processor nodes to execute more than one simultaneous 507 task.}. Computers which are in the {\tt free} state may have tasks 508 assigned to it. The controller must also manage an additional set of 509 constraint tables for each machine: the allowed tasks. Each computer 510 may have a list of allowed tasks which may include {\tt all} tasks, 511 {\tt none} of the tasks, or specified task names. The controller must 512 only execute the allowed tasks on a machine. 513 514 The Controller must accept tasks from other IPP subsystems. The task 515 requests must include the specific command to be executed. The 516 commands must be in the form of a UNIX command which could be 517 performed on any of the computing nodes. Any input or output data 518 structures in the commands must be a valid resource regardless of the 519 node on which the task is executed. Input and output data resources 520 must be unique where necessary to avoid conflicts. Tasks must be 521 given an identified, which must be returned to the requesting agent, 522 to be used to control the specific task. 523 524 Task requests may specify a desired node for the task execution. The 525 Controller must attempt to honor the request if the node is {\tt 526 alive}, but must execute on another node if the requested one is {\tt 527 dead} or {\tt off}. Even if a node is {\tt alive} the controller must 528 choose another node if the specified tasks is not allowed on the 529 requested node. In all other cases, the controller must wait until 530 executing processes, and processes with higher priority, are completed 531 before executing the specified task on the requested node. 532 533 Task requests may specify an urgency level. The controller determines 534 the priority of the task by sorting first by priority and next by the 535 sequence of the request. An executing task must be completed before 536 any new task is started, regardless of priority. Tasks may be 537 assigned a priority of 0 in which case they are maintained in the 538 queue and never executed. 539 540 The controller must monitor the output streams from the executing 541 tasks and the exit status of the tasks. \tbd{where do we send the 542 output logs?}. The status, including the exit status, of each task 543 must be maintained for other subsystems to query as needed. \tbd{how 544 long? on disk / database?} 545 546 The controller must accept commands from other IPP subsystems. These 547 commands include those which govern the processing of specified tasks, 548 those which govern the behavior of specific computing nodes, and those 549 which request information from the controller. The controller must be 550 able to halt the execution of a specified task, delete an unexecuted 551 task from the task list, change the priority of tasks, change the 552 requested nodes for tasks. The controller must also be able to stop 553 the current execution of a task and push it to the end of the queue 554 and also change its priority. 555 556 The controller must honor requests to change the mode of any computing 557 node on demand between {\tt off} and {\tt dead}. It must also be able 558 to change the list of allowed tasks as requested by external 559 commands. 560 561 The controller must respond to informational requests regarding the 562 collection of machines and their states as well as the collection of 563 tasks and their states. The controller must monitor the execution 564 times of the different tasks and provide summary statistics. Finally, 565 the controller must respond to three top-level commands: {\tt finish}, 566 {\tt stop} and {\tt abort}. When {\tt finish} is requested, no more 567 new tasks are accepted, and when all tasks have completed, the 568 controller must exti. When {\tt stop} is requested, the currently 569 executing tasks must be completed at which point the controller must 570 exti. When {\tt abort} is issued, the controller immediately kills 571 all executing tasks and exits. 572 573 \paragraph{Scheduler} 755 574 756 575 \subsubsection{Analysis Stages}
Note:
See TracChangeset
for help on using the changeset viewer.
