more code
This commit is contained in:
parent
17a27fa266
commit
83234b0a2e
|
@ -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);
|
||||||
|
|
|
@ -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; }
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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")
|
||||||
|
|
Loading…
Reference in New Issue