keith-turner commented on issue #2483:
URL: https://github.com/apache/accumulo/issues/2483#issuecomment-2408608661
I looked into removing the zookeeper table locks and ran into two problems.
1. Multi tablet operations like merge set operation ids on tablet
independently. Removing table locks for these would require more complex
locking operations on the tablets, something resembling two phase commit.
2. Some table data is stored in zookeeper, like table state. So
coordinating this type of zookeeper state w/ tablet state is much easier with
the current zookeeper table locks.
The split code in accumulo 4 avoids using table locks, but that required
adding complex code to coordinate with the table state stored in zookeeper.
The biggest advantage for table locks having a range would be allowing merge
to run on one part of table and bulk import and compaction to continue to run
on another part of the table. But now that merge operations are much faster
this use case is not as compelling. Compactions and bulk imports get read
locks on tables, so those can run concurrently.
Looking through all of the table operations that get write locks, found the
following.
* create table
* delete table
* rename table
* change table state (offline/online)
* clone table
* import table
* merge
Merge seems to be the only operation that would benefit from a range on the
table lock. Create,delete, clone, etc would all to lock the full range of the
table if locks had a range. Since merge is faster now and does not need the
ranges, maybe there is no good use case for this feature.
There is a caveat though. Even though merge is faster, once a merge is
initiated it will wait for running bulk imports and table compactions to
complete. While its waiting it will prevent new ones from starting. So it
could cause a disturbance in throughput for.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]