Posty

Wyświetlanie postów z 2016

Google Cloud Datastore - Objectify vs. JPA DataNucleus (performance comparison)

Obraz
Please see current performance test results: https://github.com/maciej-arkit/GAE-Datastore-Performance-Test/blob/master/results/Objectify_vs_JPA_-_performance_test_plan.ods There is no clear winner regarding performance - both JPA and Objectify may perform better in some areas but none perform better in all tests. Tests listed below cover only specific cases. Practical experience shows that Objectify performs much better and it significantly boosts development efficiency over JPA, due to convenient documentation and general robustness. If you are using JPA (DataNucleus) on top of Datastore, you may think about migrating your application to Objectify for following reasons: Objectify is easy to use (it has lightweight API) JPA is not recommended by Google to be used with Datastore (because it doesn't corresponds to non-relational nature of Datastore) DataNucleus JPA is not activelly supported for Datastore, and there is no such plan, which means that no bugfixes/enhanceme...

Geospatial Queries with Google Cloud Datastore (Java)

NOTICE This article describes geospatial queries for Google Cloud Datastore  + Java . Please keep in mind that using Google Cloud Platform you can also use Cloud SQL (compatible with MySQL), which allows to use much more solutions / libraries for geospatial queries. Geospatial queries are integral part of modern applications which allow to serve geo-contextual data -  ex. shops in the nearest surroundings. PROBLEM: Currently Google Cloud Datastore doesn't provide built-in API to execute geospatial queries This functionality is under development (alpha version, invitation only): https://cloud.google.com./appengine/docs/java/datastore/geosearch Datastore Geosearch API is available on local environment (DEVSERVER), but if you don't have invitation to use alpha version, you cannot deploy your solution to production: Creating an index failed for entity_type: "Location"ancestor: falseProperty {  name: "geoPt"  mode: 3}: Permission deni...