Project Voldemort is a scalable, highly available, NoSql, distributed, key/value store developed by Linkedin which in turn was inspired by Amazon’s Dynamo paper. The source code for Voldemort is currently hosted at GitHub.
Voldemort is written in Java and will run on any platform where Java can run. Getting Voldemort up and running on Linux/OSX or any other Posix based system is seamless. Running Voldemort is a little challenging, but not impossible.
Voldemort Prerequisites
- Recent Java JDK with Server HotSpot VM
- Apache Ant
- Optionally Python 2.6
Download and install the Java SDK and Apache Ant. Make sure the Apache Ant bin directory is on your path.
To verify that you have the Server HotSpot VM installed, open a command window and type the following:
java -server -version
You should see something like this:
java version "1.6.0_17" Java(TM) SE Runtime Environment (build 1.6.0_17-b04) Java HotSpot(TM) Server VM (build 10.0-b22, mixed mode) java version "1.6.0_17"Java(TM) SE Runtime Environment (build 1.6.0_17-b04)Java HotSpot(TM) Server VM (build 10.0-b22, mixed mode)
If you get an error about no ‘server’ JVM at c:\Program Files\Java\jreXXX\bin\server.jvm.dll, then you’ll need to monkey-patch your Java installation before continuing.
Java Monkey Patch
- Locate the directory where your Java JDK was installed (eg C:\Program Files\Java\jdk1.6.0_06)
- Copy the \jre\bin\server folder to JRE\bin folder (eg: C:\Program Files\Java\jre6\bin)
Verify your Java installation again by entering the following in a command window:
java -server -version
You should get output similar to the paragraph above.
Installing Voldemort
For this tutorial, download the latest stable release from the Voldemort repository at GitHub. For this tutorial, I used Release 0.80.1.
After the download is complete, extract the files to a directory of your choosing.
If you navigate to the bin directory, you’ll notice that the majority of script files are shell scripts. Well that’s not going to work on Windows. Time for some more monkey patching.
Shell Script Monkey Patching
For this tutorial I will convert the three scripts you need to get Voldemort up and running:
- run-class.sh
- voldemort-server.sh
- voldermort-shell.sh
Copy or download the 3 files below and place them in your Voldemort \bin directory.
run-class.bat [Download from GitHub]
voldemort-shell.bat [Download from GitHub]
voldemort-server.bat [Download from GitHub]
@echo off REM REM Copyright 2008-2009 LinkedIn, Inc REM Copyright 2010 Erik Howard REM REM Licensed under the Apache License, Version 2.0 (the "License"); REM you may not use this file except in compliance with the License. REM You may obtain a copy of the License at REM REM http://www.apache.org/licenses/LICENSE-2.0 REM REM Unless required by applicable law or agreed to in writing, software REM distributed under the License is distributed on an "AS IS" BASIS, REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. REM See the License for the specific language governing permissions and REM limitations under the License. REM @echo off if "%2" == "" goto :continue echo USAGE: bin/voldemort-server.bat [voldemort_home] goto :eof :continue setlocal SET BASE_DIR=%~dp0.. SET CLASSPATH=. for %%j in (%BASE_DIR%\dist\*.jar) do (call :append_classpath "%%j") for %%j in (%BASE_DIR%\lib\*.jar) do (call :append_classpath "%%j") goto :run :append_classpath set CLASSPATH=%CLASSPATH%;%1 goto :eof :run if "%VOLD_OPTS%" == "" set "VOLD_OPTS=-Xmx256M -server -Dcom.sun.management.jmxremote" REM java -Xmx512M -cp %CLASSPATH% -Dcom.sun.management.jmxremote voldemort.server.VoldemortServer %1 java -Dlog4j.configuration=src/java/log4j.properties %VOLD_OPTS% -cp %CLASSPATH% voldemort.server.VoldemortServer %* endlocal :eof
Starting Voldemort
From a command prompt, go to the directory where you extracted Voldemort and type the following:
bin\voldemort-server.bat config\single_node_cluster
You should see several lines of information scroll by. Congratulations – you’ve just started Project Voldemort on Windows!
Testing Voldemort
Open up another command window and change to your Voldemort project directory.
Type the following to startup the Voldemort shell:
bin\voldemort-shell.bat test tcp://localhost:6666
With the shell up and running, lets try out a few commands
put "name" "erik" get "name" version(0:1) "erik" delete "name" get "name" null exit k k thx bye
Conclusion
Before you can use the full functionality of Voldemort, you must first convert the remaining shell scripts in the bin directory to dos batch scripts. Good Luck.

Prabhakar
Very useful article. I get an error when I execute this command
“bin\voldemort-server.bat config\single_node_cluster”
Exception in thread “main” java.lang.IllegalArgumentException: je.maxMemory has
a value of 1073741824 but the JVM is only configured for 238616576. Consider using je.maxMemoryPercent.
Do you any Idea about this?
April 2, 2010 at 6:33 pm
Prabhakar
I got this solution from one of my friend(Ravi Dontharaju). Thx.
Edit the voldemort properties, open:
voldemort-0.80.1\config\single_node_cluster\config\server.properties
And change :
bdb.cache.size=1G
to
bdb.cache.size=200MB (or whatever your JVM is set to)
April 2, 2010 at 6:41 pm
Ashwin Jayaprakash
Why not contribute these scripts back to V?
July 10, 2010 at 10:49 am
Erik Howard
I plan too. I’ve been busy getting my startup off the ground.
July 10, 2010 at 12:35 pm
Dunith Dhanushka
Thanks for sharing this.
This article helped me a lot to boot up Voldemort instance in my Win XP machine.
Thanks
July 17, 2010 at 3:18 am
NoSQL on the Microsoft Platform
[...] Check out this link on GoNoSQL.com to learn more about setting it up in a Windows environment: http://www.gonosql.com/how-to-install-voldemort-on-windows/ [...]
August 10, 2010 at 3:30 am
NoSQL は Microsoft にとって重要だから、Microsoft だけに任せておけない [ #cloud #cloudcomputing #nosql #windows #microsoft #cbajp ] « Agile Cat — Azure & Hadoop — Talking Book
[...] Check out this link on GoNoSQL.com to learn more about setting it up in a Windows environment: http://www.gonosql.com/how-to-install-voldemort-on-windows/ Windows 環境における設定について、詳細情報が必要な場合には GoNoSQL.com [...]
August 10, 2010 at 4:23 pm
NoSQL は Microsoft にとって重要だから、Microsoft だけに任せておけない! « Agile Cat — Azure & Hadoop — Talking Book
[...] Check out this link on GoNoSQL.com to learn more about setting it up in a Windows environment: http://www.gonosql.com/how-to-install-voldemort-on-windows/ Windows 環境における設定について、詳細情報が必要な場合には GoNoSQL.com [...]
August 10, 2010 at 4:28 pm
y移动 » 细数运行在微软平台上的NoSQL数据库
[...] Voldemort是一个分布式Key/Value存储系统,LinkedIn用它解决了网站的高扩展性存储问题,简单的分区功能已经不能满足LinkedIn的需要。Voldemort使用Java编写,因此借助Java的跨平台特性,它也可以运行在Windows平台上。请阅读这篇文章了解如何在Windows平台上安装Voldemort。 [...]
August 18, 2010 at 4:26 am
细数运行在微软平台上的NoSQL数据库 « 编程王网站
[...] Voldemort是一个分布式Key/Value存储系统,LinkedIn用它解决了网站的高扩展性存储问题,简单的分区功能已经不能满足LinkedIn的需要。Voldemort使用Java编写,因此借助Java的跨平台特性,它也可以运行在Windows平台上。请阅读这篇文章了解如何在Windows平台上安装Voldemort。 [...]
September 8, 2010 at 8:30 am
Windows world and NoSQL: where do we stand ? « Data story
[...] Voldemort (written using the cross-platform language: Java), few info can be found here [...]
September 15, 2010 at 3:48 pm
How to install Voldemort on Windows | Large Data Matters
[...] post is about setting up Voldemort on Windows. This entry was posted in General. Bookmark the [...]
November 11, 2010 at 10:21 am
Jack's blog 我的博客 » Blog Archive » 细数运行在微软平台上的NoSQL数据库
[...] Voldemort是一个分布式Key/Value存储系统,LinkedIn用它解决了网站的高扩展性存储问题,简单的分区功能已经不能满足LinkedIn的需要。Voldemort使用Java编写,因此借助Java的跨平台特性,它也可以运行在Windows平台上。请阅读这篇文章了解如何在Windows平台上安装Voldemort。 [...]
January 25, 2011 at 1:41 am
David N Allsopp
voldemort-server.bat fails if you have spaces in the BASE_DIR (e.g. C:\Documents and Settings\…).
To fix this, add quotes as follows:
for %%j in (“%BASE_DIR%\dist\*.jar”) do (call :append_classpath “%%j”)
for %%j in (“%BASE_DIR%\lib\*.jar”) do (call :append_classpath “%%j”)
April 5, 2011 at 5:36 am