static int se_dbscheme_init(sedb *db, char *name, int size) { se *e = se_of(&db->o); /* database id */ uint32_t id = sr_seq(&e->seq, SR_DSN); sr_seq(&e->seq, SR_DSNNEXT); /* prepare index scheme */ sischeme *scheme = db->scheme; if (size == 0) size = strlen(name); scheme->name = ss_malloc(&e->a, size + 1); if (ssunlikely(scheme->name == NULL)) goto error; memcpy(scheme->name, name, size); scheme->name[size] = 0; scheme->id = id; scheme->sync = 2; scheme->mmap = 0; scheme->storage = SI_SCACHE; scheme->node_size = 64 * 1024 * 1024; scheme->node_compact_load = 0; scheme->node_page_size = 128 * 1024; scheme->node_page_checksum = 1; scheme->compression_copy = 0; scheme->compression_cold = 0; scheme->compression_cold_if = &ss_nonefilter; scheme->compression_hot = 0; scheme->compression_hot_if = &ss_nonefilter; scheme->temperature = 0; scheme->expire = 0; scheme->amqf = 0; scheme->fmt_storage = SF_RAW; scheme->lru = 0; scheme->lru_step = 128 * 1024; scheme->buf_gc_wm = 1024 * 1024; scheme->storage_sz = ss_strdup(&e->a, "cache"); if (ssunlikely(scheme->storage_sz == NULL)) goto error; scheme->compression_cold_sz = ss_strdup(&e->a, scheme->compression_cold_if->name); if (ssunlikely(scheme->compression_cold_sz == NULL)) goto error; scheme->compression_hot_sz = ss_strdup(&e->a, scheme->compression_hot_if->name); if (ssunlikely(scheme->compression_hot_sz == NULL)) goto error; sf_upsertinit(&scheme->fmt_upsert); sf_schemeinit(&scheme->scheme); return 0; error: sr_oom(&e->error); return -1; }
static int se_dbscheme_init(sedb *db, char *name, int size) { se *e = se_of(&db->o); /* database id */ uint32_t id = sr_seq(&e->seq, SR_DSN); sr_seq(&e->seq, SR_DSNNEXT); /* prepare index scheme */ sischeme *scheme = db->scheme; if (size == 0) size = strlen(name); scheme->name = ss_malloc(&e->a, size + 1); if (ssunlikely(scheme->name == NULL)) goto error; memcpy(scheme->name, name, size); scheme->name[size] = 0; scheme->id = id; scheme->sync = 1; scheme->mmap = 1; scheme->direct_io = 0; scheme->direct_io_page_size = 4096; scheme->direct_io_buffer_size = 8 * 1024 * 1024; scheme->compression = 0; scheme->compression_if = &ss_nonefilter; scheme->expire = 0; scheme->buf_gc_wm = 1024 * 1024; scheme->compression_sz = ss_strdup(&e->a, scheme->compression_if->name); if (ssunlikely(scheme->compression_sz == NULL)) goto error; sf_upsertinit(&scheme->upsert); sf_schemeinit(&scheme->scheme); return 0; error: sr_oom(&e->error); return -1; }
static int se_dbscheme_init(sedb *db, char *name) { se *e = se_of(&db->o); /* prepare index scheme */ sischeme *scheme = &db->scheme; scheme->name = ss_strdup(&e->a, name); if (ssunlikely(scheme->name == NULL)) goto e0; scheme->id = sr_seq(&e->seq, SR_DSNNEXT); scheme->sync = 2; scheme->mmap = 0; scheme->storage = SI_SCACHE; scheme->cache_mode = 0; scheme->cache_sz = NULL; scheme->node_size = 64 * 1024 * 1024; scheme->node_compact_load = 0; scheme->node_page_size = 128 * 1024; scheme->node_page_checksum = 1; scheme->compression_key = 0; scheme->compression = 0; scheme->compression_if = &ss_nonefilter; scheme->compression_branch = 0; scheme->compression_branch_if = &ss_nonefilter; scheme->amqf = 0; scheme->fmt = SF_KV; scheme->fmt_storage = SF_SRAW; scheme->path_fail_on_exists = 0; scheme->path_fail_on_drop = 1; scheme->lru = 0; scheme->lru_step = 128 * 1024; scheme->buf_gc_wm = 1024 * 1024; scheme->storage_sz = ss_strdup(&e->a, "cache"); if (ssunlikely(scheme->storage_sz == NULL)) goto e1; scheme->compression_sz = ss_strdup(&e->a, scheme->compression_if->name); if (ssunlikely(scheme->compression_sz == NULL)) goto e1; scheme->compression_branch_sz = ss_strdup(&e->a, scheme->compression_branch_if->name); if (ssunlikely(scheme->compression_branch_sz == NULL)) goto e1; sf_upsertinit(&scheme->fmt_upsert); scheme->fmt_sz = ss_strdup(&e->a, "kv"); if (ssunlikely(scheme->fmt_sz == NULL)) goto e1; /* init single key part as string */ int rc; sr_schemeinit(&scheme->scheme); srkey *part = sr_schemeadd(&scheme->scheme); rc = sr_keysetname(part, &e->a, "key"); if (ssunlikely(rc == -1)) goto e1; rc = sr_keyset(part, &e->a, "string"); if (ssunlikely(rc == -1)) goto e1; return 0; e1: si_schemefree(&db->scheme, &db->r); e0: sr_oom(&e->error); return -1; }