Browse Source

handle the retrievalAddRocksDB;

tags/1.1.0
zhaoguangwei 5 years ago
parent
commit
c7c6d45000
7 changed files with 69 additions and 8 deletions
  1. +4
    -0
      source/manager/manager-model/src/main/java/com/jd/blockchain/ump/dao/DBConnection.java
  2. +11
    -0
      source/manager/manager-model/src/main/java/com/jd/blockchain/ump/dao/MemoryDBConnection.java
  3. +26
    -0
      source/manager/manager-model/src/main/java/com/jd/blockchain/ump/dao/RocksDBConnection.java
  4. +10
    -0
      source/manager/manager-model/src/main/java/com/jd/blockchain/ump/dao/UmpDaoHandler.java
  5. +1
    -1
      source/manager/manager-service/src/main/java/com/jd/blockchain/ump/service/DataAccountUmpService.java
  6. +15
    -5
      source/manager/manager-service/src/main/java/com/jd/blockchain/ump/service/DataAccountUmpServiceImpl.java
  7. +2
    -2
      source/manager/manager-web/src/main/java/com/jd/blockchain/ump/controller/RetrievalController.java

+ 4
- 0
source/manager/manager-model/src/main/java/com/jd/blockchain/ump/dao/DBConnection.java View File

@@ -12,5 +12,9 @@ public interface DBConnection {

String get(String key);

<T> T get(String key, Class<T> type);

void delete(String key);

boolean exist(String dbUrl);
}

+ 11
- 0
source/manager/manager-model/src/main/java/com/jd/blockchain/ump/dao/MemoryDBConnection.java View File

@@ -44,4 +44,15 @@ public class MemoryDBConnection implements DBConnection {
}
return false;
}

@Override
public <T> T get(String key, Class<T> type) {
String record = memory.get(key);
return JSON.parseObject(record,type);
}

@Override
public void delete(String key) {
memory.remove(key);
}
}

+ 26
- 0
source/manager/manager-model/src/main/java/com/jd/blockchain/ump/dao/RocksDBConnection.java View File

@@ -73,6 +73,32 @@ public class RocksDBConnection implements DBConnection {
return null;
}

@Override
public <T> T get(String key, Class<T> type) {
try {
byte[] value = this.rocksDB.get(key.getBytes(UTF_8));
if (value != null && value.length > 0) {
String strObj = new String(value, UTF_8);
return JSON.parseObject(strObj,type);
}
} catch (Exception e) {
throw new IllegalStateException(e);
}
return null;
}

@Override
public void delete(String key) {
try {
byte[] value = this.rocksDB.get(key.getBytes(UTF_8));
if (value != null && value.length > 0) {
this.rocksDB.delete(value);
}
} catch (Exception e) {
throw new IllegalStateException(e);
}
}

@Override
public boolean exist(String dbUrl) {
// 首先该dbUrl是Rocksdb


+ 10
- 0
source/manager/manager-model/src/main/java/com/jd/blockchain/ump/dao/UmpDaoHandler.java View File

@@ -68,6 +68,16 @@ public class UmpDaoHandler implements UmpDao, CommandLineRunner, DBConnection {
return dbConnection.get(key);
}

@Override
public <T> T get(String key, Class<T> type) {
return dbConnection.get(key,type);
}

@Override
public void delete(String key) {
dbConnection.delete(key);
}

@Override
public boolean exist(String dbUrl) {
try {


+ 1
- 1
source/manager/manager-service/src/main/java/com/jd/blockchain/ump/service/DataAccountUmpService.java View File

@@ -20,7 +20,7 @@ public interface DataAccountUmpService {
*/
boolean addDataAccountSchema(DataAccountSchema dataAccountSchema);

DataAccountSchema deleteDataAcccountSchema(String ledgerHash, String dataAccount);
void deleteDataAcccountSchema(String ledgerHash, String dataAccount);

DataAccountSchema findDataAccountSchema(String ledgerHash, String dataAccount);
}

+ 15
- 5
source/manager/manager-service/src/main/java/com/jd/blockchain/ump/service/DataAccountUmpServiceImpl.java View File

@@ -1,7 +1,9 @@
package com.jd.blockchain.ump.service;

import com.jd.blockchain.ump.dao.DBConnection;
import com.jd.blockchain.ump.model.penetrate.DataAccountSchema;
import com.jd.blockchain.ump.model.penetrate.store.MemStore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import static com.jd.blockchain.ump.model.UmpConstant.SCHEMA_PREFIX;
@@ -13,19 +15,27 @@ import static com.jd.blockchain.utils.BaseConstant.DELIMETER_UNDERLINE;
*/
@Service
public class DataAccountUmpServiceImpl implements DataAccountUmpService {
@Autowired
private DBConnection dbConnection;

@Override
public boolean addDataAccountSchema(DataAccountSchema dataAccountSchema) {
return MemStore.instance.put(SCHEMA_PREFIX+dataAccountSchema.getLedgerHash()+
DELIMETER_UNDERLINE+dataAccountSchema.getDataAccount(),dataAccountSchema);
dbConnection.put(SCHEMA_PREFIX+dataAccountSchema.getLedgerHash()+
DELIMETER_UNDERLINE+dataAccountSchema.getDataAccount(),dataAccountSchema,DataAccountSchema.class);
return true;
// return MemStore.instance.put(SCHEMA_PREFIX+dataAccountSchema.getLedgerHash()+
// DELIMETER_UNDERLINE+dataAccountSchema.getDataAccount(),dataAccountSchema);
}

@Override
public DataAccountSchema deleteDataAcccountSchema(String ledgerHash, String dataAccount) {
return (DataAccountSchema)MemStore.instance.remove(SCHEMA_PREFIX+ledgerHash+ DELIMETER_UNDERLINE+dataAccount);
public void deleteDataAcccountSchema(String ledgerHash, String dataAccount) {
dbConnection.delete(SCHEMA_PREFIX+ledgerHash+ DELIMETER_UNDERLINE+dataAccount);
// MemStore.instance.remove(SCHEMA_PREFIX+ledgerHash+ DELIMETER_UNDERLINE+dataAccount);
}

@Override
public DataAccountSchema findDataAccountSchema(String ledgerHash, String dataAccount) {
return (DataAccountSchema)MemStore.instance.get(SCHEMA_PREFIX+ledgerHash+ DELIMETER_UNDERLINE+dataAccount);
return dbConnection.get(SCHEMA_PREFIX+ledgerHash+ DELIMETER_UNDERLINE+dataAccount,DataAccountSchema.class);
// return (DataAccountSchema)MemStore.instance.get(SCHEMA_PREFIX+ledgerHash+ DELIMETER_UNDERLINE+dataAccount);
}
}

+ 2
- 2
source/manager/manager-web/src/main/java/com/jd/blockchain/ump/controller/RetrievalController.java View File

@@ -249,8 +249,8 @@ public class RetrievalController {
public ApiResult deleteDataAccountSchema(@PathVariable(name = "ledgerHash") String ledgerHash,
@PathVariable(name = "dataAccount") String dataAccount) {
try {
DataAccountSchema dataAccountSchema = dataAccountUmpService.deleteDataAcccountSchema(ledgerHash, dataAccount);
return new ApiResult(ErrorCode.SUCCESS,dataAccountSchema);
dataAccountUmpService.deleteDataAcccountSchema(ledgerHash, dataAccount);
return new ApiResult(ErrorCode.SUCCESS);
} catch (Exception e) {
return new ApiResult(ErrorCode.SERVER_ERROR,e.getMessage());
}


Loading…
Cancel
Save