Uploaded image for project: 'Aurora'
  1. Aurora
  2. AURORA-116

Improve efficiency of saving host attributes (or avoid saving host attributes)

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • 0.5.0
    • Reliability, Scheduler
    • None

    Description

      The scheduler performs multiple write operations for every resource offer, to save slave attributes:

        public void resourceOffers(SchedulerDriver driver, List<Offer> offers) {
          Preconditions.checkState(registered, "Must be registered before receiving offers.");
      
          for (final Offer offer : offers) {
            log(Level.FINE, "Received offer: %s", offer);
            resourceOffers.incrementAndGet();
            storage.write(new MutateWork.NoResult.Quiet() {
              @Override protected void execute(MutableStoreProvider storeProvider) {
                storeProvider.getAttributeStore().saveHostAttributes(Conversions.getAttributes(offer));
              }
            });
      

      This can unnecessarily block the singly-threaded message dispatch in the scheduler driver. An incremental improvement would be to aggregate all slave info and save it in one write operation. Better yet would be to perform writes asynchronously (taking care to not break task scheduling, since attributes are expected to be present). Even better yet, it would be great to determine if we can avoid storing host attributes.

      Attachments

        Activity

          People

            Unassigned Unassigned
            wfarner Bill Farner
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: