Cayley 0.7.0 memstore


#1

Happy new year 2018.
Sorry guy I need help.
I used this command to run project with db type memstore.
./cayley http --db=memstore --dbpath=./data/30kmoviedata.nq.gz

In V 0.6.1 has query result but V 0.7.0 query result always null.
If I set wrong file name in V 0.6.1 can’t run but V 0.7.0 can run with no error.
Use config file has same problem wrong file name can run with no error and result always null.
example.yml

store:
  # backend to use
  backend: memstore
  # address or path for the database
  address: "./data/30kmoviedata.nq.gz"

If I use this command ./cayley http -i ./data/30kmoviedata.nq.gz -d memstore --host=:64210
in Quickstart-As-Application .
It can run and has query result in v0.7.0.
It help me to run project with memstore.

Conclusion
In V 0.7.0 this command ./cayley http --db=memstore --dbpath=xxxx.nq.gz can’t use for db memstore.

But I want to know.
How set config file for use with db memstore in V 0.7.0?
Thank you


#2

Happy New year!

This is one of the things I forgot to include in the release notes. In 0.6 memstore is a special kind of backend that accepts quads file path as an “address” argument. But now, all backends are using the same code path for loading data, thus this special case no longer works.

I see two options here:

  1. Use -i file.nq flag to cayley http to load the data before starting the server. This procedure will work for any backend. And I will make memstore to throw an error when address for backend is set.

  2. Specifying quads file in config looks useful for memstore - I assumed it was only used as a flag. So maybe we should allow to pass file name again as in 0.6 and do the same for all non-persistent backends.


#3

Filed an issue to track this: #677


#4

Thank you for clearly answer.