【问题详细描述】
如何挂载目录并指定手工创建的元数据集合,且集合为分区集合?
【解决方法】
1.在手工创建了目录和文件的元数据的分区集合后(假设目录元数据集合为:”sequoiafs.metadir_cl”,文件元数据集合为:”sequoiafs.metafile_cl”,分区键为”_id”),需要创建如下三个索引:
1)在目录元数据表中创建复合索引 “NameIndex”:
db.sequoiafs.metadir_cl.createIndex( “NameIndex”, { Name:1, Pid:1, _id:1 },{ Unique: true, Enforced :true } );
2)在文件元数据表中创建复合索引”NameIndex”和”LobOidIndex”:
db.sequoiafs.metafile_cl.createIndex( “NameIndex”, { Name:1, Pid:1, _id:1 },{ Unique: true, Enforced :true } );
db.sequoiafs.metafile_cl.createIndex( “LobOidIndex”, { LobOid:1, _id:1 },{ Unique: true, Enforced :true } );
2.在挂载目录时使用 -d 和 -f 指定自己手工创建的元数据集合,不要指定 –autocreate默认生成元数据集合即可。
$sequoiafs /opt/sequoiadb/mountpoint -i localhost:11810 -l foo.bar -c /opt/sequoiafs/conf/foo_bar/001/ –diagpath /opt/sequoiafs/log/foo_bar/001/ -o big_writes -o auto_unmount -o max_write=131072 -o max_read=131072 -d sequoiafs.metadir_cl -f sequoiafs.metafile_cl
详情参考:
挂载目录:http://doc.sequoiadb.com/cn/s…
【备注】
创建索引时需要注意复合索引字段中的顺序问题,需要把分区键字段放在最后,如将分区键字段放在最前面创建了索引,在后续查找目录时可能会因为无法使用此索引而导致写入目录速度慢等问题。