Hi Andreas,
The behavior you are seeing is inherent in the design of the
client. RDF graphs and statements created/modified by non-synchronized
transactions are held in a special data structure called the transaction
queue which filters reads and writes against the local replica. This
data structure was designed to really only maintain small increments of
data between updates. However, depending on how many transactions your
50k statements are spread over, this could be fine or problematic. If
you only have a few transactions, then the transaction queue structure
carries only a small amount of overhead compared to the number of
statements, but if you have lots of transactions you will have a serious
problem. This is because each transaction maintains a mini quadstore of
additions and deletions used to filter reads and writes. Keep in mind
that unless you group operations inside anzoClient.begin() and
anzoClient.commit(), each operation will get it's own transaction.
Hope this helps,
Ben