US20080184248A1 - Optimization of job scheduling for resource clusters with access control and usage reporting - Google Patents
Optimization of job scheduling for resource clusters with access control and usage reporting Download PDFInfo
- Publication number
- US20080184248A1 US20080184248A1 US11/668,441 US66844107A US2008184248A1 US 20080184248 A1 US20080184248 A1 US 20080184248A1 US 66844107 A US66844107 A US 66844107A US 2008184248 A1 US2008184248 A1 US 2008184248A1
- Authority
- US
- United States
- Prior art keywords
- job
- user
- computing resource
- time
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5014—Reservation
Definitions
- Job scheduling has been identified as one of the key challenging problems for managing the resources on computer environments.
- resources may include not only the computers themselves, including its memory, number of processors, speeds of the processors, storage space, or the like, but may also include related print services, applications, constraints on licenses, constraints based on quality of service agreements, or the like. With such varied types of resources it may be difficult and sometimes time consuming for a user to manually determine where to run their job.
- FIG. 1 shows a functional block diagram illustrating one embodiment of an environment for practicing the invention
- FIG. 2 shows one embodiment of a network device that may be included in a system implementing the invention
- FIG. 3 illustrates a logical flow diagram generally showing one embodiment of a process for job resource scheduling employing a calendaring interface
- FIG. 4 illustrates one embodiment of an example user interface useable as a calendaring interface for future job scheduling
- FIG. 5 illustrates one embodiment of example user interface useable in submitting a job request to a scheduler, in accordance with the invention.
- the term “or” is an inclusive “or” operator, and is equivalent to the term “and/or,” unless the context clearly dictates otherwise.
- the term “based on” is not exclusive and allows for being based on additional factors not described, unless the context clearly dictates otherwise.
- the meaning of “a,” “an,” and “the” include plural references.
- the meaning of “in” includes “in” and “on.”
- a job refers to any unit of work executable by a computing device.
- a job may be a single program, or a group of programs that work together.
- a job may also be a subset of a program, such as a subroutine, paragraph, function, or the like.
- a job may be a script, an applet, or the like.
- cluster refers to multiple loosely coupled network devices that cooperate to provide client devices access to a set of services, resources, or the like, over the network. Members in the cluster may be employed to increase the reliability and availability of the access. Typically, within a cluster one of the members may be designated as a master. The master, in one embodiment, may be configured and arranged to direct a job to one or more of the members based on a variety of criteria. The term cluster may sometimes be used to describe a compute farm, server farm, or the like, and thus such terms may be used interchangeably.
- the invention is directed towards a system, apparatus, and method for enabling a user to reserve one or more computer resources using a calendaring interface.
- the compute resources are associated with a cluster of network resources.
- the calendaring interface may employ a variety of graphical interfaces.
- the calendaring interface is accessible using a web browser.
- the calendaring interface is configured and arranged to enable viewing of resources currently in use, reserved for future use, and/or available for future scheduling.
- the resources and other scheduling information may, in one embodiment, be stored within a scheduling data store, such as a database, spreadsheet, or the like.
- the calendaring interface may constrain a view of resources based on the user's rights to access a given resource.
- the user may employ the calendaring interface to visually identify possible timeslots to reserve for executing a job.
- the user may also employ the calendaring interface to modify and/or delete a scheduled job.
- a reservation identifier may be provided that enables the user to subsequently submit the job for execution.
- each job is submitted to a schedule wrapper program.
- the schedule wrapper program may employ the RID to determine when to execute the job.
- a job may also be submitted to the schedule wrapper absent scheduling resources, and hence without an RID.
- the schedule wrapper performs an analysis to determine when and where to execute the ‘unscheduled’ job.
- the schedule wrapper may employ a least loaded, or a most available analysis to determine where and when to execute the job.
- the schedule wrapper may then assign an RID to the job.
- a distinct schedule wrapper program (e.g., separate instantiations) is associated with each job. Each schedule wrapper program examines the provided RID, examines the scheduling data store, and determines whether to execute the associated job, or place the job into a sleep mode. If a job executes beyond an estimated end time (e.g., beyond a timeslot), the scheduling data store may be revised to reserve resources for an additional time. In one embodiment, if the job executes within less than the scheduled time, the scheduling data store may also be revised to un-reserve unused resources. Usage reporting may also be performed using the scheduling data store.
- FIG. 1 illustrates one embodiment of an environment in which the invention may operate. However, not all of these components may be required to practice the invention, and variations in the arrangement and type of the components may be made without departing from the spirit or scope of the invention.
- system 100 includes client devices 101 - 103 , network 104 , and servers 108 - 110 .
- Client devices 101 - 103 are in communication with servers 108 - 110 through network 104 .
- servers 108 - 110 may operate within a cluster 120 .
- the invention is not constrained to a cluster configuration, and any other configuration or arrangement of computer resources, such as servers 108 - 110 , may also be employed, including for example, a peer-to-peer arrangement, or the like.
- server 109 is illustrated as including a scheduling data store.
- the invention is not so constrained, and the scheduling data store may also reside on another server, a server not within cluster 120 , or even be distributed across a plurality of servers, without departing from the scope of the invention.
- client devices 101 - 103 may include virtually any computing device capable of connecting to another computing device to send and receive information, including emails, requests for information from a server, submission of a job to be executed on at least one of servers 108 - 110 , querying job status requests, or the like.
- the set of such devices may include devices that typically connect using a wired communications medium such as personal computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, or the like.
- the set of such devices may also include devices that typically connect using a wireless communications medium such as cell phones, smart phones, radio frequency (RF) devices, infrared (IR) devices, integrated devices combining one or more of the preceding devices, or virtually any mobile device.
- RF radio frequency
- IR infrared
- client devices 101 - 103 may be any device that is capable of connecting using a wired or wireless communication medium such as a PDA, POCKET PC, wearable computer, and any other device that is equipped to communicate over a wired and/or wireless communication medium.
- a wired or wireless communication medium such as a PDA, POCKET PC, wearable computer, and any other device that is equipped to communicate over a wired and/or wireless communication medium.
- Client devices 101 - 103 may further include a client application that is configured to manage various actions. Moreover, client devices 101 - 103 may also include a web browser application that is configured to enable a user to interact with other devices and applications, over network 104 . In one embodiment, the web browser is configured to provide various functions, including, but not limited to, authentication, enabling multiple requests for information, submit a job, view a calendaring interface to the scheduling data store, or the like.
- Client devices 101 - 103 may also include other client applications, such as might enable access to another computing device, perform queries for status of a job, submit a job for execution, receive results of a job, or the like.
- Network 104 is configured to couple client devices 101 - 103 , with other network devices, such as each other, and/or servers 108 - 110 .
- Network 104 is enabled to employ any form of computer readable media for communicating information from one electronic device to another.
- network 104 is the Internet, and may include local area networks (LANs), wide area networks (WANs), direct connections, such as through a universal serial bus (USB) port, other forms of computer-readable media, or any combination thereof.
- LANs local area networks
- WANs wide area networks
- USB universal serial bus
- a router may act as a link between LANs, to enable messages to be sent from one to another.
- communication links within LANs typically include twisted wire pair or coaxial cable
- communication links between networks may utilize analog telephone lines, full or fractional dedicated digital lines including T1, T2, T3, and T4, Integrated Services Digital Networks (ISDNs), Digital Subscriber Lines (DSLs), wireless links including satellite links, or other communications links known to those skilled in the art.
- ISDNs Integrated Services Digital Networks
- DSLs Digital Subscriber Lines
- satellite links or other communications links known to those skilled in the art.
- Network 104 may further employ a plurality of wireless access technologies including, but not limited to, 2nd (2G), 3rd (3G) generation radio access for cellular systems, Wireless-LAN, Wireless Router (WR) mesh, or the like.
- Access technologies such as 2G, 3G, and future access networks may enable wide area coverage for network devices, such as client devices 101 - 103 , or the like, with various degrees of mobility.
- network 104 may enable a radio connection through a radio network access such as Global System for Mobil communication (GSM), General Packet Radio Services (GPRS), Enhanced Data GSM Environment (EDGE), Wideband Code Division Multiple Access (WCDMA), or the like.
- GSM Global System for Mobil communication
- GPRS General Packet Radio Services
- EDGE Enhanced Data GSM Environment
- WCDMA Wideband Code Division Multiple Access
- network 104 includes any communication method by which information may travel between client devices 101 - 103 and servers 108 - 110 .
- network 104 may include communication media that typically provides computer-readable instructions, data structures, program modules, or other data.
- network 104 may employ a modulated data signal such as a carrier wave, data signal, or other transport mechanism and includes any information delivery media.
- modulated data signal includes a signal that has one or more of its characteristics set or changed in such a manner as to encode information, instructions, data, or the like, in the signal.
- communication media includes wired media such as, but not limited to, twisted pair, coaxial cable, fiber optics, wave guides, and other wired media and wireless media such as, but not limited to, acoustic, RF, infrared, and other wireless media.
- Servers 108 - 110 may include any computing device capable of communicating network packets with another computing device. Each packet may convey a piece of information. A packet may be sent for handshaking, e.g., to establish a connection or to acknowledge receipt of data, or the like. The packet may include information such as a request, a response, or the like. In one embodiment, the packet may include a job to be executed on at least one of servers 108 - 110 . In another embodiment, the packet may include a response associated with one or more jobs. In one embodiment, the packet may include scheduling information useable in scheduling a job for execution, and/or modifying a scheduled job.
- packets received and or sent by servers 108 - 110 will be formatted according to TCP/IP, but they could also be formatted using another transport protocol, such as User Datagram Protocol (UDP), Internet Control Message Protocol (ICMP), NETbeui, IPX/SPX, token ring, a proprietary protocol format, or the like.
- the packets may be communicated between servers 108 - 110 and client devices 101 - 103 employing HTTP, HTTPS, or the like.
- client devices 101 - 103 may also be configured to access a command line interface (CLI), or any other type of interface, on one of servers 108 - 110 that may be configured to enable submission of jobs, obtaining status of a job, and/or receiving results from a job.
- CLI command line interface
- servers 108 - 110 may operate as compute servers, configured to receive a job and to execute the job.
- servers 108 - 110 operate to perform messaging jobs, File Transfer Protocol (FTP) jobs, database jobs, perform web services, print services, or any of a variety of other types of jobs.
- FTP File Transfer Protocol
- servers 108 - 110 may be configured to receive a job that may perform a statistical analysis, generate, and/or test software components, or the like.
- each of servers 108 - 110 may be configured to perform a different operation.
- server 108 may be configured as statistical analysis system with special licenses for employing statistical programs
- server 109 may be configured as a database server with associated licenses for use of the database.
- one of servers 108 - 110 may be configured to operate as a print server, with communication to a plurality of printers.
- a job may include instructions for printing.
- each of servers 108 - 110 may be configured with different software and/or hardware components, including different licenses, applications, memory, processors, or the like.
- various resources of each of servers 108 - 110 may be managed by a use policy, service level agreement, or the like.
- servers 108 - 110 may also be configured the same, without departing from the scope of the invention.
- servers 108 - 110 may be configured to operate within a cluster, such as cluster 120 .
- at least one of servers 108 - 110 may be configured to manage the scheduling data store, described in more detail below.
- server 109 includes the scheduling data store that is useable to manage scheduling of jobs to be executed using cluster 120 .
- a user of client devices 101 - 103 may access a calendaring interface, such as a graphical user interface (GUI) to interact with the scheduling data store.
- GUI graphical user interface
- the GUI may be displayed through a web browser, however the invention is not so limited, and other applications, scripts, applets, or the like, may also be employed.
- Servers 108 - 110 include personal computers desktop computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, servers, or the like.
- FIG. 2 shows one embodiment of a network device, according to one embodiment of the invention.
- Network device 200 may include many more or less components than those shown. The components shown, however, are sufficient to disclose an illustrative embodiment for practicing the invention.
- Network device 200 may represent, for example, one of servers 108 - 110 of FIG. 1 .
- Network device 200 includes central processing unit 212 , video display adapter 214 , and a mass memory, all in communication with each other via bus 222 .
- the mass memory generally includes RAM 216 , ROM 232 , and one or more permanent mass storage devices, such as hard disk drive 228 , tape drive, optical drive, and/or floppy disk drive.
- the mass memory stores operating system 220 for controlling the operation of network device 200 . Any general-purpose operating system may be employed.
- network device 200 may employ multiple processing units, multiple processors, or the like, without departing from the scope of the invention.
- network device 200 also can communicate with the Internet, or some other communications network, such as network 104 in FIG. 1 , via network interface unit 210 , which is constructed for use with various communication protocols including the TCP/IP protocol.
- Network interface unit 210 is sometimes known as a transceiver, transceiving device, or network interface card (NIC).
- Computer storage media may include volatile, nonvolatile, removable, and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.
- Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computing device.
- Network device 200 may also include an SMTP handler application for transmitting and receiving e-mail, an HTTP handler application for receiving and handing HTTP requests, and an HTTPS handler application for handling secure connections.
- the HTTPS handler application may initiate communication with an external application in a secure fashion.
- network device 200 may further include applications that support virtually any secure connection, including TLS, TTLS, EAP, SSL, IPSec, or the like.
- network device 200 may include applications that support a variety of tunneling mechanisms, such as VPN, PPP, L2TP, and so forth.
- Network device 200 also includes input/output interface 224 for communicating with external devices, such as a mouse, keyboard, scanner, or other input devices not shown in FIG. 2 .
- network device 200 may further include additional mass storage facilities such as CD-ROM/DVD-ROM drive 226 and hard disk drive 228 .
- Hard disk drive 228 may be utilized to store, among other things, application programs, databases, or the like.
- the mass memory also stores program code and data.
- One or more applications 250 are loaded into mass memory and run on operating system 220 .
- Examples of application programs may include email programs, routing programs, schedulers, calendars, database programs, word processing programs, HTTP programs, security programs, and so forth.
- Mass storage may further include applications and/or data such as user interface to a scheduling data store (UI) 252 , scheduling data store (SDS) 253 , as well as zero or more jobs 258 - 259 , with associated schedule wrappers 256 - 257 .
- UI scheduling data store
- SDS scheduling data store
- SDS 253 may include a database, spreadsheet, text, folder, file, or the like, that is configured to maintain and store information useable in scheduling various computer resources.
- SDS 253 may include, for example, information about a resource that may be available for scheduling.
- the resource is a server
- the information may include an identifier of the server, a ranking of the server within a cluster, a size, capacity, or the like, associated with the server, a constraint on access to the server for a given user, user group, or the like, service level agreement constraints, or the like.
- the resource is an application
- the information may include service level agreements, a number of licenses available, and/or other constraints on uses of the application, or the like.
- SDS 253 may also be configured to store and manage information about a reservation of time and resources by a user.
- SDS 253 may further include a user identifier (UID), a reservation identifier (RID), identifier(s) for the reserved resource(s), number of jobs reserved by a user, number of jobs currently executing, a start time for a job, an estimated or expected end time for a job, a time a job reservation is submitted or created, a time a job reservation is modified, as well as virtually any other information useable in managing job scheduling.
- UID user identifier
- RID reservation identifier
- SDS 253 may include a data analysis tool that is configured to enable analysis of the scheduling information.
- data analysis tool may include scripts, applications, or the like.
- the data analysis tool may be configured to generate one or more reports, graphs, or the like, indicating resource consumption, allocation, or the like, including which user, and/or user group used how much of a give resource over some time period, whether a resource is overscheduled, or the like.
- the data analysis tool may also be employed to provide chargeback billing reports, or the like.
- UI 252 represents a user interface useable by a user to communicate with SDS 253 for use in scheduling jobs.
- UI 252 includes a calendar that displays scheduled jobs for various resources, and provides visibility as to available timeslots and resources to a user.
- UI 252 may employ information about a user and information within SDS 253 to constrain a view of the information within SDS 253 . For example, where a user is constrained from accessing and/or scheduling a particular server, or other resource, that server or resource scheduling information might not be made visible to the user.
- UI 252 may be displayed to a user using a web browser.
- the invention is not constrained to web browsers, and other applications, scripts, applets, or the like, may also be employed to provide a graphical interactive display to the SDS 253 information for use in making visible and enabling scheduling of jobs and resources.
- Schedule wrappers 256 - 257 are instantiations of a scheduler application that may be employed to enable execution of a submitted job.
- jobs 258 - 259 may be submitted with a schedule wrapper application.
- the schedule wrappers 256 - 257 may, in one embodiment, also receive an RID when jobs 258 - 259 are submitted.
- the user may employ an interface such as described below in conjunction with FIG. 5 to submit the job to schedule wrappers 256 - 257 .
- the user may employ a Command Line Interface (CLI) to associate schedule wrappers 256 - 257 to jobs with an RID and to further submit the jobs for scheduled execution.
- CLI Command Line Interface
- Schedule wrappers 256 - 257 may employ the RID to query SDS 253 to determine whether jobs 258 - 259 are scheduled to execute. If it is determined that the jobs 258 - 259 are not currently scheduled to execute, in one embodiment, schedule wrappers 256 - 257 may place the associated jobs 258 - 259 into a sleep mode. In one embodiment, schedule wrappers 256 - 257 may enable sleep mode by calling an operating system sleep system call, or the like, for a predefined time. In one embodiment, the predefined time may be anywhere from a few seconds to several minutes, or even hours. However, the predefined time may be virtually any time period, without departing from the scope of the invention.
- schedule wrappers 256 - 257 may again employ the RID to query SDS 253 to determine if the associated job is now scheduled to execute. If the job is scheduled to execute at the present time (or the time has just elapsed, depending on the sleep time resolution, scheduling time resolution, or the like), one of schedule wrappers 256 - 257 executes the associated job.
- Schedule wrappers 256 - 257 may also be employed to submit jobs 258 - 259 in an automatic reservation or “at once’ reservation mode at run time.
- a user may submit a job for scheduling without employing UI 252 .
- the user may employ an interface such as described below in conjunction with FIG. 5 to submit a job to schedule wrappers 256 - 257 .
- the user may employ a Command Line Interface (CLI) to associate a schedule wrappers 256 - 257 to jobs and to further submit the job for execution.
- CLI Command Line Interface
- the user may not have an RID to include in the job submission.
- Schedule wrappers 256 - 257 may then query SDS 253 to determine when and where to execute the submitted job.
- Schedule wrappers 256 - 257 may employ a variety of mechanisms to determine where and when to execute the job, including but not limited to a least loaded approach, a most available approach, a round robin approach, a least cost approach, or the like.
- use of the least loaded approach may include examining scheduling information within SDS 253 to select a server and/or other resource that has a lowest workload, including scheduled jobs. For example, in one embodiment, an examination may be performed to determine a number of jobs scheduled to run and/or are currently running during an expected job duration for the resources. In one embodiment, where two or more servers ‘tie’ for having the lowest workload, then a highest ranked server, resource, or the like, may be selected. In another embodiment, least loaded may be determined based on job duration, as well as, or instead of a number of scheduled jobs. For example, in one embodiment, an interval of time which is scheduled for various jobs to run during the expected job duration for the resources may be examined to determine the least loaded resource and timeslot.
- the most available approach may include selecting the server and/or other resource having the maximum available job capacity.
- CPU cycles, I/O throughput, licensing constraints, Service Level Agreements, user constraints, or the like may also be employed to select the server and time to execute the at run time job.
- schedule wrappers 256 - 257 may schedule the job to execute at some later time when the resource is available.
- schedule wrapper 257 - 257 may also obtain an RID through SDS 253 for use in scheduling and executing the job.
- FIG. 3 illustrates a logical flow diagram generally showing one embodiment of a process for future job resource scheduling employing a calendaring interface.
- portions of process 300 of FIG. 3 may be performed by different entities.
- a user of a client device such as client devices 101 - 103 of FIG. 1 , may perform portions of those blocks in process 300 above dashed line 390 .
- at least some of the blocks below dashed line 390 may be performed by a scheduler wrapper application, a computer resource, a data analysis tool, or the like.
- process 300 begins, after a start block, at decision block 302 , where a user selects whether to reserve a timeslot for resources to execute a job sometime in the future, or to select automatic reservation (also called an ‘at once’ reservation) to execute a job at an earliest possible time.
- a reservation in the future indicates that the some time other than the next few minutes are being sought to execute the job.
- a future reservation is directed towards a user proactively postponing the execution of a job until some time in the future that is selected by the user.
- future reservations provide a convenient approach for planning jobs that might be executed repetitively, or the like.
- Future reservations are distinguished from automatic or ‘at once’ reservations, where a computer may select a time for execution of the job based on a variety of factors, including a characteristic of the user, a user group, a cluster, job queue, availability of a resource, or the like.
- processing flows to block 304 ; otherwise, processing branches to block 332 , for automatic reservation of the job.
- the user may proactively select to schedule the job in the future by accessing and using a calendaring interface to select an available time for execution of the job.
- a calendaring interface useable for scheduling jobs is described in more detail below in conjunction with FIG. 4 .
- a user may graphically view available timeslots within a calendar view.
- the calendar may inhibit display of timeslots, and/or resources that are unavailable to the user based on a policy, a service level agreement, or the like.
- the calendar may display timeslots that are reserved by another user and therefore unavailable based on a prior reservation. Such timeslots might become available based on user negotiations, a user relinquishing the timeslot, or the like.
- Processing flows next to block 306 where the user may select to submit a job reservation request.
- the user may be presented with a pop-up window, a menu, or the like, for entering the reservation.
- a reservation submission interface is described in more detail below in conjunction with FIG. 5 . Briefly, however, the user may submit the request for the reservation using the interface by entering information about the resources requested for execution of the job.
- the user may request a server, an application, an I/O device, or the like.
- the user may submit an estimate of how long the job might be expected to take to execute.
- Process 300 then continues to decision block 308 , where a determination is made based, in part, on the user's request for resources, the user's service level agreements, a user's group, or the like, whether the resources are available to the user. For example, although the user may have viewed within a calendar user interface that a particular server is available at a particular time, once the user also specifies an application, or other resource for the job, the calendar may revise its display of available resources. Thus, a server may no longer be available at a particular timeslot, if the available licenses for a particular application are no longer available during that timeslot. Therefore, based on additional entered constraints by the user, the displayed available resources may change. If this is the case, such that the requested timeslot is no longer available to the user, processing flows to block 310 ; otherwise, the reservation request is accepted and processing flows to block 312 .
- the user may revise their job reservation request by modifying the requested resources, by selecting another timeslot, or any of a variety of other actions. In any event, processing then loops back to block 306 , where the user submits the modified reservation request, and continues until a timeslot is successfully reserved. It should be clear that the user may also, at virtually any point in the process, exit the calendar interface, even without scheduling a reservation.
- the user is provided a Reservation Identifier (RID) for the reserved timeslot.
- RID Reservation Identifier
- the job is submitted for execution at the reserved timeslot.
- the user may submit the job through a different interface, such as a CLI, another GUI, or the like.
- submission of the job may occur at the time the user successfully reserved the timeslot.
- submission of the job includes providing the RID.
- submission of the job includes providing the RID to a schedule wrapper program that is also associated with the job.
- the user might employ a CLI or other interface to invoke a schedule wrapper with the job, and the RID.
- the job may be identified to the schedule wrapper using a job number, job name, or the like.
- the job may be submitted to a reserved server resource.
- the job may be submitted to any server within the cluster, or the like.
- the job may be moved to the reserved server resource to execute.
- the job may be moved when the schedule wrapper performs an analysis, when the schedule wrapper determines the job is to execute, or based on a variety of other criteria. In any event, processing proceeds to decision block 316 .
- Decision block 316 may be performed by the schedule wrapper program for a job.
- the schedule wrapper program may be configured to employ the RID, in part, to query a scheduling data store, such as SDS 252 , of FIG. 2 , or the like. Based on a result of the query, the schedule wrapper program may then determine whether to execute the job. If it is not time to execute the job, processing flows to block 318 ; otherwise, processing flows to block 320 .
- the schedule wrapper may sleep for some predefined time period.
- the schedule wrapper may enable sleep mode by calling an operating system sleep system call, or the like, for a predefined time.
- the predefined time may be anywhere from a few seconds to several minutes, or even hours. However, the predefined time may be virtually any time period, without departing from the scope of the invention.
- the job is executed. During execution, processing flows to decision block 322 , where schedule wrapper may monitor the job to determine whether the job is exceeding an estimated job duration. If the job is exceeding the estimated time to complete, processing flows to block 330 ; otherwise, processing flows to decision block 324 .
- decision block 326 a determination is made whether the job completed in less time than was estimated for the job. If not, then processing flows to block 332 . Otherwise, processing continues to block 328 where the timeslot on the schedule for the job may be modified to free up the unused time.
- the schedule wrapper communicates with the scheduling data store to free up the unused resources and time. In another embodiment, the schedule wrapper may launch another application, script, process, applet, or the like, to communicate with the scheduling data store to free up the resources. In any event, processing then proceeds to block 332 .
- the timeslot on the schedule for the job may be modified to reserve additional time for the resources for the job.
- the schedule wrapper communicates with the scheduling data store to reserve the additional resources and time.
- the schedule wrapper may launch another application, script, process, applet, or the like, to communicate with the scheduling data store to reserve the resources.
- the invention may perform a variety of other actions based on a policy. For example, in one embodiment, the schedule wrapper may abort the current job, and/or notify the user associated with the job. In another embodiment, the schedule wrapper, or another program, may move the affected reservation to another timeslot, shorten the other reserved timeslot, notify a user associated with the affected timeslot, or the like. In any event, processing then proceeds to block 332 .
- Block 332 is an optional block (see dashed box).
- usage reports may be generated. Such usage reports may be configured to track a variety of information assorted with the use of the resources, the calendaring interface, or the like. For example, in one embodiment, the usage reports may indicate a number of users that employ the calendaring interface and a number of user that employ at once job scheduling. The usage reports may further indicate how much of resource is reserved, how much is actually consumed, how much is relinquished, or the like, as well as which users, user groups use the resources, which resources may be over-utilized, under-utilized, or the like. However, the invention is not constrained to generating usage reports based on these examples, and virtually any information about job scheduling of resources may be generated, without departing from the scope of the invention.
- each block of the flowchart illustration, and combinations of blocks in the flowchart illustration can be implemented by computer program instructions.
- These program instructions may be provided to a processor to produce a machine, such that the instructions, which execute on the processor, create means for implementing the actions specified in the flowchart block or blocks.
- the computer program instructions may be executed by a processor to cause a series of operational steps to be performed by the processor to produce a computer implemented process such that the instructions, which execute on the processor to provide steps for implementing the actions specified in the flowchart block or blocks.
- blocks of the flowchart illustration support combinations of means for performing the specified actions, combinations of steps for performing the specified actions and program instruction means for performing the specified actions. It will also be understood that each block of the flowchart illustration, and combinations of blocks in the flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified actions or steps, or combinations of special purpose hardware and computer instructions.
- FIG. 4 illustrates one embodiment of an example user interface useable as a calendaring interface for future job reservations.
- Interface 400 may include many more or less components than those shown. The components shown, however, are sufficient to disclose an illustrative embodiment for practicing the invention.
- Interface 400 may represent, for example, one embodiment of a calendaring interface useable to interface with SDS 253 of FIG. 2 .
- interface 400 may represent one embodiment of UI 252 of FIG. 2 .
- interface 400 illustrates an expandable and scrollable windowing type of interface.
- interface 400 may employ various resizing icons 408 , and scroll bars 406 .
- interface 400 may be displayed within a browser application.
- Interface 400 is configured to enable a user to select a given year, month, week day, for view.
- the user may resize interface 400 using resizing icons 408 , and/or scroll interface 400 to display a given resource using scroll bars 406 .
- interface 400 is currently illustrating for a given day (for example, the 20 th ), allocation of resources, S- 108 , S- 109 , and S- 110 .
- various users (garyt and kty) have reserved timeslots for the various resources.
- the display illustrates the reservations in rows
- the display is not so limited, and any of a variety of other graphical representations may also be employed, including, for example, blocks, color coding of timeslots, boxes of reserved times, and/or unreserved times. In one embodiment, for example, the user might see available timeslots as opposed to reserved timeslots.
- the user may view the available timeslots (in this example, the unreserved times). The user may then select for a given day, the new edit icon 402 to reserve a resource for a given time. In one embodiment, new edit icon 402 opens another window, menu, or the like, that enables the user to reserve a timeslot.
- a reservation window is described below in conjunction with FIG. 5 .
- FIG. 5 illustrates one embodiment of example user interface useable in submitting a job request to a scheduler.
- Interface 500 may include many more or less components than those shown. The components shown, however, are sufficient to disclose an illustrative embodiment for practicing the invention.
- interface 500 may automatically complete a user identifier field 502 based on a log-in or other available information about the user.
- the user may be enabled to modify the user identifier field 502 content.
- interface 500 enables the user to specify a resource to be reserved 506 , as well as any additional resources 508 , such as applications, licenses, a peripheral, or the like.
- additional resources 508 such as applications, licenses, a peripheral, or the like.
- the invention may be configured to determine whether the resource is already reserved for that timeslot. If so, the user may be so informed, through interface 500 , or the like, such that the user may change the reservation timeslot, the additional resources 508 being requested, or the like.
- Interface 500 further enables the user to reserve a start date 510 for the job, along with a start hour 512 , and start minute 514 for execution of the job.
- start hour 512 and start minute 514 may employ a 24 hour entry system.
- interface 500 may employ a 12 hour entry system, using AM and PM indicators, or the like.
- interface 500 may also, in one embodiment, enable the user to specify an expected end date 516 , including an expected end hour 518 , and end minute 519 .
- One embodiment of interface 500 further enables a user to reserve recurring times 520 for the job.
- interface 500 may, if the reservation is successful, return a Reservation Identifier (RID) 504 for the scheduled job. Using interface 502 may result in revising what may be displayed within interface 400 of FIG. 4 .
- RID Reservation Identifier
- the user may then employ the provided RID to submit the job for execution, using a schedule wrapper, or the like.
- job submission may be performed using a CLI type of interface.
- the user may call the schedule wrapper and include various call option parameters, including the job identifier, and if available, the RID.
- job submission for execution may also be performed using an interface such as interface 500 , or the like.
- the user may open interface 500 and enter the RID obtained earlier. Entry of the RID may then result in the above mentioned times being automatically displayed to the user based on the user's earlier reservation actions.
- the user might enter an immediate time into start date 510 , start hour 512 , and start minute 514 .
- the start date 510 , start hour 512 , and start minute 514 might automatically display the current date and time.
- the user may further complete the remaining entries for the submission of the at once job.
- the user then may submit the job for at once execution by so indicating the job to be an at once job using the at once icon 523 , and then employing the submit icon 522 .
- the user may so indicate this using the at once job selection icon 524 , and by further entering a job specification 526 , such as a job number, job name, or other job identifier.
Abstract
Description
- The invention relates generally to managing computing resources, and more particularly but not exclusively to enabling future job scheduling of cluster computing resources using a calendar and/or an automatic reservation mechanism to schedule and enable execution of a job.
- Job scheduling has been identified as one of the key challenging problems for managing the resources on computer environments. In many of today's computer environments, there remain a limited number of available resources. Such resources may include not only the computers themselves, including its memory, number of processors, speeds of the processors, storage space, or the like, but may also include related print services, applications, constraints on licenses, constraints based on quality of service agreements, or the like. With such varied types of resources it may be difficult and sometimes time consuming for a user to manually determine where to run their job.
- Many users of these resources may submit numerous jobs to be run in accordance with various site specific policies, scheduling constraints, or the like. In a highly utilized compute environment often times the demand for resources is larger than the available capacity. Therefore, there may often be jobs waiting to be executed as soon as resources become available. Moreover, users may have a desire to have selected jobs run repetitively, at a particular time of day, or the like. Ensuring the right job gets the right resources at a specified time is often a problem. The inability to adequately schedule certain jobs for a specific time with specific resource may result in wasted time, resources, and money. Therefore, it is with respect to these considerations and others that the present invention has been made.
- Non-limiting and non-exhaustive embodiments of the invention are described with reference to the following drawings. In the drawings, like reference numerals refer to like parts throughout the various figures unless otherwise specified.
- For a better understanding of the invention, reference will be made to the following Detailed Description of the Invention, which is to be read in association with the accompanying drawings, wherein:
-
FIG. 1 shows a functional block diagram illustrating one embodiment of an environment for practicing the invention; -
FIG. 2 shows one embodiment of a network device that may be included in a system implementing the invention; -
FIG. 3 illustrates a logical flow diagram generally showing one embodiment of a process for job resource scheduling employing a calendaring interface; -
FIG. 4 illustrates one embodiment of an example user interface useable as a calendaring interface for future job scheduling; and -
FIG. 5 illustrates one embodiment of example user interface useable in submitting a job request to a scheduler, in accordance with the invention. - The invention now will be described more fully hereinafter with reference to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific embodiments by which the invention may be practiced. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Among other things, the invention may be embodied as methods or devices. Accordingly, the invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.
- Throughout the specification and claims, the following terms take the meanings explicitly associated herein, unless the context clearly dictates otherwise. The phrase “in one embodiment” as used herein does not necessarily refer to the same embodiment, though it may. Furthermore, the phrase “in another embodiment” as used herein does not necessarily refer to a different embodiment, although it may. Thus, as described below, various embodiments of the invention may be readily combined, without departing from the scope or spirit of the invention.
- In addition, as used herein, the term “or” is an inclusive “or” operator, and is equivalent to the term “and/or,” unless the context clearly dictates otherwise. The term “based on” is not exclusive and allows for being based on additional factors not described, unless the context clearly dictates otherwise. In addition, throughout the specification, the meaning of “a,” “an,” and “the” include plural references. The meaning of “in” includes “in” and “on.”
- As used herein, the term “job” refers to any unit of work executable by a computing device. Thus, a job may be a single program, or a group of programs that work together. In one embodiment, a job may also be a subset of a program, such as a subroutine, paragraph, function, or the like. In another embodiment, a job may be a script, an applet, or the like.
- As used here, the term “cluster” refers to multiple loosely coupled network devices that cooperate to provide client devices access to a set of services, resources, or the like, over the network. Members in the cluster may be employed to increase the reliability and availability of the access. Typically, within a cluster one of the members may be designated as a master. The master, in one embodiment, may be configured and arranged to direct a job to one or more of the members based on a variety of criteria. The term cluster may sometimes be used to describe a compute farm, server farm, or the like, and thus such terms may be used interchangeably.
- Briefly stated the invention is directed towards a system, apparatus, and method for enabling a user to reserve one or more computer resources using a calendaring interface. In one embodiment, the compute resources are associated with a cluster of network resources. The calendaring interface may employ a variety of graphical interfaces. In one embodiment, the calendaring interface is accessible using a web browser. The calendaring interface is configured and arranged to enable viewing of resources currently in use, reserved for future use, and/or available for future scheduling. The resources and other scheduling information may, in one embodiment, be stored within a scheduling data store, such as a database, spreadsheet, or the like. In one embodiment, the calendaring interface may constrain a view of resources based on the user's rights to access a given resource. Thus, in one embodiment, if the user is constrained from scheduling a resource during a defined timeslot, that timeslot might be blocked out, or otherwise not made visible to the user. In any event, the user may employ the calendaring interface to visually identify possible timeslots to reserve for executing a job. The user may also employ the calendaring interface to modify and/or delete a scheduled job. When the user schedules a job, with the requested resources, a reservation identifier (RID) may be provided that enables the user to subsequently submit the job for execution. In one embodiment, each job is submitted to a schedule wrapper program. The schedule wrapper program may employ the RID to determine when to execute the job. In one embodiment, a job may also be submitted to the schedule wrapper absent scheduling resources, and hence without an RID. In this embodiment, the schedule wrapper performs an analysis to determine when and where to execute the ‘unscheduled’ job. In one embodiment, the schedule wrapper may employ a least loaded, or a most available analysis to determine where and when to execute the job. In any event, the schedule wrapper may then assign an RID to the job. In one embodiment, a distinct schedule wrapper program (e.g., separate instantiations) is associated with each job. Each schedule wrapper program examines the provided RID, examines the scheduling data store, and determines whether to execute the associated job, or place the job into a sleep mode. If a job executes beyond an estimated end time (e.g., beyond a timeslot), the scheduling data store may be revised to reserve resources for an additional time. In one embodiment, if the job executes within less than the scheduled time, the scheduling data store may also be revised to un-reserve unused resources. Usage reporting may also be performed using the scheduling data store.
-
FIG. 1 illustrates one embodiment of an environment in which the invention may operate. However, not all of these components may be required to practice the invention, and variations in the arrangement and type of the components may be made without departing from the spirit or scope of the invention. - As shown in the figure,
system 100 includes client devices 101-103,network 104, and servers 108-110. Client devices 101-103 are in communication with servers 108-110 throughnetwork 104. In one embodiment, as shown, servers 108-110 may operate within acluster 120. However, the invention is not constrained to a cluster configuration, and any other configuration or arrangement of computer resources, such as servers 108-110, may also be employed, including for example, a peer-to-peer arrangement, or the like. Moreover, as shownserver 109 is illustrated as including a scheduling data store. However, the invention is not so constrained, and the scheduling data store may also reside on another server, a server not withincluster 120, or even be distributed across a plurality of servers, without departing from the scope of the invention. - Generally, client devices 101-103 may include virtually any computing device capable of connecting to another computing device to send and receive information, including emails, requests for information from a server, submission of a job to be executed on at least one of servers 108-110, querying job status requests, or the like. The set of such devices may include devices that typically connect using a wired communications medium such as personal computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, or the like. The set of such devices may also include devices that typically connect using a wireless communications medium such as cell phones, smart phones, radio frequency (RF) devices, infrared (IR) devices, integrated devices combining one or more of the preceding devices, or virtually any mobile device. Similarly, client devices 101-103 may be any device that is capable of connecting using a wired or wireless communication medium such as a PDA, POCKET PC, wearable computer, and any other device that is equipped to communicate over a wired and/or wireless communication medium.
- Client devices 101-103 may further include a client application that is configured to manage various actions. Moreover, client devices 101-103 may also include a web browser application that is configured to enable a user to interact with other devices and applications, over
network 104. In one embodiment, the web browser is configured to provide various functions, including, but not limited to, authentication, enabling multiple requests for information, submit a job, view a calendaring interface to the scheduling data store, or the like. - Client devices 101-103 may also include other client applications, such as might enable access to another computing device, perform queries for status of a job, submit a job for execution, receive results of a job, or the like.
-
Network 104 is configured to couple client devices 101-103, with other network devices, such as each other, and/or servers 108-110.Network 104 is enabled to employ any form of computer readable media for communicating information from one electronic device to another. In one embodiment,network 104 is the Internet, and may include local area networks (LANs), wide area networks (WANs), direct connections, such as through a universal serial bus (USB) port, other forms of computer-readable media, or any combination thereof. On an interconnected set of LANs, including those based on differing architectures and protocols, a router may act as a link between LANs, to enable messages to be sent from one to another. Also, communication links within LANs typically include twisted wire pair or coaxial cable, while communication links between networks may utilize analog telephone lines, full or fractional dedicated digital lines including T1, T2, T3, and T4, Integrated Services Digital Networks (ISDNs), Digital Subscriber Lines (DSLs), wireless links including satellite links, or other communications links known to those skilled in the art. -
Network 104 may further employ a plurality of wireless access technologies including, but not limited to, 2nd (2G), 3rd (3G) generation radio access for cellular systems, Wireless-LAN, Wireless Router (WR) mesh, or the like. Access technologies such as 2G, 3G, and future access networks may enable wide area coverage for network devices, such as client devices 101-103, or the like, with various degrees of mobility. For example,network 104 may enable a radio connection through a radio network access such as Global System for Mobil communication (GSM), General Packet Radio Services (GPRS), Enhanced Data GSM Environment (EDGE), Wideband Code Division Multiple Access (WCDMA), or the like. - Furthermore, remote computers and other related electronic devices could be remotely connected to either LANs or WANs via a modem and temporary telephone link. In essence,
network 104 includes any communication method by which information may travel between client devices 101-103 and servers 108-110. - Additionally,
network 104 may include communication media that typically provides computer-readable instructions, data structures, program modules, or other data. In one embodiment,network 104 may employ a modulated data signal such as a carrier wave, data signal, or other transport mechanism and includes any information delivery media. The terms “modulated data signal,” and “carrier-wave signal” includes a signal that has one or more of its characteristics set or changed in such a manner as to encode information, instructions, data, or the like, in the signal. By way of example, communication media includes wired media such as, but not limited to, twisted pair, coaxial cable, fiber optics, wave guides, and other wired media and wireless media such as, but not limited to, acoustic, RF, infrared, and other wireless media. - Servers 108-110 may include any computing device capable of communicating network packets with another computing device. Each packet may convey a piece of information. A packet may be sent for handshaking, e.g., to establish a connection or to acknowledge receipt of data, or the like. The packet may include information such as a request, a response, or the like. In one embodiment, the packet may include a job to be executed on at least one of servers 108-110. In another embodiment, the packet may include a response associated with one or more jobs. In one embodiment, the packet may include scheduling information useable in scheduling a job for execution, and/or modifying a scheduled job.
- Generally, packets received and or sent by servers 108-110 will be formatted according to TCP/IP, but they could also be formatted using another transport protocol, such as User Datagram Protocol (UDP), Internet Control Message Protocol (ICMP), NETbeui, IPX/SPX, token ring, a proprietary protocol format, or the like. Moreover, the packets may be communicated between servers 108-110 and client devices 101-103 employing HTTP, HTTPS, or the like. However, in one embodiment, client devices 101-103 may also be configured to access a command line interface (CLI), or any other type of interface, on one of servers 108-110 that may be configured to enable submission of jobs, obtaining status of a job, and/or receiving results from a job.
- In one embodiment, servers 108-110 may operate as compute servers, configured to receive a job and to execute the job. For example, servers 108-110 operate to perform messaging jobs, File Transfer Protocol (FTP) jobs, database jobs, perform web services, print services, or any of a variety of other types of jobs. For example, in one embodiment, servers 108-110 may be configured to receive a job that may perform a statistical analysis, generate, and/or test software components, or the like.
- Additionally, each of servers 108-110 may be configured to perform a different operation. Thus, for example,
server 108 may be configured as statistical analysis system with special licenses for employing statistical programs, whileserver 109 may be configured as a database server with associated licenses for use of the database. Further, one of servers 108-110 may be configured to operate as a print server, with communication to a plurality of printers. Thus, in one embodiment, a job may include instructions for printing. - Moreover, each of servers 108-110 may be configured with different software and/or hardware components, including different licenses, applications, memory, processors, or the like. In one embodiment, various resources of each of servers 108-110 may be managed by a use policy, service level agreement, or the like. However, in another embodiment, servers 108-110 may also be configured the same, without departing from the scope of the invention.
- In addition, in one embodiment, servers 108-110 may be configured to operate within a cluster, such as
cluster 120. Moreover, in one embodiment, at least one of servers 108-110 may be configured to manage the scheduling data store, described in more detail below. As illustrated,server 109 includes the scheduling data store that is useable to manage scheduling of jobs to be executed usingcluster 120. In one embodiment, as described in more detail below, a user of client devices 101-103 may access a calendaring interface, such as a graphical user interface (GUI) to interact with the scheduling data store. In one embodiment, the GUI may be displayed through a web browser, however the invention is not so limited, and other applications, scripts, applets, or the like, may also be employed. - Devices that may operate as servers 108-110 include personal computers desktop computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, servers, or the like.
-
FIG. 2 shows one embodiment of a network device, according to one embodiment of the invention.Network device 200 may include many more or less components than those shown. The components shown, however, are sufficient to disclose an illustrative embodiment for practicing the invention.Network device 200 may represent, for example, one of servers 108-110 ofFIG. 1 . -
Network device 200 includescentral processing unit 212,video display adapter 214, and a mass memory, all in communication with each other viabus 222. The mass memory generally includesRAM 216,ROM 232, and one or more permanent mass storage devices, such ashard disk drive 228, tape drive, optical drive, and/or floppy disk drive. The mass memorystores operating system 220 for controlling the operation ofnetwork device 200. Any general-purpose operating system may be employed. Moreover, although a single processing unit is illustrated,network device 200 may employ multiple processing units, multiple processors, or the like, without departing from the scope of the invention. - As illustrated in
FIG. 2 ,network device 200 also can communicate with the Internet, or some other communications network, such asnetwork 104 inFIG. 1 , vianetwork interface unit 210, which is constructed for use with various communication protocols including the TCP/IP protocol.Network interface unit 210 is sometimes known as a transceiver, transceiving device, or network interface card (NIC). - The mass memory as described above illustrates another type of computer-readable media, namely computer storage media. Computer storage media may include volatile, nonvolatile, removable, and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computing device.
-
Network device 200 may also include an SMTP handler application for transmitting and receiving e-mail, an HTTP handler application for receiving and handing HTTP requests, and an HTTPS handler application for handling secure connections. The HTTPS handler application may initiate communication with an external application in a secure fashion. Moreover,network device 200 may further include applications that support virtually any secure connection, including TLS, TTLS, EAP, SSL, IPSec, or the like. Similarly,network device 200 may include applications that support a variety of tunneling mechanisms, such as VPN, PPP, L2TP, and so forth. -
Network device 200 also includes input/output interface 224 for communicating with external devices, such as a mouse, keyboard, scanner, or other input devices not shown inFIG. 2 . Likewise,network device 200 may further include additional mass storage facilities such as CD-ROM/DVD-ROM drive 226 andhard disk drive 228.Hard disk drive 228 may be utilized to store, among other things, application programs, databases, or the like. - The mass memory also stores program code and data. One or
more applications 250 are loaded into mass memory and run onoperating system 220. Examples of application programs may include email programs, routing programs, schedulers, calendars, database programs, word processing programs, HTTP programs, security programs, and so forth. Mass storage may further include applications and/or data such as user interface to a scheduling data store (UI) 252, scheduling data store (SDS) 253, as well as zero or more jobs 258-259, with associated schedule wrappers 256-257. -
SDS 253 may include a database, spreadsheet, text, folder, file, or the like, that is configured to maintain and store information useable in scheduling various computer resources. As such,SDS 253 may include, for example, information about a resource that may be available for scheduling. For example, where the resource is a server the information may include an identifier of the server, a ranking of the server within a cluster, a size, capacity, or the like, associated with the server, a constraint on access to the server for a given user, user group, or the like, service level agreement constraints, or the like. Where the resource is an application, the information may include service level agreements, a number of licenses available, and/or other constraints on uses of the application, or the like.SDS 253 may also be configured to store and manage information about a reservation of time and resources by a user. Thus,SDS 253 may further include a user identifier (UID), a reservation identifier (RID), identifier(s) for the reserved resource(s), number of jobs reserved by a user, number of jobs currently executing, a start time for a job, an estimated or expected end time for a job, a time a job reservation is submitted or created, a time a job reservation is modified, as well as virtually any other information useable in managing job scheduling. - Moreover, in one embodiment,
SDS 253 may include a data analysis tool that is configured to enable analysis of the scheduling information. Such data analysis tool may include scripts, applications, or the like. In one embodiment, the data analysis tool may be configured to generate one or more reports, graphs, or the like, indicating resource consumption, allocation, or the like, including which user, and/or user group used how much of a give resource over some time period, whether a resource is overscheduled, or the like. In one embodiment, the data analysis tool may also be employed to provide chargeback billing reports, or the like. - One embodiment, of
UI 252 is described in more detail below in conjunction withFIGS. 4-5 . Briefly, however,UI 252 represents a user interface useable by a user to communicate withSDS 253 for use in scheduling jobs. In one embodiment,UI 252 includes a calendar that displays scheduled jobs for various resources, and provides visibility as to available timeslots and resources to a user. In one embodiment,UI 252 may employ information about a user and information withinSDS 253 to constrain a view of the information withinSDS 253. For example, where a user is constrained from accessing and/or scheduling a particular server, or other resource, that server or resource scheduling information might not be made visible to the user. - In one embodiment,
UI 252 may be displayed to a user using a web browser. However, the invention is not constrained to web browsers, and other applications, scripts, applets, or the like, may also be employed to provide a graphical interactive display to theSDS 253 information for use in making visible and enabling scheduling of jobs and resources. - Schedule wrappers 256-257 are instantiations of a scheduler application that may be employed to enable execution of a submitted job. In one embodiment, jobs 258-259, whether scheduled using
UI 252, or through automatic reservation at run time, may be submitted with a schedule wrapper application. The schedule wrappers 256-257 may, in one embodiment, also receive an RID when jobs 258-259 are submitted. - The user may employ an interface such as described below in conjunction with
FIG. 5 to submit the job to schedule wrappers 256-257. In another embodiment, however, the user may employ a Command Line Interface (CLI) to associate schedule wrappers 256-257 to jobs with an RID and to further submit the jobs for scheduled execution. - Schedule wrappers 256-257 may employ the RID to query
SDS 253 to determine whether jobs 258-259 are scheduled to execute. If it is determined that the jobs 258-259 are not currently scheduled to execute, in one embodiment, schedule wrappers 256-257 may place the associated jobs 258-259 into a sleep mode. In one embodiment, schedule wrappers 256-257 may enable sleep mode by calling an operating system sleep system call, or the like, for a predefined time. In one embodiment, the predefined time may be anywhere from a few seconds to several minutes, or even hours. However, the predefined time may be virtually any time period, without departing from the scope of the invention. At the end of the predefined time, schedule wrappers 256-257 may again employ the RID to querySDS 253 to determine if the associated job is now scheduled to execute. If the job is scheduled to execute at the present time (or the time has just elapsed, depending on the sleep time resolution, scheduling time resolution, or the like), one of schedule wrappers 256-257 executes the associated job. - Schedule wrappers 256-257 may also be employed to submit jobs 258-259 in an automatic reservation or “at once’ reservation mode at run time. In this embodiment, a user may submit a job for scheduling without employing
UI 252. The user may employ an interface such as described below in conjunction withFIG. 5 to submit a job to schedule wrappers 256-257. In another embodiment, however, the user may employ a Command Line Interface (CLI) to associate a schedule wrappers 256-257 to jobs and to further submit the job for execution. In one embodiment, the user may not have an RID to include in the job submission. - Schedule wrappers 256-257 may then query
SDS 253 to determine when and where to execute the submitted job. Schedule wrappers 256-257 may employ a variety of mechanisms to determine where and when to execute the job, including but not limited to a least loaded approach, a most available approach, a round robin approach, a least cost approach, or the like. - For example, use of the least loaded approach may include examining scheduling information within
SDS 253 to select a server and/or other resource that has a lowest workload, including scheduled jobs. For example, in one embodiment, an examination may be performed to determine a number of jobs scheduled to run and/or are currently running during an expected job duration for the resources. In one embodiment, where two or more servers ‘tie’ for having the lowest workload, then a highest ranked server, resource, or the like, may be selected. In another embodiment, least loaded may be determined based on job duration, as well as, or instead of a number of scheduled jobs. For example, in one embodiment, an interval of time which is scheduled for various jobs to run during the expected job duration for the resources may be examined to determine the least loaded resource and timeslot. - In one embodiment, the most available approach may include selecting the server and/or other resource having the maximum available job capacity. In one embodiment, CPU cycles, I/O throughput, licensing constraints, Service Level Agreements, user constraints, or the like, may also be employed to select the server and time to execute the at run time job. In any event, if a resource is currently unavailable for the job, schedule wrappers 256-257 may schedule the job to execute at some later time when the resource is available. In one embodiment, schedule wrapper 257-257 may also obtain an RID through
SDS 253 for use in scheduling and executing the job. - The operation of certain aspects of the invention will now be described with respect to
FIG. 3 .FIG. 3 illustrates a logical flow diagram generally showing one embodiment of a process for future job resource scheduling employing a calendaring interface. As shown, portions ofprocess 300 ofFIG. 3 may be performed by different entities. For example, in one embodiment, a user of a client device, such as client devices 101-103 ofFIG. 1 , may perform portions of those blocks inprocess 300 above dashedline 390. In one embodiment, at least some of the blocks below dashedline 390 may be performed by a scheduler wrapper application, a computer resource, a data analysis tool, or the like. - In any event,
process 300 begins, after a start block, atdecision block 302, where a user selects whether to reserve a timeslot for resources to execute a job sometime in the future, or to select automatic reservation (also called an ‘at once’ reservation) to execute a job at an earliest possible time. A reservation in the future indicates that the some time other than the next few minutes are being sought to execute the job. Thus, a future reservation is directed towards a user proactively postponing the execution of a job until some time in the future that is selected by the user. In one embodiment, future reservations provide a convenient approach for planning jobs that might be executed repetitively, or the like. - Future reservations are distinguished from automatic or ‘at once’ reservations, where a computer may select a time for execution of the job based on a variety of factors, including a characteristic of the user, a user group, a cluster, job queue, availability of a resource, or the like. Thus, if the user determines that the job is to be scheduled in the future proactively, processing flows to block 304; otherwise, processing branches to block 332, for automatic reservation of the job.
- At
block 304 the user may proactively select to schedule the job in the future by accessing and using a calendaring interface to select an available time for execution of the job. One embodiment of a calendaring interface useable for scheduling jobs is described in more detail below in conjunction withFIG. 4 . Briefly, a user may graphically view available timeslots within a calendar view. In one embodiment, the calendar may inhibit display of timeslots, and/or resources that are unavailable to the user based on a policy, a service level agreement, or the like. However, in one embodiment, the calendar may display timeslots that are reserved by another user and therefore unavailable based on a prior reservation. Such timeslots might become available based on user negotiations, a user relinquishing the timeslot, or the like. - Processing flows next to block 306, where the user may select to submit a job reservation request. In one embodiment, the user may be presented with a pop-up window, a menu, or the like, for entering the reservation. One embodiment of such a reservation submission interface is described in more detail below in conjunction with
FIG. 5 . Briefly, however, the user may submit the request for the reservation using the interface by entering information about the resources requested for execution of the job. In one embodiment, the user may request a server, an application, an I/O device, or the like. In one embodiment, the user may submit an estimate of how long the job might be expected to take to execute. -
Process 300 then continues to decision block 308, where a determination is made based, in part, on the user's request for resources, the user's service level agreements, a user's group, or the like, whether the resources are available to the user. For example, although the user may have viewed within a calendar user interface that a particular server is available at a particular time, once the user also specifies an application, or other resource for the job, the calendar may revise its display of available resources. Thus, a server may no longer be available at a particular timeslot, if the available licenses for a particular application are no longer available during that timeslot. Therefore, based on additional entered constraints by the user, the displayed available resources may change. If this is the case, such that the requested timeslot is no longer available to the user, processing flows to block 310; otherwise, the reservation request is accepted and processing flows to block 312. - At
block 310, the user may revise their job reservation request by modifying the requested resources, by selecting another timeslot, or any of a variety of other actions. In any event, processing then loops back to block 306, where the user submits the modified reservation request, and continues until a timeslot is successfully reserved. It should be clear that the user may also, at virtually any point in the process, exit the calendar interface, even without scheduling a reservation. - At
block 312, the user is provided a Reservation Identifier (RID) for the reserved timeslot. Processing continues to block 314, where the job is submitted for execution at the reserved timeslot. In one embodiment, the user may submit the job through a different interface, such as a CLI, another GUI, or the like. In another embodiment, submission of the job may occur at the time the user successfully reserved the timeslot. In any event, submission of the job includes providing the RID. In one embodiment, submission of the job includes providing the RID to a schedule wrapper program that is also associated with the job. Thus, for example, the user might employ a CLI or other interface to invoke a schedule wrapper with the job, and the RID. In one embodiment, the job may be identified to the schedule wrapper using a job number, job name, or the like. - In one embodiment, the job may be submitted to a reserved server resource. In another embodiment, the job may be submitted to any server within the cluster, or the like. Then, at some later time, the job may be moved to the reserved server resource to execute. For example, in one embodiment, the job may be moved when the schedule wrapper performs an analysis, when the schedule wrapper determines the job is to execute, or based on a variety of other criteria. In any event, processing proceeds to
decision block 316. -
Decision block 316, in one embodiment, may be performed by the schedule wrapper program for a job. In one embodiment, the schedule wrapper program may be configured to employ the RID, in part, to query a scheduling data store, such asSDS 252, ofFIG. 2 , or the like. Based on a result of the query, the schedule wrapper program may then determine whether to execute the job. If it is not time to execute the job, processing flows to block 318; otherwise, processing flows to block 320. - At
block 318, the schedule wrapper may sleep for some predefined time period. In one embodiment, the schedule wrapper may enable sleep mode by calling an operating system sleep system call, or the like, for a predefined time. In one embodiment, the predefined time may be anywhere from a few seconds to several minutes, or even hours. However, the predefined time may be virtually any time period, without departing from the scope of the invention. When the schedule wrapper awakes, processing loops back to decision block 316, to again determine whether to execute the job. - At
block 320, the job is executed. During execution, processing flows to decision block 322, where schedule wrapper may monitor the job to determine whether the job is exceeding an estimated job duration. If the job is exceeding the estimated time to complete, processing flows to block 330; otherwise, processing flows todecision block 324. - At
block 324, a determination is made whether the job is completed. If it is completed, the flow proceeds to decision block 326; otherwise, processing loops back to block 320. Atdecision block 326, a determination is made whether the job completed in less time than was estimated for the job. If not, then processing flows to block 332. Otherwise, processing continues to block 328 where the timeslot on the schedule for the job may be modified to free up the unused time. In one embodiment, the schedule wrapper communicates with the scheduling data store to free up the unused resources and time. In another embodiment, the schedule wrapper may launch another application, script, process, applet, or the like, to communicate with the scheduling data store to free up the resources. In any event, processing then proceeds to block 332. - At
block 330, the timeslot on the schedule for the job may be modified to reserve additional time for the resources for the job. In one embodiment, the schedule wrapper communicates with the scheduling data store to reserve the additional resources and time. In another embodiment, the schedule wrapper may launch another application, script, process, applet, or the like, to communicate with the scheduling data store to reserve the resources. - Moreover, in one embodiment, if another reserved timeslot might be affected based on the timeslot in which the job is currently exceeding, the invention may perform a variety of other actions based on a policy. For example, in one embodiment, the schedule wrapper may abort the current job, and/or notify the user associated with the job. In another embodiment, the schedule wrapper, or another program, may move the affected reservation to another timeslot, shorten the other reserved timeslot, notify a user associated with the affected timeslot, or the like. In any event, processing then proceeds to block 332.
-
Block 332 is an optional block (see dashed box). Atoptional block 332, usage reports may be generated. Such usage reports may be configured to track a variety of information assorted with the use of the resources, the calendaring interface, or the like. For example, in one embodiment, the usage reports may indicate a number of users that employ the calendaring interface and a number of user that employ at once job scheduling. The usage reports may further indicate how much of resource is reserved, how much is actually consumed, how much is relinquished, or the like, as well as which users, user groups use the resources, which resources may be over-utilized, under-utilized, or the like. However, the invention is not constrained to generating usage reports based on these examples, and virtually any information about job scheduling of resources may be generated, without departing from the scope of the invention. - It will be understood that each block of the flowchart illustration, and combinations of blocks in the flowchart illustration, can be implemented by computer program instructions. These program instructions may be provided to a processor to produce a machine, such that the instructions, which execute on the processor, create means for implementing the actions specified in the flowchart block or blocks. The computer program instructions may be executed by a processor to cause a series of operational steps to be performed by the processor to produce a computer implemented process such that the instructions, which execute on the processor to provide steps for implementing the actions specified in the flowchart block or blocks.
- Accordingly, blocks of the flowchart illustration support combinations of means for performing the specified actions, combinations of steps for performing the specified actions and program instruction means for performing the specified actions. It will also be understood that each block of the flowchart illustration, and combinations of blocks in the flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified actions or steps, or combinations of special purpose hardware and computer instructions.
-
FIG. 4 illustrates one embodiment of an example user interface useable as a calendaring interface for future job reservations.Interface 400 may include many more or less components than those shown. The components shown, however, are sufficient to disclose an illustrative embodiment for practicing the invention.Interface 400 may represent, for example, one embodiment of a calendaring interface useable to interface withSDS 253 ofFIG. 2 . Thus, in one embodiment,interface 400 may represent one embodiment ofUI 252 ofFIG. 2 . - As shown,
interface 400 illustrates an expandable and scrollable windowing type of interface. Thus, in one embodiment,interface 400 may employ various resizingicons 408, andscroll bars 406. In one embodiment,interface 400 may be displayed within a browser application. -
Interface 400 is configured to enable a user to select a given year, month, week day, for view. The user may resizeinterface 400 using resizingicons 408, and/orscroll interface 400 to display a given resource usingscroll bars 406. As shown,interface 400 is currently illustrating for a given day (for example, the 20th), allocation of resources, S-108, S-109, and S-110. As shown, in the example, various users (garyt and kty) have reserved timeslots for the various resources. It should be noted, that while the display illustrates the reservations in rows, the display is not so limited, and any of a variety of other graphical representations may also be employed, including, for example, blocks, color coding of timeslots, boxes of reserved times, and/or unreserved times. In one embodiment, for example, the user might see available timeslots as opposed to reserved timeslots. - In any event, the user may view the available timeslots (in this example, the unreserved times). The user may then select for a given day, the
new edit icon 402 to reserve a resource for a given time. In one embodiment,new edit icon 402 opens another window, menu, or the like, that enables the user to reserve a timeslot. One embodiment of a reservation window is described below in conjunction withFIG. 5 . -
FIG. 5 illustrates one embodiment of example user interface useable in submitting a job request to a scheduler.Interface 500 may include many more or less components than those shown. The components shown, however, are sufficient to disclose an illustrative embodiment for practicing the invention. - In one embodiment,
interface 500 may automatically complete auser identifier field 502 based on a log-in or other available information about the user. In another embodiment, the user may be enabled to modify theuser identifier field 502 content. - In one embodiment,
interface 500 enables the user to specify a resource to be reserved 506, as well as anyadditional resources 508, such as applications, licenses, a peripheral, or the like. In one embodiment, where anadditional resource 508 is not displayed on the calendaring interface, the invention may be configured to determine whether the resource is already reserved for that timeslot. If so, the user may be so informed, throughinterface 500, or the like, such that the user may change the reservation timeslot, theadditional resources 508 being requested, or the like. -
Interface 500 further enables the user to reserve astart date 510 for the job, along with astart hour 512, and startminute 514 for execution of the job. In one embodiment, starthour 512 and startminute 514 may employ a 24 hour entry system. In another embodiment,interface 500 may employ a 12 hour entry system, using AM and PM indicators, or the like. In any event,interface 500 may also, in one embodiment, enable the user to specify anexpected end date 516, including an expectedend hour 518, and endminute 519. One embodiment ofinterface 500 further enables a user to reserve recurringtimes 520 for the job. - In any event, the user may submit the job using a submit
icon 522, or the like. In one embodiment,interface 500 may, if the reservation is successful, return a Reservation Identifier (RID) 504 for the scheduled job. Usinginterface 502 may result in revising what may be displayed withininterface 400 ofFIG. 4 . - In one embodiment, the user may then employ the provided RID to submit the job for execution, using a schedule wrapper, or the like. In one embodiment, job submission may be performed using a CLI type of interface. For example, in one embodiment, the user may call the schedule wrapper and include various call option parameters, including the job identifier, and if available, the RID.
- However, job submission for execution may also be performed using an interface such as
interface 500, or the like. For example, in one embodiment, the user may openinterface 500 and enter the RID obtained earlier. Entry of the RID may then result in the above mentioned times being automatically displayed to the user based on the user's earlier reservation actions. In another embodiment, where the user does not have an RID, such as during an at once job execution submission, the user might enter an immediate time intostart date 510, starthour 512, and startminute 514. In one embodiment, thestart date 510, starthour 512, and startminute 514, might automatically display the current date and time. The user may further complete the remaining entries for the submission of the at once job. The user then may submit the job for at once execution by so indicating the job to be an at once job using the at once icon 523, and then employing the submiticon 522. - Moreover, where the job is to be submitted as an at once job execution, the user may so indicate this using the at once
job selection icon 524, and by further entering ajob specification 526, such as a job number, job name, or other job identifier. - The above specification, examples, and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/668,441 US20080184248A1 (en) | 2007-01-29 | 2007-01-29 | Optimization of job scheduling for resource clusters with access control and usage reporting |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/668,441 US20080184248A1 (en) | 2007-01-29 | 2007-01-29 | Optimization of job scheduling for resource clusters with access control and usage reporting |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080184248A1 true US20080184248A1 (en) | 2008-07-31 |
Family
ID=39669443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/668,441 Abandoned US20080184248A1 (en) | 2007-01-29 | 2007-01-29 | Optimization of job scheduling for resource clusters with access control and usage reporting |
Country Status (1)
Country | Link |
---|---|
US (1) | US20080184248A1 (en) |
Cited By (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060288251A1 (en) * | 2005-06-17 | 2006-12-21 | Cluster Resources, Inc. | System and method for providing dynamic roll-back reservations in time |
US20080195688A1 (en) * | 2007-02-14 | 2008-08-14 | Hideyuki Watanabe | Information processing apparatus, information processing method, and computer program product |
US20090012930A1 (en) * | 2004-03-13 | 2009-01-08 | Cluster Resources, Inc. | System and method for a self-optimizing reservation in time of compute resources |
US20090043888A1 (en) * | 2004-03-13 | 2009-02-12 | Cluster Resources, Inc. | System and method of providing reservation masks within a compute environment |
US20090133026A1 (en) * | 2007-11-20 | 2009-05-21 | Aggarwal Vijay K | Method and system to identify conflicts in scheduling data center changes to assets |
US20100023949A1 (en) * | 2004-03-13 | 2010-01-28 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
EP2178264A1 (en) * | 2008-10-17 | 2010-04-21 | Canon Europa N.V. | Multi protocol print client-server communication |
US7971204B2 (en) | 2004-03-13 | 2011-06-28 | Adaptive Computing Enterprises, Inc. | System and method of co-allocating a reservation spanning different compute resources types |
US20110173628A1 (en) * | 2010-01-11 | 2011-07-14 | Qualcomm Incorporated | System and method of controlling power in an electronic device |
US20110219254A1 (en) * | 2010-03-02 | 2011-09-08 | Solarwinds Worldwide, Llc | Visualizing power level schedule |
US20120044532A1 (en) * | 2010-08-17 | 2012-02-23 | Fujitsu Limited | Management device, file server system, execution method and management program |
US8306036B1 (en) * | 2008-06-20 | 2012-11-06 | F5 Networks, Inc. | Methods and systems for hierarchical resource allocation through bookmark allocation |
US8321871B1 (en) * | 2004-06-18 | 2012-11-27 | Adaptive Computing Enterprises, Inc. | System and method of using transaction IDS for managing reservations of compute resources within a compute environment |
US8346993B2 (en) | 2009-01-16 | 2013-01-01 | F5 Networks, Inc. | Network devices with multiple direct memory access channels and methods thereof |
US8447884B1 (en) | 2008-12-01 | 2013-05-21 | F5 Networks, Inc. | Methods for mapping virtual addresses to physical addresses in a network device and systems thereof |
US20130212146A1 (en) * | 2012-02-14 | 2013-08-15 | International Business Machines Corporation | Increased interoperability between web-based applications and hardware functions |
US8537825B1 (en) | 2007-09-28 | 2013-09-17 | F5 Networks, Inc. | Lockless atomic table update |
US20130257716A1 (en) * | 2012-03-31 | 2013-10-03 | Smart Technologies Ulc | Interactive input system and method |
US20140189416A1 (en) * | 2011-08-26 | 2014-07-03 | Hitichi, Ltd. | Predictive sequential calculation device |
US20140229610A1 (en) * | 2012-04-25 | 2014-08-14 | Empire Technology Development Llc | Workload prediction for network-based computing |
US20140282629A1 (en) * | 2010-06-30 | 2014-09-18 | Amazon Technologies, Inc. | Managing requests for computing capacity |
US8880632B1 (en) | 2009-01-16 | 2014-11-04 | F5 Networks, Inc. | Method and apparatus for performing multiple DMA channel based network quality of service |
US8880696B1 (en) | 2009-01-16 | 2014-11-04 | F5 Networks, Inc. | Methods for sharing bandwidth across a packetized bus and systems thereof |
US20140344813A1 (en) * | 2013-05-20 | 2014-11-20 | International Business Machines Corporation | Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment |
US9036822B1 (en) | 2012-02-15 | 2015-05-19 | F5 Networks, Inc. | Methods for managing user information and devices thereof |
CN104731657A (en) * | 2013-12-24 | 2015-06-24 | 中国移动通信集团山西有限公司 | Resource scheduling method and system |
US9154453B2 (en) | 2009-01-16 | 2015-10-06 | F5 Networks, Inc. | Methods and systems for providing direct DMA |
US9152483B2 (en) | 2009-01-16 | 2015-10-06 | F5 Networks, Inc. | Network devices with multiple fully isolated and independently resettable direct memory access channels and methods thereof |
US9270602B1 (en) | 2012-12-31 | 2016-02-23 | F5 Networks, Inc. | Transmit rate pacing of large network traffic bursts to reduce jitter, buffer overrun, wasted bandwidth, and retransmissions |
US9313047B2 (en) | 2009-11-06 | 2016-04-12 | F5 Networks, Inc. | Handling high throughput and low latency network data packets in a traffic management device |
US20170085574A1 (en) * | 2015-09-23 | 2017-03-23 | Ca, Inc. | Security Authorization for Service Level Agreements |
US9635024B2 (en) | 2013-12-16 | 2017-04-25 | F5 Networks, Inc. | Methods for facilitating improved user authentication using persistent data and devices thereof |
US9864606B2 (en) | 2013-09-05 | 2018-01-09 | F5 Networks, Inc. | Methods for configurable hardware logic device reloading and devices thereof |
US20180046981A1 (en) * | 2016-08-11 | 2018-02-15 | TruckPay Inc. | Job verification method and system based on code scanning |
US10015143B1 (en) | 2014-06-05 | 2018-07-03 | F5 Networks, Inc. | Methods for securing one or more license entitlement grants and devices thereof |
US10033837B1 (en) | 2012-09-29 | 2018-07-24 | F5 Networks, Inc. | System and method for utilizing a data reducing module for dictionary compression of encoded data |
US10127273B2 (en) | 2014-04-15 | 2018-11-13 | Splunk Inc. | Distributed processing of network data using remote capture agents |
US10135831B2 (en) | 2011-01-28 | 2018-11-20 | F5 Networks, Inc. | System and method for combining an access control system with a traffic management system |
US10182013B1 (en) | 2014-12-01 | 2019-01-15 | F5 Networks, Inc. | Methods for managing progressive image delivery and devices thereof |
US10193916B2 (en) | 2014-10-30 | 2019-01-29 | Splunk Inc. | Configuring the generation of event data based on a triggering search query |
US10261837B2 (en) | 2017-06-30 | 2019-04-16 | Sas Institute Inc. | Two-part job scheduling with capacity constraints and preferences |
US10310896B1 (en) | 2018-03-15 | 2019-06-04 | Sas Institute Inc. | Techniques for job flow processing |
US10375155B1 (en) | 2013-02-19 | 2019-08-06 | F5 Networks, Inc. | System and method for achieving hardware acceleration for asymmetric flow connections |
US10382599B2 (en) | 2014-10-30 | 2019-08-13 | Splunk Inc. | Configuring generation of event streams by remote capture agents |
US10394597B1 (en) * | 2013-09-23 | 2019-08-27 | Amazon Technologies, Inc. | Flexible batch job scheduling in virtualization environments |
US10594798B2 (en) * | 2016-06-16 | 2020-03-17 | Veniam, Inc. | Systems and methods for managing containers in a network of moving things |
US10733028B2 (en) | 2004-03-13 | 2020-08-04 | Iii Holdings 12, Llc | Co-allocating a reservation spanning different compute resources types |
US10972453B1 (en) | 2017-05-03 | 2021-04-06 | F5 Networks, Inc. | Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof |
US11296951B2 (en) | 2014-04-15 | 2022-04-05 | Splunk Inc. | Interval-based generation of event streams by remote capture agents |
US11494235B2 (en) | 2004-11-08 | 2022-11-08 | Iii Holdings 12, Llc | System and method of providing system jobs within a compute environment |
US11496415B2 (en) | 2005-04-07 | 2022-11-08 | Iii Holdings 12, Llc | On-demand access to compute resources |
US11522952B2 (en) | 2007-09-24 | 2022-12-06 | The Research Foundation For The State University Of New York | Automatic clustering for self-organizing grids |
US11526304B2 (en) | 2009-10-30 | 2022-12-13 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US11537716B1 (en) | 2018-11-13 | 2022-12-27 | F5, Inc. | Methods for detecting changes to a firmware and devices thereof |
US11630704B2 (en) | 2004-08-20 | 2023-04-18 | Iii Holdings 12, Llc | System and method for a workload management and scheduling module to manage access to a compute environment according to local and non-local user identity information |
US11650857B2 (en) | 2006-03-16 | 2023-05-16 | Iii Holdings 12, Llc | System and method for managing a hybrid computer environment |
US11658916B2 (en) | 2005-03-16 | 2023-05-23 | Iii Holdings 12, Llc | Simple integration of an on-demand compute environment |
US11716248B1 (en) | 2014-04-15 | 2023-08-01 | Splunk Inc. | Selective event stream data storage based on network traffic volume |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
CN116909676A (en) * | 2023-09-12 | 2023-10-20 | 中国科学技术大学 | Binary first principle computing system and service method |
US11818018B1 (en) | 2014-04-15 | 2023-11-14 | Splunk Inc. | Configuring event streams based on identified security risks |
US11838851B1 (en) | 2014-07-15 | 2023-12-05 | F5, Inc. | Methods for managing L7 traffic classification and devices thereof |
US11855898B1 (en) | 2018-03-14 | 2023-12-26 | F5, Inc. | Methods for traffic dependent direct memory access optimization and devices thereof |
US11863408B1 (en) | 2014-04-15 | 2024-01-02 | Splunk Inc. | Generating event streams including modified network data monitored by remote capture agents |
US11895138B1 (en) | 2015-02-02 | 2024-02-06 | F5, Inc. | Methods for improving web scanner accuracy and devices thereof |
US11960937B2 (en) | 2022-03-17 | 2024-04-16 | Iii Holdings 12, Llc | System and method for an optimizing reservation in time of compute resources based on prioritization function and reservation policy parameter |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173420B1 (en) * | 1997-10-31 | 2001-01-09 | Oracle Corporation | Method and apparatus for fail safe configuration |
US20010027481A1 (en) * | 2000-02-09 | 2001-10-04 | Whyel Gabriel C. | Method and system for appointment/reservation scheduling |
US20040025079A1 (en) * | 2002-02-22 | 2004-02-05 | Ananthan Srinivasan | System and method for using a data replication service to manage a configuration repository |
US20040215780A1 (en) * | 2003-03-31 | 2004-10-28 | Nec Corporation | Distributed resource management system |
US20050027864A1 (en) * | 2003-07-28 | 2005-02-03 | Erol Bozak | Application start protocol |
US20050117587A1 (en) * | 2003-12-01 | 2005-06-02 | Nec Corporation | Distributed computing system for resource reservation and user verification |
US20050246666A1 (en) * | 2004-04-30 | 2005-11-03 | Forgent Networks, Inc. | System, method and software for managing and publishing resource availability data |
US20070022425A1 (en) * | 2004-03-13 | 2007-01-25 | Jackson David B | System and method for providing advanced reservations in a compute environment |
US20070294697A1 (en) * | 2006-05-05 | 2007-12-20 | Microsoft Corporation | Extensible job submission |
US7752310B2 (en) * | 2006-01-18 | 2010-07-06 | Fujitsu Limited | Computer program, method, and apparatus for managing reservation of it resources |
US7779413B2 (en) * | 2004-06-03 | 2010-08-17 | Hitachi, Ltd. | Method of assigning available resources for internal and external users at start time of scheduled time period based on program reservations information |
US7788377B2 (en) * | 2003-06-20 | 2010-08-31 | Ricoh Company, Ltd. | Method and apparatus for providing a service for sharing a printing environment |
-
2007
- 2007-01-29 US US11/668,441 patent/US20080184248A1/en not_active Abandoned
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173420B1 (en) * | 1997-10-31 | 2001-01-09 | Oracle Corporation | Method and apparatus for fail safe configuration |
US20010027481A1 (en) * | 2000-02-09 | 2001-10-04 | Whyel Gabriel C. | Method and system for appointment/reservation scheduling |
US20040025079A1 (en) * | 2002-02-22 | 2004-02-05 | Ananthan Srinivasan | System and method for using a data replication service to manage a configuration repository |
US20040215780A1 (en) * | 2003-03-31 | 2004-10-28 | Nec Corporation | Distributed resource management system |
US7788377B2 (en) * | 2003-06-20 | 2010-08-31 | Ricoh Company, Ltd. | Method and apparatus for providing a service for sharing a printing environment |
US20050027864A1 (en) * | 2003-07-28 | 2005-02-03 | Erol Bozak | Application start protocol |
US20050117587A1 (en) * | 2003-12-01 | 2005-06-02 | Nec Corporation | Distributed computing system for resource reservation and user verification |
US20070022425A1 (en) * | 2004-03-13 | 2007-01-25 | Jackson David B | System and method for providing advanced reservations in a compute environment |
US20050246666A1 (en) * | 2004-04-30 | 2005-11-03 | Forgent Networks, Inc. | System, method and software for managing and publishing resource availability data |
US7779413B2 (en) * | 2004-06-03 | 2010-08-17 | Hitachi, Ltd. | Method of assigning available resources for internal and external users at start time of scheduled time period based on program reservations information |
US7752310B2 (en) * | 2006-01-18 | 2010-07-06 | Fujitsu Limited | Computer program, method, and apparatus for managing reservation of it resources |
US20070294697A1 (en) * | 2006-05-05 | 2007-12-20 | Microsoft Corporation | Extensible job submission |
Cited By (120)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9128767B2 (en) | 2004-03-13 | 2015-09-08 | Adaptive Computing Enterprises, Inc. | Canceling and locking personal reservation if the workload associated with personal reservation exceeds window of time allocated within a resource reservation |
US10871999B2 (en) | 2004-03-13 | 2020-12-22 | Iii Holdings 12, Llc | System and method for a self-optimizing reservation in time of compute resources |
US20090012930A1 (en) * | 2004-03-13 | 2009-01-08 | Cluster Resources, Inc. | System and method for a self-optimizing reservation in time of compute resources |
US20090043888A1 (en) * | 2004-03-13 | 2009-02-12 | Cluster Resources, Inc. | System and method of providing reservation masks within a compute environment |
US9886322B2 (en) | 2004-03-13 | 2018-02-06 | Iii Holdings 12, Llc | System and method for providing advanced reservations in a compute environment |
US20100023949A1 (en) * | 2004-03-13 | 2010-01-28 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
US7890629B2 (en) | 2004-03-13 | 2011-02-15 | Adaptive Computing Enterprises, Inc. | System and method of providing reservation masks within a compute environment |
US8418186B2 (en) | 2004-03-13 | 2013-04-09 | Adaptive Computing Enterprises, Inc. | System and method of co-allocating a reservation spanning different compute resources types |
US8413155B2 (en) | 2004-03-13 | 2013-04-02 | Adaptive Computing Enterprises, Inc. | System and method for a self-optimizing reservation in time of compute resources |
US7971204B2 (en) | 2004-03-13 | 2011-06-28 | Adaptive Computing Enterprises, Inc. | System and method of co-allocating a reservation spanning different compute resources types |
US9959141B2 (en) | 2004-03-13 | 2018-05-01 | Iii Holdings 12, Llc | System and method of providing a self-optimizing reservation in space of compute resources |
US9959140B2 (en) | 2004-03-13 | 2018-05-01 | Iii Holdings 12, Llc | System and method of co-allocating a reservation spanning different compute resources types |
US10733028B2 (en) | 2004-03-13 | 2020-08-04 | Iii Holdings 12, Llc | Co-allocating a reservation spanning different compute resources types |
US9268607B2 (en) | 2004-03-13 | 2016-02-23 | Adaptive Computing Enterprises, Inc. | System and method of providing a self-optimizing reservation in space of compute resources |
US11467883B2 (en) | 2004-03-13 | 2022-10-11 | Iii Holdings 12, Llc | Co-allocating a reservation spanning different compute resources types |
US8150972B2 (en) | 2004-03-13 | 2012-04-03 | Adaptive Computing Enterprises, Inc. | System and method of providing reservation masks within a compute environment |
US8321871B1 (en) * | 2004-06-18 | 2012-11-27 | Adaptive Computing Enterprises, Inc. | System and method of using transaction IDS for managing reservations of compute resources within a compute environment |
US11652706B2 (en) | 2004-06-18 | 2023-05-16 | Iii Holdings 12, Llc | System and method for providing dynamic provisioning within a compute environment |
US8984524B2 (en) | 2004-06-18 | 2015-03-17 | Adaptive Computing Enterprises, Inc. | System and method of using transaction IDS for managing reservations of compute resources within a compute environment |
US11630704B2 (en) | 2004-08-20 | 2023-04-18 | Iii Holdings 12, Llc | System and method for a workload management and scheduling module to manage access to a compute environment according to local and non-local user identity information |
US11762694B2 (en) | 2004-11-08 | 2023-09-19 | Iii Holdings 12, Llc | System and method of providing system jobs within a compute environment |
US11494235B2 (en) | 2004-11-08 | 2022-11-08 | Iii Holdings 12, Llc | System and method of providing system jobs within a compute environment |
US11537435B2 (en) | 2004-11-08 | 2022-12-27 | Iii Holdings 12, Llc | System and method of providing system jobs within a compute environment |
US11537434B2 (en) | 2004-11-08 | 2022-12-27 | Iii Holdings 12, Llc | System and method of providing system jobs within a compute environment |
US11886915B2 (en) | 2004-11-08 | 2024-01-30 | Iii Holdings 12, Llc | System and method of providing system jobs within a compute environment |
US11861404B2 (en) | 2004-11-08 | 2024-01-02 | Iii Holdings 12, Llc | System and method of providing system jobs within a compute environment |
US11709709B2 (en) | 2004-11-08 | 2023-07-25 | Iii Holdings 12, Llc | System and method of providing system jobs within a compute environment |
US11656907B2 (en) | 2004-11-08 | 2023-05-23 | Iii Holdings 12, Llc | System and method of providing system jobs within a compute environment |
US11658916B2 (en) | 2005-03-16 | 2023-05-23 | Iii Holdings 12, Llc | Simple integration of an on-demand compute environment |
US11496415B2 (en) | 2005-04-07 | 2022-11-08 | Iii Holdings 12, Llc | On-demand access to compute resources |
US11522811B2 (en) | 2005-04-07 | 2022-12-06 | Iii Holdings 12, Llc | On-demand access to compute resources |
US11765101B2 (en) | 2005-04-07 | 2023-09-19 | Iii Holdings 12, Llc | On-demand access to compute resources |
US11831564B2 (en) | 2005-04-07 | 2023-11-28 | Iii Holdings 12, Llc | On-demand access to compute resources |
US11533274B2 (en) | 2005-04-07 | 2022-12-20 | Iii Holdings 12, Llc | On-demand access to compute resources |
US20060288251A1 (en) * | 2005-06-17 | 2006-12-21 | Cluster Resources, Inc. | System and method for providing dynamic roll-back reservations in time |
US7996455B2 (en) | 2005-06-17 | 2011-08-09 | Adaptive Computing Enterprises, Inc. | System and method for providing dynamic roll-back reservations in time |
US8943207B2 (en) | 2005-06-17 | 2015-01-27 | Adaptive Computing Enterprises, Inc. | System and method for providing dynamic roll-back reservations in time |
US8572253B2 (en) | 2005-06-17 | 2013-10-29 | Adaptive Computing Enterprises, Inc. | System and method for providing dynamic roll-back |
US11650857B2 (en) | 2006-03-16 | 2023-05-16 | Iii Holdings 12, Llc | System and method for managing a hybrid computer environment |
US20080195688A1 (en) * | 2007-02-14 | 2008-08-14 | Hideyuki Watanabe | Information processing apparatus, information processing method, and computer program product |
US11522952B2 (en) | 2007-09-24 | 2022-12-06 | The Research Foundation For The State University Of New York | Automatic clustering for self-organizing grids |
US8537825B1 (en) | 2007-09-28 | 2013-09-17 | F5 Networks, Inc. | Lockless atomic table update |
US8635618B2 (en) * | 2007-11-20 | 2014-01-21 | International Business Machines Corporation | Method and system to identify conflicts in scheduling data center changes to assets utilizing task type plugin with conflict detection logic corresponding to the change request |
US20090133026A1 (en) * | 2007-11-20 | 2009-05-21 | Aggarwal Vijay K | Method and system to identify conflicts in scheduling data center changes to assets |
US8306036B1 (en) * | 2008-06-20 | 2012-11-06 | F5 Networks, Inc. | Methods and systems for hierarchical resource allocation through bookmark allocation |
EP2178264A1 (en) * | 2008-10-17 | 2010-04-21 | Canon Europa N.V. | Multi protocol print client-server communication |
US20100100588A1 (en) * | 2008-10-17 | 2010-04-22 | Canon Europa N.V. | Multi-protocol print client-server communication |
US8086669B2 (en) | 2008-10-17 | 2011-12-27 | Canon Europa, N.V. | Multi-protocol print client-server communication |
US8447884B1 (en) | 2008-12-01 | 2013-05-21 | F5 Networks, Inc. | Methods for mapping virtual addresses to physical addresses in a network device and systems thereof |
US8880696B1 (en) | 2009-01-16 | 2014-11-04 | F5 Networks, Inc. | Methods for sharing bandwidth across a packetized bus and systems thereof |
US8880632B1 (en) | 2009-01-16 | 2014-11-04 | F5 Networks, Inc. | Method and apparatus for performing multiple DMA channel based network quality of service |
US8984178B2 (en) | 2009-01-16 | 2015-03-17 | F5 Networks, Inc. | Network devices with multiple direct memory access channels and methods thereof |
US9606946B2 (en) | 2009-01-16 | 2017-03-28 | F5 Networks, Inc. | Methods for sharing bandwidth across a packetized bus and systems thereof |
US9152483B2 (en) | 2009-01-16 | 2015-10-06 | F5 Networks, Inc. | Network devices with multiple fully isolated and independently resettable direct memory access channels and methods thereof |
US9154453B2 (en) | 2009-01-16 | 2015-10-06 | F5 Networks, Inc. | Methods and systems for providing direct DMA |
US8346993B2 (en) | 2009-01-16 | 2013-01-01 | F5 Networks, Inc. | Network devices with multiple direct memory access channels and methods thereof |
US11526304B2 (en) | 2009-10-30 | 2022-12-13 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US9313047B2 (en) | 2009-11-06 | 2016-04-12 | F5 Networks, Inc. | Handling high throughput and low latency network data packets in a traffic management device |
US20110173628A1 (en) * | 2010-01-11 | 2011-07-14 | Qualcomm Incorporated | System and method of controlling power in an electronic device |
US8745629B2 (en) * | 2010-01-11 | 2014-06-03 | Qualcomm Incorporated | System and method of controlling power in an electronic device |
US8527800B2 (en) * | 2010-03-02 | 2013-09-03 | Solarwinds Worldwide, Llc | Method and apparatus for displaying hour by hour power level status transitions for a network device by parsing cron job strings associated with the network device |
US20110219254A1 (en) * | 2010-03-02 | 2011-09-08 | Solarwinds Worldwide, Llc | Visualizing power level schedule |
US20140282629A1 (en) * | 2010-06-30 | 2014-09-18 | Amazon Technologies, Inc. | Managing requests for computing capacity |
US20120044532A1 (en) * | 2010-08-17 | 2012-02-23 | Fujitsu Limited | Management device, file server system, execution method and management program |
US10135831B2 (en) | 2011-01-28 | 2018-11-20 | F5 Networks, Inc. | System and method for combining an access control system with a traffic management system |
US20140189416A1 (en) * | 2011-08-26 | 2014-07-03 | Hitichi, Ltd. | Predictive sequential calculation device |
US9483306B2 (en) * | 2011-08-26 | 2016-11-01 | Hitachi, Ltd. | Predictive sequential calculation device |
US20130212146A1 (en) * | 2012-02-14 | 2013-08-15 | International Business Machines Corporation | Increased interoperability between web-based applications and hardware functions |
US9092540B2 (en) * | 2012-02-14 | 2015-07-28 | International Business Machines Corporation | Increased interoperability between web-based applications and hardware functions |
US9716759B2 (en) | 2012-02-14 | 2017-07-25 | International Business Machines Corporation | Increased interoperability between web-based applications and hardware functions |
US10270860B2 (en) | 2012-02-14 | 2019-04-23 | International Business Machines Corporation | Increased interoperability between web-based applications and hardware functions |
US10757193B2 (en) | 2012-02-14 | 2020-08-25 | International Business Machines Corporation | Increased interoperability between web-based applications and hardware functions |
US9036822B1 (en) | 2012-02-15 | 2015-05-19 | F5 Networks, Inc. | Methods for managing user information and devices thereof |
US20130257716A1 (en) * | 2012-03-31 | 2013-10-03 | Smart Technologies Ulc | Interactive input system and method |
US9509632B2 (en) * | 2012-04-25 | 2016-11-29 | Empire Technology Development Llc | Workload prediction for network-based computing |
US20140229610A1 (en) * | 2012-04-25 | 2014-08-14 | Empire Technology Development Llc | Workload prediction for network-based computing |
US10033837B1 (en) | 2012-09-29 | 2018-07-24 | F5 Networks, Inc. | System and method for utilizing a data reducing module for dictionary compression of encoded data |
US9270602B1 (en) | 2012-12-31 | 2016-02-23 | F5 Networks, Inc. | Transmit rate pacing of large network traffic bursts to reduce jitter, buffer overrun, wasted bandwidth, and retransmissions |
US10375155B1 (en) | 2013-02-19 | 2019-08-06 | F5 Networks, Inc. | System and method for achieving hardware acceleration for asymmetric flow connections |
US9645849B2 (en) * | 2013-05-20 | 2017-05-09 | International Business Machines Corporation | Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment |
US9645848B2 (en) * | 2013-05-20 | 2017-05-09 | International Business Machines Corporation | Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment |
US10223166B2 (en) | 2013-05-20 | 2019-03-05 | International Business Machines Corporation | Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment |
US10223165B2 (en) | 2013-05-20 | 2019-03-05 | International Business Machines Corporation | Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment |
US20140344814A1 (en) * | 2013-05-20 | 2014-11-20 | International Business Machines Corporation | Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment |
US20140344813A1 (en) * | 2013-05-20 | 2014-11-20 | International Business Machines Corporation | Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment |
US9864606B2 (en) | 2013-09-05 | 2018-01-09 | F5 Networks, Inc. | Methods for configurable hardware logic device reloading and devices thereof |
US11748168B2 (en) | 2013-09-23 | 2023-09-05 | Amazon Technologies, Inc. | Flexible batch job scheduling in virtualization environments |
US10394597B1 (en) * | 2013-09-23 | 2019-08-27 | Amazon Technologies, Inc. | Flexible batch job scheduling in virtualization environments |
US9635024B2 (en) | 2013-12-16 | 2017-04-25 | F5 Networks, Inc. | Methods for facilitating improved user authentication using persistent data and devices thereof |
CN104731657A (en) * | 2013-12-24 | 2015-06-24 | 中国移动通信集团山西有限公司 | Resource scheduling method and system |
US11716248B1 (en) | 2014-04-15 | 2023-08-01 | Splunk Inc. | Selective event stream data storage based on network traffic volume |
US10127273B2 (en) | 2014-04-15 | 2018-11-13 | Splunk Inc. | Distributed processing of network data using remote capture agents |
US11863408B1 (en) | 2014-04-15 | 2024-01-02 | Splunk Inc. | Generating event streams including modified network data monitored by remote capture agents |
US11314737B2 (en) | 2014-04-15 | 2022-04-26 | Splunk Inc. | Transforming event data using values obtained by querying a data source |
US11818018B1 (en) | 2014-04-15 | 2023-11-14 | Splunk Inc. | Configuring event streams based on identified security risks |
US11296951B2 (en) | 2014-04-15 | 2022-04-05 | Splunk Inc. | Interval-based generation of event streams by remote capture agents |
US10015143B1 (en) | 2014-06-05 | 2018-07-03 | F5 Networks, Inc. | Methods for securing one or more license entitlement grants and devices thereof |
US11838851B1 (en) | 2014-07-15 | 2023-12-05 | F5, Inc. | Methods for managing L7 traffic classification and devices thereof |
US10382599B2 (en) | 2014-10-30 | 2019-08-13 | Splunk Inc. | Configuring generation of event streams by remote capture agents |
US11425229B2 (en) | 2014-10-30 | 2022-08-23 | Splunk Inc. | Generating event streams from encrypted network traffic monitored by remote capture agents |
US10193916B2 (en) | 2014-10-30 | 2019-01-29 | Splunk Inc. | Configuring the generation of event data based on a triggering search query |
US10812514B2 (en) | 2014-10-30 | 2020-10-20 | Splunk Inc. | Configuring the generation of additional time-series event data by remote capture agents |
US10805438B2 (en) | 2014-10-30 | 2020-10-13 | Splunk Inc. | Configuring the protocol-based generation of event streams by remote capture agents |
US11936764B1 (en) | 2014-10-30 | 2024-03-19 | Splunk Inc. | Generating event streams based on application-layer events captured by remote capture agents |
US10701191B2 (en) | 2014-10-30 | 2020-06-30 | Splunk Inc. | Configuring rules for filtering events to be included in event streams |
US10182013B1 (en) | 2014-12-01 | 2019-01-15 | F5 Networks, Inc. | Methods for managing progressive image delivery and devices thereof |
US11895138B1 (en) | 2015-02-02 | 2024-02-06 | F5, Inc. | Methods for improving web scanner accuracy and devices thereof |
US20170085574A1 (en) * | 2015-09-23 | 2017-03-23 | Ca, Inc. | Security Authorization for Service Level Agreements |
US9882910B2 (en) * | 2015-09-23 | 2018-01-30 | Ca, Inc. | Security authorization for service level agreements |
US10594798B2 (en) * | 2016-06-16 | 2020-03-17 | Veniam, Inc. | Systems and methods for managing containers in a network of moving things |
US20180046981A1 (en) * | 2016-08-11 | 2018-02-15 | TruckPay Inc. | Job verification method and system based on code scanning |
US11494727B2 (en) * | 2016-08-11 | 2022-11-08 | TruckPay Inc. | Job verification method and system based on code scanning |
US10972453B1 (en) | 2017-05-03 | 2021-04-06 | F5 Networks, Inc. | Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof |
US10261837B2 (en) | 2017-06-30 | 2019-04-16 | Sas Institute Inc. | Two-part job scheduling with capacity constraints and preferences |
US11855898B1 (en) | 2018-03-14 | 2023-12-26 | F5, Inc. | Methods for traffic dependent direct memory access optimization and devices thereof |
US10310896B1 (en) | 2018-03-15 | 2019-06-04 | Sas Institute Inc. | Techniques for job flow processing |
US11537716B1 (en) | 2018-11-13 | 2022-12-27 | F5, Inc. | Methods for detecting changes to a firmware and devices thereof |
US11960937B2 (en) | 2022-03-17 | 2024-04-16 | Iii Holdings 12, Llc | System and method for an optimizing reservation in time of compute resources based on prioritization function and reservation policy parameter |
CN116909676A (en) * | 2023-09-12 | 2023-10-20 | 中国科学技术大学 | Binary first principle computing system and service method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080184248A1 (en) | Optimization of job scheduling for resource clusters with access control and usage reporting | |
US8776065B2 (en) | Real time monitoring and tracing of scheduler decisions | |
US9740522B2 (en) | Controlled interruption and resumption of batch job processing | |
US9424171B1 (en) | Resource-constrained test automation | |
US9985905B2 (en) | System and method for cloud enterprise services | |
US10678602B2 (en) | Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures | |
US7921405B2 (en) | Facilitation of multi-project management using throughput measurement | |
US9785899B2 (en) | Configurable resource policies | |
US8261275B2 (en) | Method and system for heuristics-based task scheduling | |
US20100235355A1 (en) | System and method for unified cloud management | |
US20150379447A1 (en) | Resource demand-based project team staffing | |
US20140136295A1 (en) | Dynamic recommendations taken over time for reservations of information technology resources | |
US8423955B2 (en) | Method and apparatus for supporting multiple business process languages in BPM | |
US20220276904A1 (en) | Job execution with managed compute environments | |
US8538793B2 (en) | System and method for managing real-time batch workflows | |
WO2015034486A1 (en) | Policy based selection of resources for a cloud service | |
US20120030573A1 (en) | Framework for ad-hoc process flexibility | |
CN108399132A (en) | A kind of scheduling tests method, apparatus and storage medium | |
US8595739B2 (en) | Prioritized resource scanning | |
US20090307035A1 (en) | Resolution of resource over-allocations in project plans | |
US8417555B2 (en) | Collaboration based capacity planning in a modular business setting | |
US9141425B2 (en) | Framework for critical-path resource-optimized parallel processing | |
US20090288095A1 (en) | Method and System for Optimizing a Job Scheduler in an Operating System | |
US10394597B1 (en) | Flexible batch job scheduling in virtualization environments | |
Lublinsky et al. | A kubernetes ‘bridge’operator between cloud and external resources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: YAHOO| INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BARUA, ANKUR;THWING, GARY LEE;REEL/FRAME:018868/0018 Effective date: 20070129 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: YAHOO HOLDINGS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YAHOO| INC.;REEL/FRAME:042963/0211 Effective date: 20170613 |
|
AS | Assignment |
Owner name: OATH INC., NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YAHOO HOLDINGS, INC.;REEL/FRAME:045240/0310 Effective date: 20171231 |