Awesome!

On Mon, Aug 17, 2015 at 3:21 PM, Ignatyev, Konstantin <[email protected]>
wrote:

> Done:
> https://issues.apache.org/jira/browse/GEODE-225
>
> https://issues.apache.org/jira/browse/GEODE-226
>
> Konstantin Ignatyev
> Enterprise Architect
> CDK Global
>
> t 206.219.8381  |  c 425.233.4536  |  f 206.269.6789
> [email protected]<mailto:[email protected]?subject=>
> cdk.com<http://www.cdkglobal.com>
>
>
>
> On Aug 17, 2015, at 3:00 PM, William Markito <[email protected]<mailto:
> [email protected]>> wrote:
>
> Thanks Konstantin!
>
> Would you mind opening a JIRA about those ?
> https://issues.apache.org/jira/browse/GEODE
>
>
> On Mon, Aug 17, 2015 at 2:51 PM, Ignatyev, Konstantin <[email protected]
> >
> wrote:
>
> Hi,
>
> I have been looking at Geode-s code and come across major performance
> killer for JSON handling in Geode, namely implementation of
> com.gemstone.gemfire.pdx.internal.PdxInstanceImpl#getObject
>
> as you can see in the snipped below the code creates ObjectMapper every
> time it needs to convert PDX instance into JSON. According to docs and
> examples on Jackson’s site instances of  ObjectMapper should be shared
> globally. Creating it for every transaction is quite expensive in terms of
> CPU and garbage collection.
>
>
> Another thing is date format, in the JSON land it is pretty much settled
> to be ISO 8661
>
>
> https://weblog.west-wind.com/posts/2014/Jan/06/JavaScript-JSON-Date-Parsing-and-real-Dates
>
> It would  be nice to be able to have Geode’s JSON standard compliant, or
> have this configurable.
>
> public Object getObject() {
>  if (getPdxType().getNoDomainClass()) {
>    //In case of Developer Rest APIs, All PdxInstances converted from Json
> will have a className =__GEMFIRE_JSON.
>    //Following code added to convert Json/PdxInstance into the Java
> object.
>    if(this.getClassName().equals("__GEMFIRE_JSON")){
>
>      //introspect the JSON, does the @type meta-data exist.
>      String className = extractTypeMetaData();
>
>      if(StringUtils.hasText(className)) {
>        try {
>          ObjectMapper mapper = new ObjectMapper();
>          mapper.setDateFormat(new SimpleDateFormat("MM/dd/yyyy"));
>
> mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
>
>
> mapper.configure(com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES,
> true);
>          String JSON = JSONFormatter.toJSON(this);
>          Object classInstance = mapper.readValue(JSON,
> ClassPathLoader.getLatest().forName(className));
>          return classInstance;
>        }catch(Exception e){
>          throw new PdxSerializationException("Could not deserialize as
> java class type could not resolved", e);
>        }
>      }
>    }
>    return this;
>  }
>
> Regards,
>
> Konstantin Ignatyev
>
>
>
>
> ----------------------------------------------------------------------
> This message and any attachments are intended only for the use of the
> addressee and may contain information that is privileged and confidential.
> If the reader of the message is not the intended recipient or an authorized
> representative of the intended recipient, you are hereby notified that any
> dissemination of this communication is strictly prohibited. If you have
> received this communication in error, notify the sender immediately by
> return email and delete the message and any attachments from your system.
>
>
>
>
> --
>
> William Markito Oliveira
> Enterprise Architect
> -- For questions about Apache Geode, please write to
> *[email protected]
> <[email protected]>*
>
>
> ----------------------------------------------------------------------
> This message and any attachments are intended only for the use of the
> addressee and may contain information that is privileged and confidential.
> If the reader of the message is not the intended recipient or an authorized
> representative of the intended recipient, you are hereby notified that any
> dissemination of this communication is strictly prohibited. If you have
> received this communication in error, notify the sender immediately by
> return email and delete the message and any attachments from your system.
>



-- 

William Markito Oliveira
Enterprise Architect
-- For questions about Apache Geode, please write to
*[email protected]
<[email protected]>*

Reply via email to