Skip to content

Reduce execution time of updateElement

Problem

Hallo Alex, ich habe ein bisschen mit VisualVM herumgespielt und folgende Methode gefunden, die etwas mehr Zeit braucht als gedacht:

https://git.gesis.org/stardat/stardat-ddiflatdb-rest/blob/master/src/main/java/org/gesis/stardat/ddiflatdb/client/RestClient.java#L178

private DDIStore updateElement( DDIStore element, String userName, String comment )
      {
             requireNonNull( element.getPrimaryKey() );
             try
             {
                   org.gesis.commons.resource.UriBuilder.V10 uriBuilder = newUriBuilder()
                                .path( ELEMENTS )
                                .pathParameter( PRIMARYKEY, element.getPrimaryKey() );
                   restTemplate.put( uriBuilder.toUri(),
                                new HttpEntity<>( element, buildHttpHeaders( userName, comment ) ) );
                   return getElement( element.getStudy(), element.getType(), element.getElementId() );
             }
             catch (HttpStatusCodeException e)
             {
                   throw new FlatdbServerException( e );
             }
      }

Wenn ich das richtig sehe, speichern wir dort mit restTemplate.put(..) etwas ab und laden es dann mit getElement erneut aus der Datenbank? Das scheint Zeit zu kosten. Kannst du da mal schauen? Grüße, Peter

Decision

  • Decided by Peter and Alex
  • Remove unnecessary getElement in updateElement: Return unchanged element directly
Edited by Alexander Mühlbauer