James Taylor created PHOENIX-2028: ------------------------------------- Summary: Improve performance of write path Key: PHOENIX-2028 URL: https://issues.apache.org/jira/browse/PHOENIX-2028 Project: Phoenix Issue Type: Bug Reporter: James Taylor
The following improvements can be made to bring the cost of UPSERT VALUES more inline with direct HBase API usage: - don't re-compile a prepared UPSERT VALUES statement that is re-executed (see patch on PHOENIX-1711). - change MutationState to use a List instead of a Map at the top level. It's ok to have duplicate rows here, as they'll get folded together when we generate the List<Mutation>. - change each mutation in the list to be a simple List<byte[]>. We can keep a pointer to the PTable and a List<int> of positions into the PTable columns instead of maintaining a Map for each row. Again, this will get folded together when we generate the List<Mutation>. - we don't need to create Mutations for PhoenixRuntime.getUncommittedDataIterator() and it appears we don't need to sort (though we should verify that). Instead, we'll just generate a List<KeyValue> for each row in MutationState, allowing duplicate and out-of-order row keys. -- This message was sent by Atlassian JIRA (v6.3.4#6332)