From 3e024bc97e01b77c7ace6ea29dceabbb09cefde7 Mon Sep 17 00:00:00 2001 From: Ashwin <ashwin2007ray@gmail.com> Date: Thu, 25 Feb 2016 15:37:48 +1100 Subject: [PATCH] Added a seperate store for xid & uid in server --- query/query_test.go | 4 ++-- server/main.go | 14 +++++++++++++- server/main_test.go | 2 +- worker/worker.go | 5 +++-- worker/worker_test.go | 2 +- 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/query/query_test.go b/query/query_test.go index 136f171b..12713917 100644 --- a/query/query_test.go +++ b/query/query_test.go @@ -103,7 +103,7 @@ func TestNewGraph(t *testing.T) { t.Error(err) } - worker.Init(ps) + worker.Init(ps, nil) uo := flatbuffers.GetUOffsetT(sg.result) r := new(task.Result) @@ -134,7 +134,7 @@ func populateGraph(t *testing.T) (string, *store.Store) { ps := new(store.Store) ps.Init(dir) - worker.Init(ps) + worker.Init(ps, nil) clog := commit.NewLogger(dir, "mutations", 50<<20) clog.Init() diff --git a/server/main.go b/server/main.go index 86e2d765..c1c122ef 100644 --- a/server/main.go +++ b/server/main.go @@ -38,10 +38,15 @@ import ( var glog = x.Log("server") var postingDir = flag.String("postings", "", "Directory to store posting lists") +var xiduidDir = flag.String("xiduid", "", "XID UID posting lists directory") var mutationDir = flag.String("mutations", "", "Directory to store mutations") var port = flag.String("port", "8080", "Port to run server on.") var numcpu = flag.Int("numCpu", runtime.NumCPU(), "Number of cores to be used by the process") +var instanceIdx = flag.Uint64("instanceIdx", 0, + "serves only entities whose Fingerprint % numInstance == instanceIdx.") +var numInstances = flag.Uint64("numInstances", 1, + "Total number of server instances") func addCorsHeaders(w http.ResponseWriter) { w.Header().Set("Access-Control-Allow-Origin", "*") @@ -140,7 +145,14 @@ func main() { defer clog.Close() posting.Init(clog) - worker.Init(ps) + if *instanceIdx == 0 { + xiduidStore := new(store.Store) + xiduidStore.Init(*xiduidDir) + defer xiduidStore.Close() + worker.Init(ps, xiduidStore) //Only server instance 0 will have xiduidStore + } else { + worker.Init(ps, nil) + } worker.Connect() uid.Init(ps) diff --git a/server/main_test.go b/server/main_test.go index 2d13e551..f2180849 100644 --- a/server/main_test.go +++ b/server/main_test.go @@ -62,7 +62,7 @@ func prepare() (dir1, dir2 string, ps *store.Store, clog *commit.Logger, rerr er clog.Init() posting.Init(clog) - worker.Init(ps) + worker.Init(ps, nil) uid.Init(ps) loader.Init(ps, ps) diff --git a/worker/worker.go b/worker/worker.go index 5966a632..cfa3b954 100644 --- a/worker/worker.go +++ b/worker/worker.go @@ -21,11 +21,12 @@ var workerPort = flag.String("workerport", ":12345", "Port used by worker for internal communication.") var glog = x.Log("worker") -var dataStore *store.Store +var dataStore, xiduidStore *store.Store var pools []*conn.Pool -func Init(ps *store.Store) { +func Init(ps, xuStore *store.Store) { dataStore = ps + xiduidStore = xuStore } func Connect() { diff --git a/worker/worker_test.go b/worker/worker_test.go index 06f4be87..8d2dbc8e 100644 --- a/worker/worker_test.go +++ b/worker/worker_test.go @@ -58,7 +58,7 @@ func TestProcessTask(t *testing.T) { defer clog.Close() posting.Init(clog) - Init(ps) + Init(ps, nil) edge := x.DirectedEdge{ ValueId: 23, -- GitLab