Hey gui,

ArangoDB is mostly-memory. All indexes (except for the type "persistent") 
are kept in memory and need to rebuilt on restart. This means the indexes 
need to fit into the main memory, otherwise the operating system will start 
to swap and performance degrades. There has to be free memory for 
(partially) loading collections and to construct query results as well.

The data is persisted to mass storage (disk / flash drive). By default, it 
doesn't wait until the data is fully synced. There is an optional 
waitForSync parameter to forcefully wait for synchronization, which can be 
set per collection and query. It will decrease performance depending on how 
fast your mass storage is, but gives you additional security (e.g. for 
banking transactions).

If you don't want the data to be synced at all, you may create a volatile 
collection. The collection itself will survive unloads and restarts, but 
the data will be kept in-memory only and be lost on these events. You can 
use the isVolatile option to use certain collections as cache, i.e. for 
data that can easily be computed again after a restart and syncing it to 
disk would only slow things down (performance gain).

To use ArangoDB as key/value store means to use the default primary index 
only, a lookup by (hash) key. The values you store are always (JSON) 
documents. They can be arbitrarily structured. You may define secondary 
indexes on certain attributes, but it then no longer classifies as 
key/value store, but document store (the extra indexes have to look at the 
value-part, which means it is no longer treated opaque).

There are no bitwise operations, but if you really require them, they can 
be easily added using AQL user-defined functions. I would like to hear what 
you would like to use them for.

-- 
You received this message because you are subscribed to the Google Groups 
"ArangoDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to