Commit 6ef77b5f authored by Kamron Aroonrua's avatar Kamron Aroonrua 💬

direct idxstore

parent 0329586a
#Changelog #Changelog
## [1.2.4 Dev] - 2021-05-07 ## [1.2.4 Dev] - 2021-05-31
### Added ### Added
- STORAGE :: Object Cache - STORAGE :: Object Cache
### Update
- SS :: Direct Idxstore
## [1.2.3] - 2021-05-05 ## [1.2.3] - 2021-05-05
### Update ### Update
- AMQPLib Support Heartbeat Monitoring - AMQPLib Support Heartbeat Monitoring
......
...@@ -2,13 +2,13 @@ var ctx = require('../context'); ...@@ -2,13 +2,13 @@ var ctx = require('../context');
var ConnCtx = ctx.getLib('lib/conn/connection-context'); var ConnCtx = ctx.getLib('lib/conn/connection-context');
var rpcserver = ctx.getLib('lib/amqp/rpcserver'); var rpcserver = ctx.getLib('lib/amqp/rpcserver');
var RPCCaller = ctx.getLib('lib/amqp/rpccaller'); var RPCCaller = ctx.getLib('lib/amqp/rpccaller');
var SSServer = ctx.getLib('lib/axon/rpcserver');
var Db = ctx.getLib('storage-service/lib/db'); var Db = ctx.getLib('storage-service/lib/db');
var WorkerPool = ctx.getLib('storage-service/lib/worker_pool'); var WorkerPool = ctx.getLib('storage-service/lib/worker_pool');
var BSSCache = ctx.getLib('storage-service/lib/storage-bsscache'); var BSSCache = ctx.getLib('storage-service/lib/storage-bsscache');
var StorageIndexstore = ctx.getLib('storage-service/lib/storage-indexstore')
//var SSServer = ctx.getLib('lib/axon/rpcserver');
var SSCaller = ctx.getLib('lib/axon/rpccaller'); //var SSCaller = ctx.getLib('lib/axon/rpccaller');
var Tokenizer = ctx.getLib('lib/auth/tokenizer'); var Tokenizer = ctx.getLib('lib/auth/tokenizer');
var ACLValidator = ctx.getLib('lib/auth/acl-validator'); var ACLValidator = ctx.getLib('lib/auth/acl-validator');
...@@ -22,8 +22,8 @@ var bodyParser = require('body-parser'); ...@@ -22,8 +22,8 @@ var bodyParser = require('body-parser');
var EventPub = ctx.getLib('lib/amqp/event-pub'); var EventPub = ctx.getLib('lib/amqp/event-pub');
//var cfg = ctx.config; //var cfg = ctx.config;
var SS_LISTEN = ctx.getUnixSocketUrl('ss.sock'); // var SS_LISTEN = ctx.getUnixSocketUrl('ss.sock');
var SS_URL = ctx.getUnixSocketUrl('ss.sock'); // var SS_URL = ctx.getUnixSocketUrl('ss.sock');
// var SS_LISTEN = ctx.getServiceUrl(19030); // var SS_LISTEN = ctx.getServiceUrl(19030);
// var SS_URL = ctx.getClientUrl(19030); // var SS_URL = ctx.getClientUrl(19030);
...@@ -102,39 +102,39 @@ SS.prototype.amqp_start = function() ...@@ -102,39 +102,39 @@ SS.prototype.amqp_start = function()
} }
SS.prototype.ipc_start = function() // SS.prototype.ipc_start = function()
{ // {
var self = this; // var self = this;
if(this.ipc_server){return;} // if(this.ipc_server){return;}
this.ipc_server = new SSServer({ // this.ipc_server = new SSServer({
url : SS_LISTEN, // url : SS_LISTEN,
name : 'storage_request' // name : 'storage_request'
}); // });
this.ipc_server.set_remote_function(function(req,callback){ // this.ipc_server.set_remote_function(function(req,callback){
//console.log("IPC Command"); // //console.log("IPC Command");
self.db.request(req,function(err,res){ // self.db.request(req,function(err,res){
if(err){ // if(err){
console.log(err); // console.log(err);
} // }
callback(err,res); // callback(err,res);
}); // });
}); // });
this.ipc_server.start(function(err){ // this.ipc_server.start(function(err){
if(!err){ // if(!err){
console.log('SS:IPC START\t\t\t[OK]'); // console.log('SS:IPC START\t\t\t[OK]');
}else{ // }else{
console.log('SS:IPC START\t\t\t[ERR]'); // console.log('SS:IPC START\t\t\t[ERR]');
console.log('SS:IPC ERROR Restarting ...'); // console.log('SS:IPC ERROR Restarting ...');
setTimeout(function(){ // setTimeout(function(){
process.exit(1); // process.exit(1);
},5000); // },5000);
} // }
}); // });
} // }
SS.prototype.http_start = function() SS.prototype.http_start = function()
{ {
...@@ -157,6 +157,7 @@ SS.prototype.http_start = function() ...@@ -157,6 +157,7 @@ SS.prototype.http_start = function()
}); });
this.bsscache = BSSCache.create() this.bsscache = BSSCache.create()
this.idxstore = new StorageIndexstore({'mem':self.mem });
this.acl_validator = ACLValidator.create(auth_cfg); this.acl_validator = ACLValidator.create(auth_cfg);
this.worker_pool.initWorker(); this.worker_pool.initWorker();
...@@ -164,7 +165,8 @@ SS.prototype.http_start = function() ...@@ -164,7 +165,8 @@ SS.prototype.http_start = function()
'acl_validator':self.acl_validator, 'acl_validator':self.acl_validator,
'worker_pool' : self.worker_pool, 'worker_pool' : self.worker_pool,
'storagecaller':self.storagecaller, 'storagecaller':self.storagecaller,
'bsscache':self.bsscache 'bsscache':self.bsscache,
'idxstore':self.idxstore
})); }));
var tokenizer = Tokenizer.create(auth_cfg); var tokenizer = Tokenizer.create(auth_cfg);
......
...@@ -58,7 +58,7 @@ router.get('/:id/file',function (req, res) { ...@@ -58,7 +58,7 @@ router.get('/:id/file',function (req, res) {
}); });
function oid_parse(oid,caller,cb) function oid_parse(oid,idxstore,cb)
{ {
var ret = {'valid':true} var ret = {'valid':true}
if(!oid) if(!oid)
...@@ -82,19 +82,12 @@ function oid_parse(oid,caller,cb) ...@@ -82,19 +82,12 @@ function oid_parse(oid,caller,cb)
if(ret.key.length<=0){ if(ret.key.length<=0){
return cb(null,{'valid':false}); return cb(null,{'valid':false});
} }
var callreq = {
'object_type' : 'storage_request',
'command' : 'idxget',
'param' : {
'storage_name' : ret.storage_name,
'key' : ret.key
}
}
caller.call(callreq,function(err,resp){ //direct idxstore
if(!err && resp.status=='OK' && resp.resp.found){ idxstore.getIndex(ret.storage_name,ret.key,(err,val)=>{
if(!err && val){
ret.by = "obj"; ret.by = "obj";
ret.obj_id = resp.resp.object_id; ret.obj_id = val;
ret.seq = (new ObjId(ret.obj_id)).extract().seq; ret.seq = (new ObjId(ret.obj_id)).extract().seq;
cb(null,ret); cb(null,ret);
}else{ }else{
...@@ -102,6 +95,26 @@ function oid_parse(oid,caller,cb) ...@@ -102,6 +95,26 @@ function oid_parse(oid,caller,cb)
} }
}); });
// var callreq = {
// 'object_type' : 'storage_request',
// 'command' : 'idxget',
// 'param' : {
// 'storage_name' : ret.storage_name,
// 'key' : ret.key
// }
// }
// caller.call(callreq,function(err,resp){
// if(!err && resp.status=='OK' && resp.resp.found){
// ret.by = "obj";
// ret.obj_id = resp.resp.object_id;
// ret.seq = (new ObjId(ret.obj_id)).extract().seq;
// cb(null,ret);
// }else{
// cb(null,{'valid':false});
// }
// });
}else if(str_addr.startsWith('[') && str_addr.endsWith(']')){ }else if(str_addr.startsWith('[') && str_addr.endsWith(']')){
ret.by = "seq"; ret.by = "seq";
var str_num = str_addr.substr(1,str_addr.length-2); var str_num = str_addr.substr(1,str_addr.length-2);
...@@ -139,10 +152,11 @@ function get_object(reqHelper,respHelper,prm) ...@@ -139,10 +152,11 @@ function get_object(reqHelper,respHelper,prm)
var oid = prm.oid; var oid = prm.oid;
var opt = prm.opt || {}; var opt = prm.opt || {};
var storagecaller = reqHelper.request.context.storagecaller; //var storagecaller = reqHelper.request.context.storagecaller;
var bsscache = reqHelper.request.context.bsscache; var bsscache = reqHelper.request.context.bsscache;
var idxstore = reqHelper.request.context.idxstore;
oid_parse(oid,storagecaller,(err,oid_result)=>{ oid_parse(oid,idxstore,(err,oid_result)=>{
if(!oid_result.valid){ if(!oid_result.valid){
respHelper.response404(); respHelper.response404();
......
{ {
"version":"1.2.4", "version":"1.2.4",
"build":"202105070000" "build":"202105310000"
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment