From 5bf3a60e651a8f29933b18b7e82772dda56de20c Mon Sep 17 00:00:00 2001 From: amigin Date: Mon, 20 Jun 2022 12:46:22 +0300 Subject: [PATCH] Fixed Bug with infinite loop on init --- JavaScript/HtmlMain.js | 4 +++- JavaScript/HtmlMain.js.map | 2 +- JavaScript/main.js.map | 2 +- README.md | 3 ++- TypeScript/HtmlMain.ts | 4 +++- TypeScript/contracts.d.ts | 1 + TypeScript/main.ts | 2 -- .../status_controller/non_initialized/model.rs | 3 +++ .../load_table/load_table_files.rs | 2 +- .../data_initializer/load_tables.rs | 3 ++- .../data_initializer/load_tasks/init_state.rs | 5 +++++ .../load_tasks/init_state_data.rs | 17 ++++++++++++++++- .../load_tasks/init_state_snapshot.rs | 1 + .../table_list_of_files_loader.rs | 2 ++ wwwroot/js/app.js | 2 +- 15 files changed, 42 insertions(+), 11 deletions(-) diff --git a/JavaScript/HtmlMain.js b/JavaScript/HtmlMain.js index ecd877a..16ae922 100644 --- a/JavaScript/HtmlMain.js +++ b/JavaScript/HtmlMain.js @@ -7,7 +7,9 @@ var HtmlMain = /** @class */ (function () { + HtmlDialog.layout(); }; HtmlMain.generateInit = function (model) { - var result = '

Remains tables to load: ' + model.tablesRemains + '

Total loading time is: ' + this.formatSeconds(model.initializingSeconds) + '

' + + var result = '

Remains tables to load: ' + model.tablesRemains + '

' + + '

Table which files are being loaded: ' + model.tableBeingLoadedFiles + '

' + + '

Total loading time is: ' + this.formatSeconds(model.initializingSeconds) + '

' + ''; for (var _i = 0, _a = model.progress.sort(function (a, b) { return a.tableName > b.tableName ? 1 : -1; }); _i < _a.length; _i++) { var itm = _a[_i]; diff --git a/JavaScript/HtmlMain.js.map b/JavaScript/HtmlMain.js.map index 011eb95..a1e8e16 100644 --- a/JavaScript/HtmlMain.js.map +++ b/JavaScript/HtmlMain.js.map @@ -1 +1 @@ -{"version":3,"file":"HtmlMain.js","sourceRoot":"","sources":["../TypeScript/HtmlMain.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"HtmlMain.js","sourceRoot":"","sources":["../TypeScript/HtmlMain.ts"],"names":[],"mappings":"AAAA;IAAA;IAoFA,CAAC;IAlFiB,eAAM,GAApB;QACI,OAAO,uBAAuB;YAC1B,aAAa,CAAC,MAAM,EAAE;cACpB,UAAU,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAGa,qBAAY,GAA1B,UAA2B,KAA2B;QAElD,IAAI,MAAM,GAAG,8BAA8B,GAAG,KAAK,CAAC,aAAa,GAAG,OAAO;YACvE,0CAA0C,GAAG,KAAK,CAAC,qBAAqB,GAAG,OAAO;YAClF,6BAA6B,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,OAAO;YACvF,4KAA4K,CAAA;QAEhL,KAAgB,UAAiE,EAAjE,KAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC,CAAC,EAAjE,cAAiE,EAAjE,IAAiE,EAAE;YAA9E,IAAI,GAAG,SAAA;YACR,MAAM,IAAI,4BAA4B,GAAG,GAAG,CAAC,SAAS,GAAG,WAAW,GAAG,GAAG,CAAC,MAAM,GAAG,WAAW,GAAG,GAAG,CAAC,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,YAAY,CAAA;SAC3N;QAED,OAAO,MAAM,GAAG,UAAU,CAAC;IAE/B,CAAC;IAEM,uBAAc,GAArB,UAAsB,QAA4B;QAE9C,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9C,OAAO,SAAS,CAAA;SACnB;QAGD,IAAI,aAAa,GAAG,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE3D,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;QAElE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvC,CAAC;IAGa,qBAAY,GAA1B,UAA2B,KAAa;QACpC,IAAI,KAAK,GAAG,EAAE,EAAE;YACZ,OAAO,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACjC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAEa,cAAK,GAAnB,UAAoB,KAAa;QAE7B,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE9B,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,GAAG,GAAG,CAAC,EAAE;YACT,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAE7C,CAAC;IAGa,sBAAa,GAA3B,UAA4B,OAAe;QAEvC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;YACnC,OAAO,IAAI,KAAK,GAAG,IAAI,CAAC;SAC3B;QAED,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,IAAI,OAAO,IAAI,EAAE,EAAE;YACf,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;YAChC,OAAO,IAAI,IAAI,GAAG,EAAE,CAAC;SACxB;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvG,CAAC;IAGL,eAAC;AAAD,CAAC,AApFD,IAoFC"} \ No newline at end of file diff --git a/JavaScript/main.js.map b/JavaScript/main.js.map index 9f37e43..109c7ec 100644 --- a/JavaScript/main.js.map +++ b/JavaScript/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","sourceRoot":"","sources":["../TypeScript/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"main.js","sourceRoot":"","sources":["../TypeScript/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/README.md b/README.md index 55cc210..7798510 100644 --- a/README.md +++ b/README.md @@ -12,4 +12,5 @@ * Added settings parameter ### 0.0.20-rc01 -* Sync to Readers now works in separated thread \ No newline at end of file +* Sync to Readers now works in a separate thread +* Exposed sync to readers bytes to Prometheus reader by reader \ No newline at end of file diff --git a/TypeScript/HtmlMain.ts b/TypeScript/HtmlMain.ts index 759a519..c7e3207 100644 --- a/TypeScript/HtmlMain.ts +++ b/TypeScript/HtmlMain.ts @@ -9,7 +9,9 @@ class HtmlMain { public static generateInit(model: INonInitializedModel): string { - var result = '

Remains tables to load: ' + model.tablesRemains + '

Total loading time is: ' + this.formatSeconds(model.initializingSeconds) + '

' + + var result = '

Remains tables to load: ' + model.tablesRemains + '

' + + '

Table which files are being loaded: ' + model.tableBeingLoadedFiles + '

' + + '

Total loading time is: ' + this.formatSeconds(model.initializingSeconds) + '

' + '
TableNamePartitions loadedPartitions totalTime goneTime estimation
' for (let itm of model.progress.sort((a, b) => a.tableName > b.tableName ? 1 : -1)) { diff --git a/TypeScript/contracts.d.ts b/TypeScript/contracts.d.ts index a78b3af..6e6ec14 100644 --- a/TypeScript/contracts.d.ts +++ b/TypeScript/contracts.d.ts @@ -26,6 +26,7 @@ interface INonInitializedModel { tablesRemains: number, initializingSeconds: number, progress: ITableLoadProgress[] + tableBeingLoadedFiles: String } diff --git a/TypeScript/main.ts b/TypeScript/main.ts index d56e80c..3b01853 100644 --- a/TypeScript/main.ts +++ b/TypeScript/main.ts @@ -69,8 +69,6 @@ class main { this.layoutElement.innerHTML = HtmlMain.generateInit(result.notInitialized); } - - HtmlStatusBar.updateStatusbar(result.statusBar); }).fail(() => { diff --git a/src/http/controllers/status_controller/non_initialized/model.rs b/src/http/controllers/status_controller/non_initialized/model.rs index 7950738..60d8827 100644 --- a/src/http/controllers/status_controller/non_initialized/model.rs +++ b/src/http/controllers/status_controller/non_initialized/model.rs @@ -12,6 +12,8 @@ pub struct NonInitializedModel { #[serde(rename = "initializingSeconds")] initializing_seconds: i64, progress: Vec, + #[serde(rename = "tableBeingLoadedFiles")] + table_being_loaded_files: Option, } impl NonInitializedModel { @@ -30,6 +32,7 @@ impl NonInitializedModel { progress, tables_remains: snapshot.to_load.len(), initializing_seconds: now.seconds_before(app.created), + table_being_loaded_files: snapshot.table_being_loaded_files, }; } } diff --git a/src/persist_operations/data_initializer/load_table/load_table_files.rs b/src/persist_operations/data_initializer/load_table/load_table_files.rs index 88f61c4..7f78044 100644 --- a/src/persist_operations/data_initializer/load_table/load_table_files.rs +++ b/src/persist_operations/data_initializer/load_table/load_table_files.rs @@ -48,7 +48,7 @@ async fn load_table_files_loop( .await; } PartitionToLoad::EndOfReading => { - break; + return; } }, None => { diff --git a/src/persist_operations/data_initializer/load_tables.rs b/src/persist_operations/data_initializer/load_tables.rs index f36b413..730d785 100644 --- a/src/persist_operations/data_initializer/load_tables.rs +++ b/src/persist_operations/data_initializer/load_tables.rs @@ -59,7 +59,8 @@ async fn load_tables_spawned(app: Arc) { ); } super::load_tasks::ProcessTableToLoad::NotReadyYet => { - tokio::time::sleep(Duration::from_millis(100)).await; + println!("We do not have table to load yet"); + tokio::time::sleep(Duration::from_millis(1000)).await; } super::load_tasks::ProcessTableToLoad::TheEnd => { return; diff --git a/src/persist_operations/data_initializer/load_tasks/init_state.rs b/src/persist_operations/data_initializer/load_tasks/init_state.rs index bd7a1a7..585cd3c 100644 --- a/src/persist_operations/data_initializer/load_tasks/init_state.rs +++ b/src/persist_operations/data_initializer/load_tasks/init_state.rs @@ -34,6 +34,11 @@ impl InitState { write_access.get_next_table_to_init_files() } + pub async fn loading_files_for_tables_is_done(&self) { + let mut write_access = self.data.lock().await; + write_access.loading_files_for_tables_is_done(); + } + pub async fn get_next_table_to_load(&self) -> ProcessTableToLoad { let mut write_access = self.data.lock().await; write_access.get_next_table_to_load() diff --git a/src/persist_operations/data_initializer/load_tasks/init_state_data.rs b/src/persist_operations/data_initializer/load_tasks/init_state_data.rs index 0d0ac33..686acf9 100644 --- a/src/persist_operations/data_initializer/load_tasks/init_state_data.rs +++ b/src/persist_operations/data_initializer/load_tasks/init_state_data.rs @@ -11,6 +11,7 @@ pub enum ProcessTableToLoad { } pub struct InitStateData { + pub table_being_loaded_files: Option, pub tables_to_init_files: Vec>, pub tables_to_load: Vec, pub tables_being_loaded: Vec>, @@ -24,6 +25,7 @@ impl InitStateData { tables_to_load: Vec::new(), tables_being_loaded: Vec::new(), tables_loaded: Vec::new(), + table_being_loaded_files: None, } } @@ -34,6 +36,7 @@ impl InitStateData { } let result = self.tables_to_init_files.remove(0); + self.table_being_loaded_files = Some(result.table_name.to_string()); self.tables_to_load .push(ProcessTableToLoad::Process(result.clone())); @@ -41,6 +44,10 @@ impl InitStateData { Some(result) } + pub fn loading_files_for_tables_is_done(&mut self) { + self.table_being_loaded_files = None; + } + pub fn init_tables(&mut self, tables: Vec, logs: &Logs) { for table_name in tables { if let Err(err) = validation::validate_table_name(table_name.as_str()) { @@ -66,7 +73,14 @@ impl InitStateData { if self.tables_to_load.len() > 0 { self.tables_to_load.remove(0) } else { - ProcessTableToLoad::NotReadyYet + if self.tables_being_loaded.len() == 0 + && self.tables_to_load.len() == 0 + && self.tables_to_init_files.len() == 0 + { + ProcessTableToLoad::TheEnd + } else { + ProcessTableToLoad::NotReadyYet + } } }; @@ -101,6 +115,7 @@ impl InitStateData { to_load: convert_to_tables_snapshot_2(&self.tables_to_load), loading: convert_to_tables_snapshot(&self.tables_being_loaded), loaded: convert_to_tables_snapshot(&self.tables_loaded), + table_being_loaded_files: self.table_being_loaded_files.clone(), } } diff --git a/src/persist_operations/data_initializer/load_tasks/init_state_snapshot.rs b/src/persist_operations/data_initializer/load_tasks/init_state_snapshot.rs index 3a8607d..3cbac96 100644 --- a/src/persist_operations/data_initializer/load_tasks/init_state_snapshot.rs +++ b/src/persist_operations/data_initializer/load_tasks/init_state_snapshot.rs @@ -12,4 +12,5 @@ pub struct InitStateSnapshot { pub to_load: Vec, pub loading: Vec, pub loaded: Vec, + pub table_being_loaded_files: Option, } diff --git a/src/persist_operations/data_initializer/table_list_of_files_loader.rs b/src/persist_operations/data_initializer/table_list_of_files_loader.rs index 6593b39..be7114f 100644 --- a/src/persist_operations/data_initializer/table_list_of_files_loader.rs +++ b/src/persist_operations/data_initializer/table_list_of_files_loader.rs @@ -6,4 +6,6 @@ pub async fn table_list_of_files_loader(app: Arc) { while let Some(table_to_load) = app.init_state.get_next_table_to_init_files().await { app.persist_io.get_table_files(&table_to_load).await; } + + app.init_state.loading_files_for_tables_is_done().await; } diff --git a/wwwroot/js/app.js b/wwwroot/js/app.js index 24ffaf2..cd22a5b 100644 --- a/wwwroot/js/app.js +++ b/wwwroot/js/app.js @@ -8,7 +8,7 @@ eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('1k l=(n(){n l(){}l.1j=n(){y\'<3 6="1i-1h">\'+\'

\'+\'<1 4="1g-1f: 1e">Q: \'+\'<1><3 g="f-e">\'+\'<1>1d: \'+\'<1><3 g="f-e">\'+\'<1>1c: \'+\'<1><3 g="f-e">\'+\'<1>1b: \'+\'<1><3 g="f-e">\'+\'<1>1a: \'+\'<1><3 g="f-e">\'+\'<1>19: \'+\'<1><3 g="f-e">\'+\'<1>18 p: \'+\'<1><3 g="f-e">\'+\'<1>17 p: \'+\'<1><3 g="f-e">\'+\'<1>Q 16 C B: \'+\'<1><3 g="f-e">\'+\'

\'};l.14=n(5){a(2.v!=5.v){2.v=5.v;9.8(\'N-M\').c=2.v.w()}a(!2.m){2.m=13;9.8(\'m\').c=\'<7 4="o: A">12\'}a(2.d!=5.d.6){9.8(\'d\').c=5.d.6;2.d=5.d.6}a(2.u!=5.d.L){2.u=5.d.L;9.8(\'u\').c=2.u?\'<7 4="o: A">11\':\'<7 4="o: K">10\'}a(2.q!=5.q){2.q=5.q;9.8(\'C-B\').c=2.q?\'<7 4="o: A">\'+2.q+\'\':\'<7 4="o: K">---\'}a(2.t!=5.t){2.t=5.t;9.8(\'J-x\').c=2.t.w()}a(2.s!=5.s){2.s=5.s;9.8(\'I-x\').c=2.s.w()}a(2.r!=5.r){2.r=5.r;9.8(\'H-p\').c=2.r.w()}};l.Z=n(E){a(!2.z){2.z=Y X(9.8(\'G-p-F\'))}2.z.W(E,n(D){y D.V(0)})};l.U=n(){a(2.m){2.m=T;9.8(\'m\').c=\'<7 4="o: S">R\'}};y l}());',62,83,'|td|this|div|style|data|id|span|getElementById|document|if||innerHTML|location|separator|statusbar|class|white|shadow|text|2px|HtmlStatusBar|connected|function|color|queue|masterNode|persistAmount|httpConnections|tcpConnections|compression|tablesAmount|toString|connections|return|syncQueueSize|green|node|master|value|queueSize|size|sync|persist|http|tcp|gray|compress|amount|tables|table|tr|Connected|offline|red|false|updateOffline|toFixed|update|HtmlStaticElement|new|updateQueueSize|disabled|enabled|yes|true|updateStatusbar|1px|to|Sync|Persist|Http|Tcp|Compression|Tables|Location|5px|left|padding|bar|status|layout|var'.split('|'),0,{})) -eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 8=(9(){9 8(){}8.A=9(){3\'\'+1d.A()+1c.A()};8.1b=9(t){5 e=\'1a 19 18 17: \'+t.16+\'15 14 13 12: \'+4.o(t.11)+\'\'+\'<7>W<7>G i<7>G V<7>F U<7>F T\';S(5 s=0,z=t.d.R(9(a,b){3 a.y>b.y?1:-1});s<6 P="O:N%">\'+g.y+\'<6>\'+g.i+\'<6>\'+g.x+"<6>"+4.o(g.D)+"<6>"+4.E(g)+""}3 e+""};8.E=9(d){h(d.x==0||d.i==0){3"M"}5 C=d.D/d.i;5 q=(d.x-d.i)*C;q=4.n(q);3 4.o(q)};8.k=9(f){h(f<10){3"0"+f.w(0)}3 f.w(0)};8.n=9(f){5 e=f.w(2);5 p=e.B(\'.\');h(p<0){p=e.B(\',\')}3 L(e.K(0,p))};8.o=9(c){5 m=0;h(c>=v){m=4.n(c/v);c-=m*v}5 l=0;h(c>=u){l=4.n(c/u);c-=l*u}3 4.k(m)+":"+4.k(l)+":"+4.k(c)};3 8}());',62,78,'|||return|this|var|td|th|HtmlMain|function|||seconds|progress|result|value|itm|if|loaded|table|formatSecMin|mins|hours|trunc|formatSeconds|pos|remains|tr|_i|model|60|3600|toFixed|toLoad|tableName|_a|layout|indexOf|pieceDuration|secondsGone|getInitRemains|Time|Partitions|h2|h1|div|substring|parseInt|Unknown|50|width|style|length|sort|for|estimation|gone|total|TableName|bordered|striped|class||initializingSeconds|is|time|loading|Total|tablesRemains|load|to|tables|Remains|generateInit|HtmlDialog|HtmlStatusBar|main|id'.split('|'),0,{})) +eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 8=(9(){9 8(){}8.B=9(){3\'\'+1j.B()+1i.B()};8.1h=9(k){5 e=\'1g 1f 1e 1d: \'+k.1c+\'\'+\'1b 1a 19 18 17 g: \'+k.16+\'\'+\'15 14 13 12: \'+4.p(k.11)+\'\'+\'<7>W<7>H g<7>H V<7>G U<7>G T\';S(5 t=0,A=k.d.R(9(a,b){3 a.z>b.z?1:-1});t<6 P="O:N%">\'+h.z+\'<6>\'+h.g+\'<6>\'+h.y+"<6>"+4.p(h.E)+"<6>"+4.F(h)+""}3 e+""};8.F=9(d){i(d.y==0||d.g==0){3"M"}5 D=d.E/d.g;5 r=(d.y-d.g)*D;r=4.o(r);3 4.p(r)};8.l=9(f){i(f<10){3"0"+f.x(0)}3 f.x(0)};8.o=9(f){5 e=f.x(2);5 q=e.C(\'.\');i(q<0){q=e.C(\',\')}3 L(e.K(0,q))};8.p=9(c){5 n=0;i(c>=w){n=4.o(c/w);c-=n*w}5 m=0;i(c>=v){m=4.o(c/v);c-=m*v}3 4.l(n)+":"+4.l(m)+":"+4.l(c)};3 8}());',62,84,'|||return|this|var|td|th|HtmlMain|function|||seconds|progress|result|value|loaded|itm|if|table|model|formatSecMin|mins|hours|trunc|formatSeconds|pos|remains|tr|_i|h2|60|3600|toFixed|toLoad|tableName|_a|layout|indexOf|pieceDuration|secondsGone|getInitRemains|Time|Partitions|h1|div|substring|parseInt|Unknown|50|width|style|length|sort|for|estimation|gone|total|TableName|bordered|striped|class||initializingSeconds|is|time|loading|Total|tableBeingLoadedFiles|being|are|files|which|Table|tablesRemains|load|to|tables|Remains|generateInit|HtmlDialog|HtmlStatusBar|main|id'.split('|'),0,{})) eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 g=(d(){d g(){}g.21=d(f){e\'V 20\'+q.W(f.1Z)+\'1Y\'+q.18(f.1X)+\'1W\'+q.17(f.p)};g.18=d(f){5 c="<4 r=\\"4 4-y\\"><9><3>1V<3>1U<3>1T<3>p<3>";m(5 6=0,N=f;6<2>\'+7.1S+\'<2>\'+q.U(7.j)+\'<2>\'+7.1R+\'<2>\'+q.Q(7.p)+\'\'+\'<2 h="11-1Q: 1P">\'+\'<8>C:\'+7.1O+\'\'+\'<8>L:\'+7.1N+\'\'+\'<8>S:\'+7.1M+\'\'+\'\'}c+=\'\';e c};g.17=d(p){5 c="<4 r=\\"4 4-y\\"><9><3>1L<3>1K<3>Z<3>Y<3>B<3>X B<3>1J 1I";5 E=0;5 D=0;5 A=0;5 z=0;m(5 6=0,M=p.1H(d(a,b){e a.j>b.j?1:-1});6<2>\'+4.j+\'<2>\'+4.1C+\'<2>\'+4.15+\'<2>\'+4.14+\'<2>\'+4.13+\'<2>\'+4.12+\'\'+\'<2\'+h+\'><8>1B: \'+t.F()+\'<8>1A: \'+s.F()+\'\'+\'<8>1z: \'+o+\'\'+1y.1x(4.1w,d(v){e 1v.1u(v)},d(v){e v},d(v){e 1t})+\'\';E+=4.15;D+=4.14;A+=4.13;z+=4.12}c+=\'<9 h="11-1s: 1r; 10-n:1q; n:1p;"><2>1o<2><2>Z: \'+E+\'<2>Y: \'+D+\'<2>B: \'+A+\'<2>X 1n: \'+z+\'\'+\'<2>\';c+=\'\';e c};g.W=d(f){5 c="<4 r=\\"4 4-y\\"><9><3>1m<3>V<3>1l<3>1k<3>1j";m(5 6=0,x=f;6<2>\'+7.1i+\'<2>\'+7.1h+\'<2>\'+7.1g+\'<2>\'+7.1f+\'<2>\'+7.1e+\'\'}c+=\'\';e c};g.U=d(j){5 T=j.1d(\';\');5 i="";m(5 6=0,w=T;6"+R+""}e i};g.Q=d(f){5 i="";m(5 6=0,u=f;6\'+7+\'\'}e i};e g}());',62,126,'||td|th|table|var|_i|itm|div|tr|||html|function|return|data|HtmlSubscribersGenerator|style|result|name|h3|length|for|color|nextPersistTime|tables|this|class|lastPersistTime|lastUpdateTime|data_3||lines_1|data_2|striped|total_indexed_records|total_records|Records||total_partitions|total_size|toISOString|lineColor|if|1000|Date|new||_a|data_1|span|badge|renderTables|line||lines|renderName|Connected|generateNodesHtml|Indexed|Partitions|DataSize|background|font|expirationIndex|recordsAmount|partitionsCount|dataSize|as_time|generateTablesHtml|generateReadersHtml|5px|left|margin|info|split|latency|compress|lastAccessed|connected|location|Latency|Compress|LastAccess|Location|records|Total|white|black|bold|weight|false|format_duration|Utils|lastPersistDuration|renderGraph|HtmlGraph|NextPersist|PersistTime|UpdateTime|persistAmount|8bc34a4f|hasCommonThread|red|green|sort|update|Last|Persist|Table|pendingToSend|lastIncomingTime|connectedTime|10px|size|ip|id|Ip|Client|Id|Tables|readers|Readers|nodes|Nodes|generateHtml'.split('|'),0,{}))
TableNamePartitions loadedPartitions totalTime goneTime estimation