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

direct idxstore

parent 0329586a
#Changelog
## [1.2.4 Dev] - 2021-05-07
## [1.2.4 Dev] - 2021-05-31
### Added
- STORAGE :: Object Cache
### Update
- SS :: Direct Idxstore
## [1.2.3] - 2021-05-05
### Update
- AMQPLib Support Heartbeat Monitoring
......
......@@ -2,13 +2,13 @@ var ctx = require('../context');
var ConnCtx = ctx.getLib('lib/conn/connection-context');
var rpcserver = ctx.getLib('lib/amqp/rpcserver');
var RPCCaller = ctx.getLib('lib/amqp/rpccaller');
var SSServer = ctx.getLib('lib/axon/rpcserver');
var Db = ctx.getLib('storage-service/lib/db');
var WorkerPool = ctx.getLib('storage-service/lib/worker_pool');
var BSSCache = ctx.getLib('storage-service/lib/storage-bsscache');
var StorageIndexstore = ctx.getLib('storage-service/lib/storage-indexstore')
var SSCaller = ctx.getLib('lib/axon/rpccaller');
//var SSServer = ctx.getLib('lib/axon/rpcserver');
//var SSCaller = ctx.getLib('lib/axon/rpccaller');
var Tokenizer = ctx.getLib('lib/auth/tokenizer');
var ACLValidator = ctx.getLib('lib/auth/acl-validator');
......@@ -22,8 +22,8 @@ var bodyParser = require('body-parser');
var EventPub = ctx.getLib('lib/amqp/event-pub');
//var cfg = ctx.config;
var SS_LISTEN = ctx.getUnixSocketUrl('ss.sock');
var SS_URL = ctx.getUnixSocketUrl('ss.sock');
// var SS_LISTEN = ctx.getUnixSocketUrl('ss.sock');
// var SS_URL = ctx.getUnixSocketUrl('ss.sock');
// var SS_LISTEN = ctx.getServiceUrl(19030);
// var SS_URL = ctx.getClientUrl(19030);
......@@ -102,39 +102,39 @@ SS.prototype.amqp_start = function()
}
SS.prototype.ipc_start = function()
{
var self = this;
if(this.ipc_server){return;}
this.ipc_server = new SSServer({
url : SS_LISTEN,
name : 'storage_request'
});
this.ipc_server.set_remote_function(function(req,callback){
//console.log("IPC Command");
self.db.request(req,function(err,res){
if(err){
console.log(err);
}
callback(err,res);
});
});
this.ipc_server.start(function(err){
if(!err){
console.log('SS:IPC START\t\t\t[OK]');
}else{
console.log('SS:IPC START\t\t\t[ERR]');
console.log('SS:IPC ERROR Restarting ...');
setTimeout(function(){
process.exit(1);
},5000);
}
});
}
// SS.prototype.ipc_start = function()
// {
// var self = this;
// if(this.ipc_server){return;}
// this.ipc_server = new SSServer({
// url : SS_LISTEN,
// name : 'storage_request'
// });
// this.ipc_server.set_remote_function(function(req,callback){
// //console.log("IPC Command");
// self.db.request(req,function(err,res){
// if(err){
// console.log(err);
// }
// callback(err,res);
// });
// });
// this.ipc_server.start(function(err){
// if(!err){
// console.log('SS:IPC START\t\t\t[OK]');
// }else{
// console.log('SS:IPC START\t\t\t[ERR]');
// console.log('SS:IPC ERROR Restarting ...');
// setTimeout(function(){
// process.exit(1);
// },5000);
// }
// });
// }
SS.prototype.http_start = function()
{
......@@ -157,6 +157,7 @@ SS.prototype.http_start = function()
});
this.bsscache = BSSCache.create()
this.idxstore = new StorageIndexstore({'mem':self.mem });
this.acl_validator = ACLValidator.create(auth_cfg);
this.worker_pool.initWorker();
......@@ -164,7 +165,8 @@ SS.prototype.http_start = function()
'acl_validator':self.acl_validator,
'worker_pool' : self.worker_pool,
'storagecaller':self.storagecaller,
'bsscache':self.bsscache
'bsscache':self.bsscache,
'idxstore':self.idxstore
}));
var tokenizer = Tokenizer.create(auth_cfg);
......
......@@ -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}
if(!oid)
......@@ -82,19 +82,12 @@ function oid_parse(oid,caller,cb)
if(ret.key.length<=0){
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){
if(!err && resp.status=='OK' && resp.resp.found){
//direct idxstore
idxstore.getIndex(ret.storage_name,ret.key,(err,val)=>{
if(!err && val){
ret.by = "obj";
ret.obj_id = resp.resp.object_id;
ret.obj_id = val;
ret.seq = (new ObjId(ret.obj_id)).extract().seq;
cb(null,ret);
}else{
......@@ -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(']')){
ret.by = "seq";
var str_num = str_addr.substr(1,str_addr.length-2);
......@@ -139,10 +152,11 @@ function get_object(reqHelper,respHelper,prm)
var oid = prm.oid;
var opt = prm.opt || {};
var storagecaller = reqHelper.request.context.storagecaller;
//var storagecaller = reqHelper.request.context.storagecaller;
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){
respHelper.response404();
......
{
"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