Embedded mode
In embedded mode, Datashare bundles all the services it needs (database, search engine, message bus) directly inside the application. You don't need to install or configure these services separately — everything starts automatically when you launch Datashare.
How it works
Under the hood, Datashare embeds the following services:
Task queues
Java memory queues
Runs inside Datashare
Database
SQLite
Can be stored in memory or in a file
Search engine
Elasticsearch
Runs as a separate process (see below)
About Elasticsearch
Since Elasticsearch 8, it can no longer run inside Datashare directly. Starting from Datashare 21, Elasticsearch is launched as a separate process alongside Datashare.
This means two Java processes run on your machine: one for Datashare, one for Elasticsearch. You may need to adjust how much memory each process is allowed to use, depending on the size of your documents and the resources available on your machine.
To do so, use the following environment variables:
DS_JAVA_OPTS
Memory allocated to Datashare
ES_JAVA_OPTS
Memory allocated to Elasticsearch
For example, to give 2 GB to Elasticsearch and 1 GB to Datashare:
ES_JAVA_OPTS="-Xmx2g" DS_JAVA_OPTS="-Xmx1g" datashare <args>As a rule of thumb, Elasticsearch typically needs more memory than Datashare (about twice as much).
Where is Elasticsearch installed?
When you first launch Datashare, it automatically downloads and installs Elasticsearch in a platform-specific location:
Linux
$HOME/.local/share/datashare/elasticsearch
macOS
$HOME/Library/Datashare/elasticsearch
Windows
%APPDATA%\Datashare\elasticsearch
On startup, Datashare launches Elasticsearch and waits for it to be ready. During this time, you may see log messages like:
This is normal. Once Elasticsearch is ready, you will see:
Troubleshooting
If Datashare or Elasticsearch fails to start, follow these steps:
Run Elasticsearch on its own. Go to the installation path listed above and start the
bin/elasticsearchscript manually to check if it runs properly.Run Datashare without Elasticsearch. Launch Datashare without the
--elasticsearchPathoption so that it does not try to start Elasticsearch itself.Run both together. If steps 1 and 2 succeed, close everything and launch Datashare normally.
Check for Elasticsearch errors. A common one is
exit 137, which means Elasticsearch did not have enough memory to start.Adjust memory settings. Try different values for
ES_JAVA_OPTSandDS_JAVA_OPTS(see above).
Last updated