airavata-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (Jira)" <j...@apache.org>
Subject [jira] [Commented] (AIRAVATA-3126) Implement compute resource reservation addition
Date Mon, 27 Apr 2020 21:59:00 GMT

    [ https://issues.apache.org/jira/browse/AIRAVATA-3126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17093964#comment-17093964
] 

ASF subversion and git services commented on AIRAVATA-3126:
-----------------------------------------------------------

Commit bb8609673b8e2e21d2ec638613c4f319da1fb4e1 in airavata's branch refs/heads/master from
Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=bb86096 ]

Merge branch 'AIRAVATA-3126--Implement-compute-resource-reservation-addition'


> Implement compute resource reservation addition 
> ------------------------------------------------
>
>                 Key: AIRAVATA-3126
>                 URL: https://issues.apache.org/jira/browse/AIRAVATA-3126
>             Project: Airavata
>          Issue Type: Sub-task
>          Components: Django Portal, Registry API
>    Affects Versions: 0.18
>         Environment: https://django.staging.seagrid.org
>            Reporter: Eroma
>            Assignee: Marcus Christie
>            Priority: Minor
>
> # In PGA portal implementation for a compute resource we could add a reservation
>  # Reservation is to have a dedicate computing time in a cluster queue/partition
>  # As for the existing PGA implementation we could provide a reservation name and a start
and end time for the particular reservation. 
>  # In Django the implementation does not exists.
>  # First we should have the previous implementation done in Django portal
>  # Next step would be to improve it by enabling
>  # Adding a reservation for a particular cluster queue/partition
>  # Then we should also be able to add multiple reservations for a particular queue/partition.
These multiples will have different reservation names and start and end dates.
> h5. Data Model
>  - GroupComputeResourcePreference
>  -- reservations: list<ComputeResourceReservation>
>  --- queues: list<string>
>  --- reservationName
>  --- startTime
>  --- endTime
> A GroupComputeResourcePreference can have one or more ComputeResourceReservation records.
Each ComputeResourceReservation is applicable to one or more queue/partitions for the GroupComputeResourcePreference's
compute host. The ComputeResourceReservation also has a name, start date and end date.
> h5. TODO
>  - [x] how to deal with expired reservations?
>  -- in the UI have a button to remove all expired reservations
>  - [ ] Validation: don't allow multiple reservations for the same queue/partition for
the same overlapping time period?
>  - [x] Validation: endTime must be greater than startTime
>  - [x] update TaskContext.getReservation() logic where it looks to see if there is a
currrently active reservation for the host and queue
>  - [ ] document the automatic migration script creation logic -> moved to AIRAVATA-3326
>  - [x] Repository unit test: removing a reservation
>  - [x] Repository unit test: updating a reservation
>  - [x] Repository unit test: adding a queue
>  - [x] Repository unit test: removing a queue
>  - [x] Refactor the openjpa MappingTool migration script creation logic
>  - [ ] remove generate-sql-persistence.xml and maven goal that used it -> moved to
AIRAVATA-3326
>  - [x] migration for GroupComputeResourcePreference.reservation/reservationStartTime/reservationEndTime
into a ComputeResourceReservation record
>  -- since there was no UI for creating these, we don't have any of these records. So
we really don't need to bother with this migration.
>  - [ ] switch ide-integration to using mariadb instead of mysqld for better compatibility
with migration scripts -> moved to AIRAVATA-3326
>  - [ ] if not switching to mariadb then we need to remove IF NOT EXISTS from the migration
script
>  - [x] summarize active (and upcoming?) reservations on Group Resource Profile view
>  - [x] invalidate GroupComputeResourcePreference save when reservation is invalid
>  - [x] fix GroupComputeResourcePreference save/delete/cancel buttons to bottom of viewport

>  - [x] reservations move around in the UI when date based sort changes, maybe don't dynamically
sort
>  - [x] minutes aren't getting set if not selected? Can they be defaulted to 00? Might
also need to zero out seconds.
>  - [ ] inline form for the reservation editor?
>  - [x] don't allow picking an end date before the start date
>  - [x] test using the {{drop}} action to see if a migration can be generated when columns/tables
are removed: http://openjpa.apache.org/builds/3.1.0/apache-openjpa/docs/ref_guide_mapping.html#ref_guide_mapping_mappingtool_typical
>  -- this doesn't really work because the migration generation only runs after validation
fails. And validation only fails on when mapped columns are missing in the database.
> h5. Migration Plan
> h6. Expand
>  - database migration to add new tables
>  - -convert GroupComputeResourcePreference.reservation/reservationStartTime/reservationEndTime
into a ComputeResourceReservation record-
>  -- since there was no UI for creating GroupComputeResourcePreference.reservation, we
don't have any of these records. So we really don't need to bother with this migration.
>  - -trigger to turn new values in GroupComputeResourcePreference.reservationName/reservationStartTime/reservationEndTime
into ComputeResourceReservation records-
>  -- likewise
>  - but I don't think there is any UI or anything updating these fields now
>  - deploy API server with new ComputeResourceReservation model
> h6. Migrate
>  - Deploy Django UI for managing ComputeResourceReservation records
>  - Helix tasks should check the ComputeResourceReservation records in addition to GroupComputeResourcePreference.reservationName/reservationStartTime/reservationEndTime
> h6. Contract
>  - Helix tasks should stop checking the GroupComputeResourcePreference.reservationName/reservationStartTime/reservationEndTime
>  - Remove data model fields GroupComputeResourcePreference.reservation/reservationStartTime/reservationEndTime
and entity mappings
>  - remove database columns



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Mime
View raw message