We switched to the java8 runtime recently, and for the most part didn't 
experience any major issues (yet). Performance did definitely improve for 
us, compared to java7. On GAE Standard, we use a bunch of Google Cloud 
services, including Datastore, Vision API, GCS, Compute Engine, Memcache, 
PubSub, GAE UserService, GAE SearchService and BigQuery. All of them seem 
to work without issues after upgrading to java8.

Currently, we try to make use of the new grpc feature java8 is advertised 
with. Unfortunately, things seem to be considerably more unstable there.

Based on the example here [1], we tried to get Spanner to work on java8, 
using the ideomatic Java client libraries from google-cloud-java. The 
example itself executes without problems, but any slight variation in code 
structure will throw off the grpc initialization code and break the 
example. We tracked the problem down to GrpcUtils.TIMER_SERVICE and 
GrpcUtils.SHARED_CHANNEL_EXECUTOR. In the official example, classloading 
side effects seem to determine the type of ThreadFactory that backs these 
final static fields. If the effective ThreadFactory turns out to be a 
ThreadManager.currentRequestThreadFactory(), because the initialization 
happened in a context where MoreExecutors.isAppEngine() returns true, 
everything falls apart and we are left with a NullPointerException in 
ApiProxyImpl:1267 later on, when the Spanner session pool tries to create a 
session [2].

As soon as we - somewhat brutally - force GrpcUtils.TIMER_SERVICE and 
GrpcUtils.SHARED_CHANNEL_EXECUTOR to use a Executors.defaultThreadFactory() 
like this [3], we get a working grpc Spanner setup on GAE Standard!

So, from our POV, java8 looks promising, but this experience shows that 
grpc, Guava, and the grpc based client libraries in google-cloud-java still 
need some work before the whole stack is ready for production use.

- c


[1] 
https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/appengine-java8/spanner
[2] https://gist.github.com/cmaan/6aed2228516a9ae3c98a883ea9d6d815
[3] https://gist.github.com/cmaan/7752e3c4fd0b1ba90a745cb6db232206


On Thursday, July 6, 2017 at 9:45:38 PM UTC+2, Patrick Jackson wrote:
>
> Super excited to see Java 8 support.  The removal of the white-list is 
> also huge!  Curious about other's experiences with it so far.  Any 
> instability, things to note or consider.
> I know this is beta and no SLA until GA and all that, just would be 
> interested to hear from any devs that have been using it for real apps and 
> traffic.
>
> -Patrick Jackson
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/288d28fb-4ba0-4055-8d88-91470592b4ba%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to