more code

This commit is contained in:
Hongze Cheng 2020-10-20 06:56:43 +00:00
parent 17a27fa266
commit 83234b0a2e
4 changed files with 16 additions and 7 deletions

View File

@ -33,6 +33,8 @@
#include "dnodeShell.h" #include "dnodeShell.h"
#include "dnodeTelemetry.h" #include "dnodeTelemetry.h"
SDnodeTier *pDnodeTier = NULL;
static int32_t dnodeInitStorage(); static int32_t dnodeInitStorage();
static void dnodeCleanupStorage(); static void dnodeCleanupStorage();
static void dnodeSetRunStatus(SDnodeRunStatus status); static void dnodeSetRunStatus(SDnodeRunStatus status);

View File

@ -20,7 +20,7 @@
SDnodeTier *dnodeNewTier() { return NULL; } SDnodeTier *dnodeNewTier() { return NULL; }
void * dnodeCloseTier(SDnodeTier *pDnodeTier) { return NULL; } void * dnodeCloseTier(SDnodeTier *pDnodeTier) { return NULL; }
int dnodeAddDisk(SDnodeTier *pDnodeTier, char *dir, int level) { return 0; } int dnodeAddDisks(SDnodeTier *pDnodeTier, SDiskCfg *pDiskCfgs, int ndisks);
int dnodeUpdateTiersInfo(SDnodeTier *pDnodeTier) { return 0; } int dnodeUpdateTiersInfo(SDnodeTier *pDnodeTier) { return 0; }
int dnodeCheckTiers(SDnodeTier *pDnodeTier) { return 0; } int dnodeCheckTiers(SDnodeTier *pDnodeTier) { return 0; }
SDisk * dnodeAssignDisk(SDnodeTier *pDnodeTier, int level) { return NULL; } SDisk * dnodeAssignDisk(SDnodeTier *pDnodeTier, int level) { return NULL; }

View File

@ -75,6 +75,12 @@ void dnodeSendStatusMsgToMnode();
#define DNODE_MAX_TIERS 3 #define DNODE_MAX_TIERS 3
#define DNODE_MAX_DISKS_PER_TIER 16 #define DNODE_MAX_DISKS_PER_TIER 16
typedef struct {
char dir[TSDB_FILENAME_LEN];
int level;
int primary;
} SDiskCfg;
typedef struct { typedef struct {
int level; int level;
int did; int did;
@ -94,7 +100,7 @@ typedef struct {
typedef struct { typedef struct {
int level; int level;
int nDisks; int nDisks;
SDisk disks[DNODE_MAX_DISKS_PER_TIER]; SDisk *disks[DNODE_MAX_DISKS_PER_TIER];
} STier; } STier;
typedef struct SDnodeTier { typedef struct SDnodeTier {
@ -104,7 +110,7 @@ typedef struct SDnodeTier {
SHashObj * map; SHashObj * map;
} SDnodeTier; } SDnodeTier;
#define DNODE_PRIMARY_DISK(pDnodeTier) (&(pDnodeTier)->tiers[0].disks[0]) #define DNODE_PRIMARY_DISK(pDnodeTier) (pDnodeTier)->tiers[0].disks[0]
static FORCE_INLINE int dnodeRLockTiers(SDnodeTier *pDnodeTier) { static FORCE_INLINE int dnodeRLockTiers(SDnodeTier *pDnodeTier) {
int code = pthread_rwlock_rdlock(&(pDnodeTier->rwlock)); int code = pthread_rwlock_rdlock(&(pDnodeTier->rwlock));
@ -138,12 +144,12 @@ static FORCE_INLINE SDisk *dnodeGetDisk(SDnodeTier *pDnodeTier, int level, int d
if (did < 0 || did >= pDnodeTier->tiers[level].nDisks) return NULL; if (did < 0 || did >= pDnodeTier->tiers[level].nDisks) return NULL;
return &(pDnodeTier->tiers[level].disks[did]); return pDnodeTier->tiers[level].disks[did];
} }
SDnodeTier *dnodeNewTier(); SDnodeTier *dnodeNewTier();
void * dnodeCloseTier(SDnodeTier *pDnodeTier); void * dnodeCloseTier(SDnodeTier *pDnodeTier);
int dnodeAddDisk(SDnodeTier *pDnodeTier, char *dir, int level); int dnodeAddDisks(SDnodeTier *pDnodeTier, SDiskCfg *pDiskCfgs, int ndisks);
int dnodeUpdateTiersInfo(SDnodeTier *pDnodeTier); int dnodeUpdateTiersInfo(SDnodeTier *pDnodeTier);
int dnodeCheckTiers(SDnodeTier *pDnodeTier); int dnodeCheckTiers(SDnodeTier *pDnodeTier);
SDisk * dnodeAssignDisk(SDnodeTier *pDnodeTier, int level); SDisk * dnodeAssignDisk(SDnodeTier *pDnodeTier, int level);

View File

@ -186,6 +186,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_DND_TOO_MANY_DISKS, 0, 0x0405, "Too many d
TAOS_DEFINE_ERROR(TSDB_CODE_DND_DISK_ALREADY_EXISTS, 0, 0x0406, "Disk already exists") TAOS_DEFINE_ERROR(TSDB_CODE_DND_DISK_ALREADY_EXISTS, 0, 0x0406, "Disk already exists")
TAOS_DEFINE_ERROR(TSDB_CODE_DND_DISK_NOT_DIRECTORY, 0, 0x0407, "Disk is not a directory") TAOS_DEFINE_ERROR(TSDB_CODE_DND_DISK_NOT_DIRECTORY, 0, 0x0407, "Disk is not a directory")
TAOS_DEFINE_ERROR(TSDB_CODE_DND_NO_DISK_SPACE, 0, 0x0408, "Dnode no disk space") TAOS_DEFINE_ERROR(TSDB_CODE_DND_NO_DISK_SPACE, 0, 0x0408, "Dnode no disk space")
TAOS_DEFINE_ERROR(TSDB_CODE_DND_DUPLICATE_PRIMARY_DISK, 0, 0x0409, "Duplicate primary disk")
// vnode // vnode
TAOS_DEFINE_ERROR(TSDB_CODE_VND_ACTION_IN_PROGRESS, 0, 0x0500, "Action in progress") TAOS_DEFINE_ERROR(TSDB_CODE_VND_ACTION_IN_PROGRESS, 0, 0x0500, "Action in progress")