apavlo/h-store — Issue #33: Serialization/Deserialization Optimizations
Author: apavlo
Created: 2012-03-04 20:19:37+00:00
State: open

We are spending a ton of time in the FastSerializer/FastDeserializer code. This is the current "high pole in the tent", as Stonebraker likes to call it. I think we will get a huge speed up if we fixed the following parts of the code:

1. Use a cached `StoredProcedureInvocation` pool inside of the `HStoreSite`. This also has the nice bonus feature of preventing us from having to create a new `ParameterSet` each time. We may want to move the deserializer code from `VoltProcedureListener` back into `HStoreSite.procedureInvocation()`

2. Serializing `ParameterSets` in the `ExecutionEngineJNI` code down into the EE is super slow. A lot of this time is spent figuring out what each object type is in the array. We should be able to cache all of this mess and re-use a ParameterSet array per batch since what `SQLStmts` are in a batch don't change very often. This could be put inside of the `BatchPlanner`, since we already keep separate planners per unique batch in a `VoltProcedure`.