Skip to content

feat: add table lock manager to fix table lock cannot be released #13434

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 50 commits into from
Nov 2, 2023
Merged
Show file tree
Hide file tree
Changes from 42 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
54ba261
Add table lock manager
zhyass Oct 25, 2023
c50d730
make lint
zhyass Oct 26, 2023
677c925
rename to table lock holder
zhyass Oct 26, 2023
0ac750f
Add valid check
zhyass Oct 26, 2023
b581da4
fix
zhyass Oct 26, 2023
50959d8
add metrics
zhyass Oct 26, 2023
1ec38fc
Merge remote-tracking branch 'upstream/main' into lock_manager
zhyass Oct 26, 2023
f1c8878
add catalog
zhyass Oct 26, 2023
e459e8a
add test
zhyass Oct 26, 2023
2d647bd
Merge branch 'main' into lock_manager
zhyass Oct 27, 2023
10bffdf
fix review comment
zhyass Oct 27, 2023
9349628
remove unused
zhyass Oct 27, 2023
fce0847
fix table lock release
zhyass Oct 27, 2023
131fe29
add check lock
zhyass Oct 27, 2023
83de4e7
Merge remote-tracking branch 'upstream/main' into lock_manager
zhyass Oct 27, 2023
ecc1e84
remove unused codes
zhyass Oct 27, 2023
d8884a1
update
zhyass Oct 27, 2023
c5c308d
fix
zhyass Oct 28, 2023
60801ab
Merge remote-tracking branch 'upstream/main' into lock_manager
zhyass Oct 28, 2023
2d6aa6b
remove unused code
zhyass Oct 28, 2023
a5bbc11
make lint
zhyass Oct 28, 2023
d313a87
Add table lock meta
zhyass Oct 30, 2023
aaa01ea
Merge remote-tracking branch 'upstream/main' into lock_manager
zhyass Oct 30, 2023
e80176c
add setting acquire_lock_timeout_secs
zhyass Oct 30, 2023
56d822a
Merge remote-tracking branch 'upstream/main' into lock_manager
zhyass Oct 30, 2023
3b8edd5
rename metrics
zhyass Oct 30, 2023
31f3c37
fix
zhyass Oct 30, 2023
5103a6c
add user in table lock meta
zhyass Oct 30, 2023
4e28b79
fix comment
zhyass Oct 31, 2023
314871e
Merge remote-tracking branch 'upstream/main' into lock_manager
zhyass Oct 31, 2023
54dd426
fix test
zhyass Oct 31, 2023
458c7f9
rename
zhyass Oct 31, 2023
d9742a0
update
zhyass Oct 31, 2023
b9d12da
remove lockrequest
zhyass Oct 31, 2023
2010608
Merge remote-tracking branch 'upstream/main' into lock_manager
zhyass Oct 31, 2023
b95cc3f
rename
zhyass Oct 31, 2023
c5c926b
Merge remote-tracking branch 'upstream/main' into lock_manager
zhyass Oct 31, 2023
5dd3047
fix lint
zhyass Oct 31, 2023
9de83a7
fix review comment
zhyass Nov 1, 2023
eea2a3a
Merge remote-tracking branch 'upstream/main' into lock_manager
zhyass Nov 1, 2023
15ef732
fix test
zhyass Nov 1, 2023
f40da10
Merge branch 'main' into lock_manager
zhyass Nov 1, 2023
1b2d7ea
Update src/meta/proto-conv/tests/it/proto_conv.rs
zhyass Nov 1, 2023
6ebb346
fix review comment
zhyass Nov 1, 2023
f08af2d
add retry for lock holder
zhyass Nov 2, 2023
c89889f
Merge branch 'main' into lock_manager
zhyass Nov 2, 2023
1173a2c
update
zhyass Nov 2, 2023
04fec9d
Merge branch 'main' into lock_manager
zhyass Nov 2, 2023
a9186dd
Merge branch 'main' into lock_manager
zhyass Nov 2, 2023
01ea4d4
Merge branch 'main' into lock_manager
zhyass Nov 2, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 26 additions & 21 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ members = [
"src/query/storages/common/cache",
"src/query/storages/common/cache_manager",
"src/query/storages/common/index",
"src/query/storages/common/locks",
"src/query/storages/common/pruner",
"src/query/storages/common/table_meta",
"src/query/storages/factory",
Expand All @@ -74,7 +75,6 @@ members = [
"src/query/ee_features/background_service",
"src/query/ee_features/aggregating_index",
"src/query/ee_features/data_mask",
"src/query/ee_features/table_lock",
"src/query/ee_features/storage_encryption",
# databend-query
"src/query/service",
Expand Down
26 changes: 15 additions & 11 deletions src/meta/api/src/schema_api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@ use common_meta_app::schema::CreateDatabaseReply;
use common_meta_app::schema::CreateDatabaseReq;
use common_meta_app::schema::CreateIndexReply;
use common_meta_app::schema::CreateIndexReq;
use common_meta_app::schema::CreateTableLockRevReply;
use common_meta_app::schema::CreateTableLockRevReq;
use common_meta_app::schema::CreateLockRevReply;
use common_meta_app::schema::CreateLockRevReq;
use common_meta_app::schema::CreateTableReply;
use common_meta_app::schema::CreateTableReq;
use common_meta_app::schema::CreateVirtualColumnReply;
use common_meta_app::schema::CreateVirtualColumnReq;
use common_meta_app::schema::DatabaseInfo;
use common_meta_app::schema::DeleteTableLockRevReq;
use common_meta_app::schema::DeleteLockRevReq;
use common_meta_app::schema::DropCatalogReply;
use common_meta_app::schema::DropCatalogReq;
use common_meta_app::schema::DropDatabaseReply;
Expand All @@ -41,7 +41,7 @@ use common_meta_app::schema::DropTableByIdReq;
use common_meta_app::schema::DropTableReply;
use common_meta_app::schema::DropVirtualColumnReply;
use common_meta_app::schema::DropVirtualColumnReq;
use common_meta_app::schema::ExtendTableLockRevReq;
use common_meta_app::schema::ExtendLockRevReq;
use common_meta_app::schema::GcDroppedTableReq;
use common_meta_app::schema::GcDroppedTableResp;
use common_meta_app::schema::GetCatalogReq;
Expand All @@ -60,9 +60,10 @@ use common_meta_app::schema::ListDroppedTableReq;
use common_meta_app::schema::ListDroppedTableResp;
use common_meta_app::schema::ListIndexesByIdReq;
use common_meta_app::schema::ListIndexesReq;
use common_meta_app::schema::ListTableLockRevReq;
use common_meta_app::schema::ListLockRevReq;
use common_meta_app::schema::ListTableReq;
use common_meta_app::schema::ListVirtualColumnsReq;
use common_meta_app::schema::LockMeta;
use common_meta_app::schema::RenameDatabaseReply;
use common_meta_app::schema::RenameDatabaseReq;
use common_meta_app::schema::RenameTableReply;
Expand Down Expand Up @@ -240,16 +241,19 @@ pub trait SchemaApi: Send + Sync {

async fn count_tables(&self, req: CountTablesReq) -> Result<CountTablesReply, KVAppError>;

async fn list_table_lock_revs(&self, req: ListTableLockRevReq) -> Result<Vec<u64>, KVAppError>;
async fn list_lock_revisions(
&self,
req: ListLockRevReq,
) -> Result<Vec<(u64, LockMeta)>, KVAppError>;

async fn create_table_lock_rev(
async fn create_lock_revision(
&self,
req: CreateTableLockRevReq,
) -> Result<CreateTableLockRevReply, KVAppError>;
req: CreateLockRevReq,
) -> Result<CreateLockRevReply, KVAppError>;

async fn extend_table_lock_rev(&self, req: ExtendTableLockRevReq) -> Result<(), KVAppError>;
async fn extend_lock_revision(&self, req: ExtendLockRevReq) -> Result<(), KVAppError>;

async fn delete_table_lock_rev(&self, req: DeleteTableLockRevReq) -> Result<(), KVAppError>;
async fn delete_lock_revision(&self, req: DeleteLockRevReq) -> Result<(), KVAppError>;

async fn create_catalog(&self, req: CreateCatalogReq)
-> Result<CreateCatalogReply, KVAppError>;
Expand Down
Loading