Hi lifejoice, you're right!
1. I see the source code, and it looks like that the ENGINE will save the bpmn20.xml file in ACT_GE_BYTEARRAY as byte, is it?
2. The ENGINE also will save the process definition picture in ACT_GE_BYTEARRAY as byte, is it?
There are always two rows on this table per deployment.
3. Is it use the DeploymentCache to cache the deployment?
Yes, you're right again. There is a cache inside this class.
Precissely by this attribute:
protected Map<String, ProcessDefinitionEntity> processDefinitionCache = new HashMap<String, ProcessDefinitionEntity>();