func CreateNewMongoGraph(addr string, options graph.OptionsDict) bool { conn, err := mgo.Dial(addr) if err != nil { glog.Fatal("Error connecting: ", err) return false } conn.SetSafe(&mgo.Safe{}) dbName := DefaultDBName if val, ok := options.GetStringKey("database_name"); ok { dbName = val } db := conn.DB(dbName) indexOpts := mgo.Index{ Key: []string{"Sub"}, Unique: false, DropDups: false, Background: true, Sparse: true, } db.C("triples").EnsureIndex(indexOpts) indexOpts.Key = []string{"Pred"} db.C("triples").EnsureIndex(indexOpts) indexOpts.Key = []string{"Obj"} db.C("triples").EnsureIndex(indexOpts) indexOpts.Key = []string{"Provenance"} db.C("triples").EnsureIndex(indexOpts) return true }
func NewDefaultLevelDBTripleStore(path string, options graph.OptionsDict) *LevelDBTripleStore { var ts LevelDBTripleStore ts.path = path cache_size := DefaultCacheSize if val, ok := options.GetIntKey("cache_size_mb"); ok { cache_size = val } ts.dbOpts = &leveldb_opt.Options{ BlockCache: leveldb_cache.NewLRUCache(cache_size * leveldb_opt.MiB), } ts.dbOpts.ErrorIfMissing = true write_buffer_mb := DefaultWriteBufferSize if val, ok := options.GetIntKey("write_buffer_mb"); ok { write_buffer_mb = val } ts.dbOpts.WriteBuffer = write_buffer_mb * leveldb_opt.MiB ts.hasher = sha1.New() ts.writeopts = &leveldb_opt.WriteOptions{ Sync: false, } ts.readopts = &leveldb_opt.ReadOptions{} db, err := leveldb.OpenFile(ts.path, ts.dbOpts) if err != nil { panic("Error, couldn't open! " + err.Error()) } ts.db = db glog.Infoln(ts.GetStats()) ts.getSize() return &ts }
func NewMongoTripleStore(addr string, options graph.OptionsDict) *MongoTripleStore { var ts MongoTripleStore conn, err := mgo.Dial(addr) if err != nil { glog.Fatal("Error connecting: ", err) } conn.SetSafe(&mgo.Safe{}) dbName := DefaultDBName if val, ok := options.GetStringKey("database_name"); ok { dbName = val } ts.db = conn.DB(dbName) ts.session = conn ts.hasher = sha1.New() ts.idCache = NewIDLru(1 << 16) return &ts }