Skip to content

Commit 872a7ba

Browse files
authored
refactor(query): remove useless ee feature (#18660)
* refactor(query): remove useless ee feature * refactor(query): remove useless ee feature
1 parent 76cca8f commit 872a7ba

File tree

13 files changed

+1
-357
lines changed

13 files changed

+1
-357
lines changed

Cargo.lock

Lines changed: 0 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ members = [
7979
"src/query/ee_features/data_mask",
8080
"src/query/ee_features/storage_encryption",
8181
"src/query/ee_features/stream_handler",
82-
"src/query/ee_features/storage_quota",
8382
"src/query/ee_features/table_index",
8483
"src/query/ee_features/virtual_column",
8584
"src/query/ee_features/resources_management",
@@ -196,7 +195,6 @@ databend-enterprise-query = { path = "src/query/ee" }
196195
databend-enterprise-resources-management = { path = "src/query/ee_features/resources_management" }
197196
databend-enterprise-row-access-policy-feature = { path = "src/query/ee_features/row_access_policy" }
198197
databend-enterprise-storage-encryption = { path = "src/query/ee_features/storage_encryption" }
199-
databend-enterprise-storage-quota = { path = "src/query/ee_features/storage_quota" }
200198
databend-enterprise-stream-handler = { path = "src/query/ee_features/stream_handler" }
201199
databend-enterprise-table-index = { path = "src/query/ee_features/table_index" }
202200
databend-enterprise-vacuum-handler = { path = "src/query/ee_features/vacuum_handler" }

src/common/license/src/license.rs

Lines changed: 1 addition & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -20,26 +20,6 @@ use display_more::DisplaySliceExt;
2020
use serde::Deserialize;
2121
use serde::Serialize;
2222

23-
#[derive(Debug, Clone, Eq, Ord, PartialOrd, PartialEq, serde::Serialize, serde::Deserialize)]
24-
pub struct ComputeQuota {
25-
pub threads_num: Option<usize>,
26-
pub memory_usage: Option<usize>,
27-
}
28-
29-
#[derive(Debug, Clone, Eq, Ord, PartialOrd, PartialEq, serde::Serialize, serde::Deserialize)]
30-
pub struct StorageQuota {
31-
pub storage_usage: Option<usize>,
32-
}
33-
34-
/// We allow user to use upto 1TiB storage size.
35-
impl Default for StorageQuota {
36-
fn default() -> Self {
37-
Self {
38-
storage_usage: Some(1024 * 1024 * 1024 * 1024),
39-
}
40-
}
41-
}
42-
4323
// All enterprise features are defined here.
4424
#[derive(Debug, Clone, Eq, Ord, PartialOrd, PartialEq, serde::Serialize, serde::Deserialize)]
4525
pub enum Feature {
@@ -65,10 +45,6 @@ pub enum Feature {
6545
Stream,
6646
#[serde(alias = "attach_table", alias = "ATTACH_TABLE")]
6747
AttacheTable,
68-
#[serde(alias = "compute_quota", alias = "COMPUTE_QUOTA")]
69-
ComputeQuota(ComputeQuota),
70-
#[serde(alias = "storage_quota", alias = "STORAGE_QUOTA")]
71-
StorageQuota(StorageQuota),
7248
#[serde(alias = "amend_table", alias = "AMEND_TABLE")]
7349
AmendTable,
7450
#[serde(alias = "hilbert_clustering", alias = "HILBERT_CLUSTERING")]
@@ -115,32 +91,6 @@ impl fmt::Display for Feature {
11591
Feature::StorageEncryption => write!(f, "storage_encryption"),
11692
Feature::Stream => write!(f, "stream"),
11793
Feature::AttacheTable => write!(f, "attach_table"),
118-
Feature::ComputeQuota(v) => {
119-
write!(f, "compute_quota(")?;
120-
121-
write!(f, "threads_num: ")?;
122-
match &v.threads_num {
123-
None => write!(f, "unlimited,")?,
124-
Some(threads_num) => write!(f, "{}", *threads_num)?,
125-
};
126-
127-
write!(f, ", memory_usage: ")?;
128-
match v.memory_usage {
129-
None => write!(f, "unlimited,")?,
130-
Some(memory_usage) => write!(f, "{}", memory_usage)?,
131-
}
132-
write!(f, ")")
133-
}
134-
Feature::StorageQuota(v) => {
135-
write!(f, "storage_quota(")?;
136-
137-
write!(f, "storage_usage: ")?;
138-
match v.storage_usage {
139-
None => write!(f, "unlimited,")?,
140-
Some(storage_usage) => write!(f, "{}", storage_usage)?,
141-
}
142-
write!(f, ")")
143-
}
14494
Feature::AmendTable => write!(f, "amend_table"),
14595
Feature::SystemManagement => write!(f, "system_management"),
14696
Feature::HilbertClustering => write!(f, "hilbert_clustering"),
@@ -167,30 +117,6 @@ impl Feature {
167117

168118
pub fn verify(&self, feature: &Feature) -> Result<VerifyResult, ErrorCode> {
169119
match (self, feature) {
170-
(Feature::ComputeQuota(c), Feature::ComputeQuota(v)) => {
171-
if let Some(thread_num) = c.threads_num {
172-
if thread_num <= v.threads_num.unwrap_or(usize::MAX) {
173-
return Ok(VerifyResult::Failure);
174-
}
175-
}
176-
177-
if let Some(max_memory_usage) = c.memory_usage {
178-
if max_memory_usage <= v.memory_usage.unwrap_or(usize::MAX) {
179-
return Ok(VerifyResult::Failure);
180-
}
181-
}
182-
183-
Ok(VerifyResult::Success)
184-
}
185-
(Feature::StorageQuota(c), Feature::StorageQuota(v)) => {
186-
if let Some(max_storage_usage) = c.storage_usage {
187-
if max_storage_usage <= v.storage_usage.unwrap_or(usize::MAX) {
188-
return Ok(VerifyResult::Failure);
189-
}
190-
}
191-
192-
Ok(VerifyResult::Success)
193-
}
194120
(Feature::MaxCpuQuota(c), Feature::MaxCpuQuota(v)) => match c > v {
195121
true => Ok(VerifyResult::Success),
196122
false => Ok(VerifyResult::Failure),
@@ -276,24 +202,6 @@ impl LicenseInfo {
276202

277203
DisplayFeatures(self)
278204
}
279-
280-
/// Get Storage Quota from given license info.
281-
///
282-
/// Returns the default storage quota if the storage quota is not licensed.
283-
pub fn get_storage_quota(&self) -> StorageQuota {
284-
let Some(features) = self.features.as_ref() else {
285-
return StorageQuota::default();
286-
};
287-
288-
features
289-
.iter()
290-
.find_map(|f| match f {
291-
Feature::StorageQuota(v) => Some(v),
292-
_ => None,
293-
})
294-
.cloned()
295-
.unwrap_or_default()
296-
}
297205
}
298206

299207
#[cfg(test)]
@@ -346,31 +254,6 @@ mod tests {
346254
Feature::AttacheTable,
347255
serde_json::from_str::<Feature>("\"ATTACH_TABLE\"").unwrap()
348256
);
349-
assert_eq!(
350-
Feature::ComputeQuota(ComputeQuota {
351-
threads_num: Some(1),
352-
memory_usage: Some(1),
353-
}),
354-
serde_json::from_str::<Feature>(
355-
"{\"ComputeQuota\":{\"threads_num\":1, \"memory_usage\":1}}"
356-
)
357-
.unwrap()
358-
);
359-
360-
assert_eq!(
361-
Feature::ComputeQuota(ComputeQuota {
362-
threads_num: None,
363-
memory_usage: Some(1),
364-
}),
365-
serde_json::from_str::<Feature>("{\"ComputeQuota\":{\"memory_usage\":1}}").unwrap()
366-
);
367-
368-
assert_eq!(
369-
Feature::StorageQuota(StorageQuota {
370-
storage_usage: Some(1),
371-
}),
372-
serde_json::from_str::<Feature>("{\"StorageQuota\":{\"storage_usage\":1}}").unwrap()
373-
);
374257

375258
assert_eq!(
376259
Feature::AmendTable,
@@ -441,13 +324,6 @@ mod tests {
441324
Feature::StorageEncryption,
442325
Feature::Stream,
443326
Feature::AttacheTable,
444-
Feature::ComputeQuota(ComputeQuota {
445-
threads_num: Some(1),
446-
memory_usage: Some(1),
447-
}),
448-
Feature::StorageQuota(StorageQuota {
449-
storage_usage: Some(1),
450-
}),
451327
Feature::AmendTable,
452328
Feature::HilbertClustering,
453329
Feature::NgramIndex,
@@ -459,7 +335,7 @@ mod tests {
459335
};
460336

461337
assert_eq!(
462-
"LicenseInfo{ type: enterprise, org: databend, tenants: [databend_tenant,foo], features: [aggregate_index,amend_table,attach_table,compute_quota(threads_num: 1, memory_usage: 1),computed_column,data_mask,hilbert_clustering,inverted_index,license_info,ngram_index,private_task,row_access_policy,storage_encryption,storage_quota(storage_usage: 1),stream,system_history,vacuum,virtual_column,workload_group] }",
338+
"LicenseInfo{ type: enterprise, org: databend, tenants: [databend_tenant,foo], features: [aggregate_index,amend_table,attach_table,computed_column,data_mask,hilbert_clustering,inverted_index,license_info,ngram_index,private_task,row_access_policy,storage_encryption,stream,system_history,vacuum,virtual_column,workload_group] }",
463339
license_info.to_string()
464340
);
465341
}

src/common/license/src/license_manager.rs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ use jwt_simple::claims::JWTClaims;
2222

2323
use crate::license::Feature;
2424
use crate::license::LicenseInfo;
25-
use crate::license::StorageQuota;
2625

2726
pub trait LicenseManager: Sync + Send {
2827
fn init(tenant: String) -> Result<()>
@@ -62,9 +61,6 @@ pub trait LicenseManager: Sync + Send {
6261
self.parse_license(&license_key)?;
6362
Ok(())
6463
}
65-
66-
/// Get the storage quota from license key.
67-
fn get_storage_quota(&self, license_key: String) -> Result<StorageQuota>;
6864
}
6965

7066
pub struct LicenseManagerSwitch {
@@ -112,11 +108,6 @@ impl LicenseManager for OssLicenseManager {
112108
"Need Commercial License".to_string(),
113109
))
114110
}
115-
116-
/// Always return default storage quota.
117-
fn get_storage_quota(&self, _: String) -> Result<StorageQuota> {
118-
Ok(StorageQuota::default())
119-
}
120111
}
121112

122113
#[cfg(test)]
@@ -190,10 +181,6 @@ mod tests {
190181
fn parse_license(&self, _raw: &str) -> Result<JWTClaims<LicenseInfo>> {
191182
self.license_claim.clone()
192183
}
193-
194-
fn get_storage_quota(&self, _license_key: String) -> Result<StorageQuota> {
195-
unimplemented!()
196-
}
197184
}
198185

199186
#[test]

src/query/ee/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ databend-enterprise-hilbert-clustering = { workspace = true }
4444
databend-enterprise-resources-management = { workspace = true }
4545
databend-enterprise-row-access-policy-feature = { workspace = true }
4646
databend-enterprise-storage-encryption = { workspace = true }
47-
databend-enterprise-storage-quota = { workspace = true }
4847
databend-enterprise-stream-handler = { workspace = true }
4948
databend-enterprise-table-index = { workspace = true }
5049
databend-enterprise-vacuum-handler = { workspace = true }

src/query/ee/src/enterprise_services.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ use crate::license::license_mgr::RealLicenseManager;
2626
use crate::resource_management::init_resources_management;
2727
use crate::row_access_policy::row_access_policy_handler::RealRowAccessPolicyHandler;
2828
use crate::storage_encryption::RealStorageEncryptionHandler;
29-
use crate::storage_quota::RealStorageQuotaHandler;
3029
use crate::storages::fuse::operations::RealVacuumHandler;
3130
use crate::stream::RealStreamHandler;
3231
use crate::table_index::RealTableIndexHandler;
@@ -46,7 +45,6 @@ impl EnterpriseServices {
4645
RealStreamHandler::init()?;
4746
RealAttachTableHandler::init()?;
4847
RealTableIndexHandler::init()?;
49-
RealStorageQuotaHandler::init(&cfg, version)?;
5048
RealFailSafeHandler::init()?;
5149
init_resources_management(&cfg, version).await?;
5250
RealHilbertClusteringHandler::init()?;

src/query/ee/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ pub mod license;
2222
pub mod resource_management;
2323
pub mod row_access_policy;
2424
pub mod storage_encryption;
25-
pub mod storage_quota;
2625
pub mod storages;
2726
pub mod stream;
2827
pub mod table_index;

src/query/ee/src/license/license_mgr.rs

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ use databend_common_exception::Result;
2121
use databend_common_exception::ToErrorCode;
2222
use databend_common_license::license::Feature;
2323
use databend_common_license::license::LicenseInfo;
24-
use databend_common_license::license::StorageQuota;
2524
use databend_common_license::license::VerifyResult;
2625
use databend_common_license::license_manager::LicenseManager;
2726
use databend_common_license::license_manager::LicenseManagerSwitch;
@@ -153,38 +152,6 @@ impl LicenseManager for RealLicenseManager {
153152
Ok(license)
154153
}
155154
}
156-
157-
fn get_storage_quota(&self, license_key: String) -> Result<StorageQuota> {
158-
if license_key.is_empty() {
159-
return Ok(StorageQuota::default());
160-
}
161-
162-
if let Some(v) = self.cache.get(&license_key) {
163-
if Self::verify_license_expired(v.value())? {
164-
return Err(ErrorCode::LicenseKeyExpired(format!(
165-
"[LicenseManager] License key expired at {:?}",
166-
v.value().expires_at,
167-
)));
168-
}
169-
return Ok(v.custom.get_storage_quota());
170-
}
171-
172-
let license = self.parse_license(&license_key).map_err_to_code(
173-
ErrorCode::LicenseKeyInvalid,
174-
|| format!("[LicenseManager] Storage use requires enterprise license. Current license invalid for tenant: {}", self.tenant),
175-
)?;
176-
177-
if Self::verify_license_expired(&license)? {
178-
return Err(ErrorCode::LicenseKeyExpired(format!(
179-
"[LicenseManager] License key expired at {:?}",
180-
license.expires_at,
181-
)));
182-
}
183-
184-
let quota = license.custom.get_storage_quota();
185-
self.cache.insert(license_key, license);
186-
Ok(quota)
187-
}
188155
}
189156

190157
impl RealLicenseManager {

0 commit comments

Comments
 (0)