From a929188658a40fef67cdd1a36fb97ca963345e92 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 27 Sep 2022 17:45:44 +0000 Subject: [PATCH] Added delay in batch job processing --- .vscode/launch.json | 4 ++-- devdocs/todo.txt | 5 +++-- server/AyaNova/DataList/DataListFetcher.cs | 11 +++++++++-- server/AyaNova/biz/ContractBiz.cs | 3 +++ server/AyaNova/biz/CustomerBiz.cs | 3 +++ server/AyaNova/biz/CustomerServiceRequestBiz.cs | 3 +++ server/AyaNova/biz/HeadOfficeBiz.cs | 3 +++ server/AyaNova/biz/LoanUnitBiz.cs | 3 +++ server/AyaNova/biz/MemoBiz.cs | 3 +++ server/AyaNova/biz/PMBiz.cs | 4 ++++ server/AyaNova/biz/PartAssemblyBiz.cs | 3 +++ server/AyaNova/biz/PartBiz.cs | 3 +++ server/AyaNova/biz/PartWarehouseBiz.cs | 3 +++ server/AyaNova/biz/ProjectBiz.cs | 3 +++ server/AyaNova/biz/PurchaseOrderBiz.cs | 4 ++++ server/AyaNova/biz/QuoteBiz.cs | 4 ++++ server/AyaNova/biz/ReminderBiz.cs | 3 +++ server/AyaNova/biz/ReviewBiz.cs | 3 +++ server/AyaNova/biz/ServiceRateBiz.cs | 3 +++ server/AyaNova/biz/TaskGroupBiz.cs | 3 +++ server/AyaNova/biz/TaxCodeBiz.cs | 3 +++ server/AyaNova/biz/TravelRateBiz.cs | 3 +++ server/AyaNova/biz/UnitBiz.cs | 3 +++ server/AyaNova/biz/UnitModelBiz.cs | 3 +++ server/AyaNova/biz/UserBiz.cs | 3 +++ server/AyaNova/biz/VendorBiz.cs | 3 +++ server/AyaNova/biz/WorkOrderBiz.cs | 4 ++++ server/AyaNova/kpi/KPIFetcher.cs | 9 +++++++++ server/AyaNova/util/ServerBootConfig.cs | 2 ++ 29 files changed, 101 insertions(+), 6 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 2668545b..0589e4b5 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -121,9 +121,9 @@ "AYANOVA_USE_URLS": "http://*:7575;", //"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true", //"AYANOVA_REMOVE_LICENSE_FROM_DB":"true", - //"AYANOVA_SERVER_TEST_MODE": "true", + // "AYANOVA_SERVER_TEST_MODE": "true", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-8", - "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small", + "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "large", "AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_14\\bin" }, "sourceFileMap": { diff --git a/devdocs/todo.txt b/devdocs/todo.txt index d23790fd..51328581 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -1,6 +1,7 @@ # now - +todo: what the hell is morrow doing? CPU pegged at 100% for all night now + could it be retagging or bulk op of some kind with huge wo dataset? todo: stop sending renewal reminders, shareit does that for us no need to make more work look into v7 license key messages and make sure it doesn't say that, also take out any info about manual license install @@ -17,7 +18,7 @@ PRICING / COSTS Done! License agreement page for subscription vs perpetual -("Quickly, quickly, there's no time" maybe can shoehorn it into the existing agreement by including "service" or subscription wording and just bypass all the rest for now until can pay a lawyer to do it) +("Quickly, quickly, there's no time" must use a new format as this is a subscription "SERVICE" not a software product so maybe look at quickbooks license or service agreement I guess it would be called) Must be clear customer is responsible for their data and must remain within reasonable usage levels or we will cancel the service diff --git a/server/AyaNova/DataList/DataListFetcher.cs b/server/AyaNova/DataList/DataListFetcher.cs index 9972a5b4..2a5fe162 100644 --- a/server/AyaNova/DataList/DataListFetcher.cs +++ b/server/AyaNova/DataList/DataListFetcher.cs @@ -1,4 +1,4 @@ -#define AYSHOWQUERYINFO +//#define AYSHOWQUERYINFO using System.Collections.Generic; using System.Linq; @@ -14,7 +14,13 @@ namespace AyaNova.DataList internal static class DataListFetcher { - +#if (AYSHOWQUERYINFO) +#if (DEBUG) +#warning FYI AYSHOWQUERYINFO is defined +#else +#error ### HOLDUP: AYSHOWQUERYINFO is defined in a RELEASE BUILD!!!! +#endif +#endif //////////////////////////////////////////////// // Get the data list data requested // @@ -59,6 +65,7 @@ namespace AyaNova.DataList System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch(); #endif + //QUERY THE DB using (var command = ct.Database.GetDbConnection().CreateCommand()) { diff --git a/server/AyaNova/biz/ContractBiz.cs b/server/AyaNova/biz/ContractBiz.cs index e503c29f..6eb4682b 100644 --- a/server/AyaNova/biz/ContractBiz.cs +++ b/server/AyaNova/biz/ContractBiz.cs @@ -656,6 +656,9 @@ MULTIPLE discount / markup ITEMS FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/CustomerBiz.cs b/server/AyaNova/biz/CustomerBiz.cs index a0f00b90..fa2bb7a1 100644 --- a/server/AyaNova/biz/CustomerBiz.cs +++ b/server/AyaNova/biz/CustomerBiz.cs @@ -635,6 +635,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/CustomerServiceRequestBiz.cs b/server/AyaNova/biz/CustomerServiceRequestBiz.cs index c290186e..f4b34083 100644 --- a/server/AyaNova/biz/CustomerServiceRequestBiz.cs +++ b/server/AyaNova/biz/CustomerServiceRequestBiz.cs @@ -434,6 +434,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/HeadOfficeBiz.cs b/server/AyaNova/biz/HeadOfficeBiz.cs index 615d3241..85d93d00 100644 --- a/server/AyaNova/biz/HeadOfficeBiz.cs +++ b/server/AyaNova/biz/HeadOfficeBiz.cs @@ -536,6 +536,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/LoanUnitBiz.cs b/server/AyaNova/biz/LoanUnitBiz.cs index fadd1caf..eec36162 100644 --- a/server/AyaNova/biz/LoanUnitBiz.cs +++ b/server/AyaNova/biz/LoanUnitBiz.cs @@ -451,6 +451,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/MemoBiz.cs b/server/AyaNova/biz/MemoBiz.cs index 1e1e23a6..ed67773c 100644 --- a/server/AyaNova/biz/MemoBiz.cs +++ b/server/AyaNova/biz/MemoBiz.cs @@ -436,6 +436,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/PMBiz.cs b/server/AyaNova/biz/PMBiz.cs index c051f506..e5960740 100644 --- a/server/AyaNova/biz/PMBiz.cs +++ b/server/AyaNova/biz/PMBiz.cs @@ -1034,6 +1034,10 @@ namespace AyaNova.Biz FailedObjectCount++; } } + + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/PartAssemblyBiz.cs b/server/AyaNova/biz/PartAssemblyBiz.cs index b6839c84..d80e81f4 100644 --- a/server/AyaNova/biz/PartAssemblyBiz.cs +++ b/server/AyaNova/biz/PartAssemblyBiz.cs @@ -593,6 +593,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/PartBiz.cs b/server/AyaNova/biz/PartBiz.cs index 7c8102b9..8ed41dcd 100644 --- a/server/AyaNova/biz/PartBiz.cs +++ b/server/AyaNova/biz/PartBiz.cs @@ -756,6 +756,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/PartWarehouseBiz.cs b/server/AyaNova/biz/PartWarehouseBiz.cs index 03576b09..43c5f669 100644 --- a/server/AyaNova/biz/PartWarehouseBiz.cs +++ b/server/AyaNova/biz/PartWarehouseBiz.cs @@ -462,6 +462,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/ProjectBiz.cs b/server/AyaNova/biz/ProjectBiz.cs index f80b2dc7..0cb6047b 100644 --- a/server/AyaNova/biz/ProjectBiz.cs +++ b/server/AyaNova/biz/ProjectBiz.cs @@ -484,6 +484,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/PurchaseOrderBiz.cs b/server/AyaNova/biz/PurchaseOrderBiz.cs index 1364e342..07e9a3d9 100644 --- a/server/AyaNova/biz/PurchaseOrderBiz.cs +++ b/server/AyaNova/biz/PurchaseOrderBiz.cs @@ -987,6 +987,10 @@ namespace AyaNova.Biz FailedObjectCount++; } } + + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/QuoteBiz.cs b/server/AyaNova/biz/QuoteBiz.cs index a00a846d..d4d5f236 100644 --- a/server/AyaNova/biz/QuoteBiz.cs +++ b/server/AyaNova/biz/QuoteBiz.cs @@ -1038,6 +1038,10 @@ namespace AyaNova.Biz FailedObjectCount++; } } + + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/ReminderBiz.cs b/server/AyaNova/biz/ReminderBiz.cs index 184536ce..084665d2 100644 --- a/server/AyaNova/biz/ReminderBiz.cs +++ b/server/AyaNova/biz/ReminderBiz.cs @@ -425,6 +425,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/ReviewBiz.cs b/server/AyaNova/biz/ReviewBiz.cs index 1aead844..c5e4edc4 100644 --- a/server/AyaNova/biz/ReviewBiz.cs +++ b/server/AyaNova/biz/ReviewBiz.cs @@ -503,6 +503,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/ServiceRateBiz.cs b/server/AyaNova/biz/ServiceRateBiz.cs index e667a60f..2624745c 100644 --- a/server/AyaNova/biz/ServiceRateBiz.cs +++ b/server/AyaNova/biz/ServiceRateBiz.cs @@ -487,6 +487,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/TaskGroupBiz.cs b/server/AyaNova/biz/TaskGroupBiz.cs index cfe58d02..cbcb5c82 100644 --- a/server/AyaNova/biz/TaskGroupBiz.cs +++ b/server/AyaNova/biz/TaskGroupBiz.cs @@ -487,6 +487,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/TaxCodeBiz.cs b/server/AyaNova/biz/TaxCodeBiz.cs index 87e812b1..2679ba5a 100644 --- a/server/AyaNova/biz/TaxCodeBiz.cs +++ b/server/AyaNova/biz/TaxCodeBiz.cs @@ -473,6 +473,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/TravelRateBiz.cs b/server/AyaNova/biz/TravelRateBiz.cs index 35f3120e..a0d2e0ea 100644 --- a/server/AyaNova/biz/TravelRateBiz.cs +++ b/server/AyaNova/biz/TravelRateBiz.cs @@ -482,6 +482,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/UnitBiz.cs b/server/AyaNova/biz/UnitBiz.cs index 6ff94cc9..432e71c3 100644 --- a/server/AyaNova/biz/UnitBiz.cs +++ b/server/AyaNova/biz/UnitBiz.cs @@ -683,6 +683,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/UnitModelBiz.cs b/server/AyaNova/biz/UnitModelBiz.cs index 64f12e4e..457e1977 100644 --- a/server/AyaNova/biz/UnitModelBiz.cs +++ b/server/AyaNova/biz/UnitModelBiz.cs @@ -482,6 +482,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/UserBiz.cs b/server/AyaNova/biz/UserBiz.cs index 81e6e892..cc5d6e55 100644 --- a/server/AyaNova/biz/UserBiz.cs +++ b/server/AyaNova/biz/UserBiz.cs @@ -1296,6 +1296,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/VendorBiz.cs b/server/AyaNova/biz/VendorBiz.cs index e3f33aa5..d05e1b09 100644 --- a/server/AyaNova/biz/VendorBiz.cs +++ b/server/AyaNova/biz/VendorBiz.cs @@ -500,6 +500,9 @@ namespace AyaNova.Biz FailedObjectCount++; } } + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index c0f9e61e..ae748841 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -1257,6 +1257,10 @@ namespace AyaNova.Biz FailedObjectCount++; } } + + //TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS + //delay so we're not tying up all the resources in a tight loop + await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY); } catch (Exception ex) { diff --git a/server/AyaNova/kpi/KPIFetcher.cs b/server/AyaNova/kpi/KPIFetcher.cs index a758fd9a..d00aabd9 100644 --- a/server/AyaNova/kpi/KPIFetcher.cs +++ b/server/AyaNova/kpi/KPIFetcher.cs @@ -11,6 +11,15 @@ namespace AyaNova.KPI { internal static class KPIFetcher { + +#if (AYSHOWKPIQUERYINFO) +#if (DEBUG) +#warning FYI AYSHOWKPIQUERYINFO is defined +#else +#error ### HOLDUP: AYSHOWKPIQUERYINFO is defined in a RELEASE BUILD!!!! +#endif +#endif + //////////////////////////////////////////////// // Get the kpi data requested // diff --git a/server/AyaNova/util/ServerBootConfig.cs b/server/AyaNova/util/ServerBootConfig.cs index ba9982fb..e9db750d 100644 --- a/server/AyaNova/util/ServerBootConfig.cs +++ b/server/AyaNova/util/ServerBootConfig.cs @@ -14,6 +14,8 @@ namespace AyaNova.Util //############################################################################################################ //STATIC HARD CODED COMPILE TIME DEFAULTS NOT SET THROUGH CONFIG internal const int FAILED_AUTH_DELAY = 3000;//ms + internal const int JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY = 75;//ms this delay ensures super big time consuming batch jobs don't use all server CPU resources + //UPLOAD LIMITS 1048576 = 1MiB for testing 10737420000 10737418240 10,737,418,240 internal const long MAX_ATTACHMENT_UPLOAD_BYTES = 10737420000;//slight bit of overage as 10737418241=10GiB