Hi Wail,
There is no fundamental reason why it is one. In fact, it has been on our todo 
for a long time to make it one per partition.

Cheers,
Abdullah.

> On Oct 23, 2017, at 7:14 PM, Wail Alkowaileet <[email protected]> wrote:
> 
> Dear devs,
> 
> I have a question regarding the opTracker. Currently, we initialize one
> opTracker per dataset in every NC.
> 
> My question is why it's per dataset not per partition ? Is there a
> transactional constraints for that ?
> 
> From what I can see that the opTracker can create a lot of contention in
> case there're many IO devices. For instance, each insert will call
> *LSMHarness.getAndEnterComponents()* [1], which *synchronize(opTracker). *That
> means (correct me if I'm wrong), insert is going to serialize the
> *enterComponent()* part among partitions.
> 
> [1]
> https://github.com/apache/asterixdb/blob/master/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java#L86
> 
> -- 
> 
> *Regards,*
> Wail Alkowaileet

Reply via email to