I've been trialling Geowave on EMR for a project we're working on (querying AIS vessel points) and I'm not seeing the performance I expected and am struggling to discover where I've gone wrong.
I have used the example SimpleIngestIndexWriter.java class to write a few million records into my cluster (3 x M4 large cores & 1 master), with SpatialDimensionalityTypeProvider().createPrimaryIndex(), no secondary indexes, and I am using Geoserver openlayers preview to pan around the map and view basic vessel location points.
When I have a few hundred thousand records the map responds in less than 1 second but as I reach 1 million records and above the response times increase to 40 seconds and above. I have noticed that all of my records are being written to one node in the cluster. However even with a single node I was expecting better performance.
Is there some way that I can determine whether the spatial index is actually being used?
Should I be using a bigger server?
Also, is there someway to specify partitioning options when inserting records using an IndexWriter? I've noticed you can specify partitioning options when using the command line ingest tools. Would this help for querying AIS vessel points?
Thanks for your time!