Let's discuss this in tomorrow's Apache geode Clubhouse meeting

This email encrypted by tiny buttons & fat thumbs, beta voice recognition, and 
autocorrect on my iPhone.

> On 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.

Reply via email to