Uploaded image for project: 'ovsdb'
  1. ovsdb
  2. OVSDB-471

Excessive memory allocation ("object churn") in OVSDB's Jackson based JSON processing

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Low
    • Resolution: Won't Do
    • Oxygen-SR3
    • Oxygen-SR4, Fluorine-SR2, Neon
    • None
    • None

    Description

      I'm looking at a Java Flight Recording obtained from (internal) scale lab testing, and see extensive "TLAB Allocations" due to what appears to be something wrong in ovsdb's JSON processing:

      char[] java.util.Arrays.copyOfRange(char[], int, int)	2671
      void java.lang.String.<init>(char[], int, int)	2671
      String java.lang.StringBuilder.toString()	2145
      String sun.reflect.generics.parser.SignatureParser.parseIdentifier()	812
      SimpleClassTypeSignature sun.reflect.generics.parser.SignatureParser.parsePackageNameAndSimpleClassTypeSignature()	692
      ClassTypeSignature sun.reflect.generics.parser.SignatureParser.parseClassTypeSignature()	692
      FieldTypeSignature sun.reflect.generics.parser.SignatureParser.parseFieldTypeSignature(boolean)	692
      FieldTypeSignature sun.reflect.generics.parser.SignatureParser.parseFieldTypeSignature()	692
      TypeArgument sun.reflect.generics.parser.SignatureParser.parseTypeArgument()	370
      TypeArgument[] sun.reflect.generics.parser.SignatureParser.parseTypeArguments()	370
      SimpleClassTypeSignature sun.reflect.generics.parser.SignatureParser.parsePackageNameAndSimpleClassTypeSignature()	370
      ClassTypeSignature sun.reflect.generics.parser.SignatureParser.parseClassTypeSignature()	370
      FieldTypeSignature sun.reflect.generics.parser.SignatureParser.parseFieldTypeSignature(boolean)	370
      FieldTypeSignature sun.reflect.generics.parser.SignatureParser.parseFieldTypeSignature()	370
      TypeSignature sun.reflect.generics.parser.SignatureParser.parseTypeSignature()	370
      TypeSignature sun.reflect.generics.parser.SignatureParser.parseTypeSig(String)	309
      TypeSignature sun.reflect.generics.repository.FieldRepository.parse(String)	309
      Tree sun.reflect.generics.repository.FieldRepository.parse(String)	309
      void sun.reflect.generics.repository.AbstractRepository.<init>(String, GenericsFactory)	309
      void sun.reflect.generics.repository.FieldRepository.<init>(String, GenericsFactory)	309
      FieldRepository sun.reflect.generics.repository.FieldRepository.make(String, GenericsFactory)	309
      FieldRepository java.lang.reflect.Field.getGenericInfo()	309
      Type java.lang.reflect.Field.getGenericType()	309
      JavaType com.fasterxml.jackson.databind.introspect.AnnotatedField.getType()	309
      void com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.addBeanProps(DeserializationContext, BeanDescription, BeanDeserializerBuilder)	309
      JsonDeserializer com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(DeserializationContext, JavaType, BeanDescription)	309
      JsonDeserializer com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(DeserializationContext, JavaType, BeanDescription)	309
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializationContext, DeserializerFactory, JavaType, BeanDescription)	309
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializationContext, DeserializerFactory, JavaType)	309
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializationContext, DeserializerFactory, JavaType)	309
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializationContext, DeserializerFactory, JavaType)	309
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializationContext, DeserializerFactory, JavaType)	309
      JsonDeserializer com.fasterxml.jackson.databind.DeserializationContext.findNonContextualValueDeserializer(JavaType)	306
      void com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(DeserializationContext)	306
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializationContext, DeserializerFactory, JavaType)	306
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializationContext, DeserializerFactory, JavaType)	306
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializationContext, DeserializerFactory, JavaType)	306
      JsonDeserializer com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(JavaType, BeanProperty)	306
      JsonDeserializer com.fasterxml.jackson.databind.deser.std.MapDeserializer.createContextual(DeserializationContext, BeanProperty)	306
      JsonDeserializer com.fasterxml.jackson.databind.DeserializationContext.handlePrimaryContextualization(JsonDeserializer, BeanProperty, JavaType)	306
      void com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(DeserializationContext)	306
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializationContext, DeserializerFactory, JavaType)	306
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializationContext, DeserializerFactory, JavaType)	306
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializationContext, DeserializerFactory, JavaType)	306
      JsonDeserializer com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(JavaType, BeanProperty)	306
      JsonDeserializer com.fasterxml.jackson.databind.deser.std.MapDeserializer.createContextual(DeserializationContext, BeanProperty)	306
      JsonDeserializer com.fasterxml.jackson.databind.DeserializationContext.handlePrimaryContextualization(JsonDeserializer, BeanProperty, JavaType)	306
      void com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(DeserializationContext)	306
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializationContext, DeserializerFactory, JavaType)	306
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializationContext, DeserializerFactory, JavaType)	306
      JsonDeserializer com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializationContext, DeserializerFactory, JavaType)	306
      JsonDeserializer com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(JavaType)	306
      JsonDeserializer com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(DeserializationContext, JavaType)	306
      Object com.fasterxml.jackson.databind.ObjectMapper._convert(Object, JavaType)	306
      Object com.fasterxml.jackson.databind.ObjectMapper.convertValue(Object, Class)	306
      UpdateNotification org.opendaylight.ovsdb.lib.notation.json.Converter$UpdateNotificationDeser.deserialize(JsonNode)	306
      UpdateNotification org.opendaylight.ovsdb.lib.notation.json.Converter$UpdateNotificationConverter.convert(JsonNode)	306
      Object org.opendaylight.ovsdb.lib.notation.json.Converter$UpdateNotificationConverter.convert(Object)	306
      Object com.fasterxml.jackson.databind.deser.std.StdDelegatingDeserializer.convertValue(Object)	306
      Object com.fasterxml.jackson.databind.deser.std.StdDelegatingDeserializer.deserialize(JsonParser, DeserializationContext)	306
      Object com.fasterxml.jackson.databind.ObjectMapper._convert(Object, JavaType)	306
      Object com.fasterxml.jackson.databind.ObjectMapper.convertValue(Object, Class)	306
      void org.opendaylight.ovsdb.lib.jsonrpc.JsonRpcEndpoint.processRequest(Object, JsonNode)	306
      void org.opendaylight.ovsdb.lib.jsonrpc.JsonRpcServiceBinderHandler.channelRead(ChannelHandlerContext, Object)	306

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            thapar Vishal Thapar
            vorburger Michael Vorburger
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: