RocksDB website
This commit is contained in:
commit
6f14ddef96
149
index.html
Normal file
149
index.html
Normal file
@ -0,0 +1,149 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>RocksDB | A persistent key-value store for fast storage environments</title>
|
||||
<link rel='stylesheet' href='static/rocksdb.css' type='text/css'/>
|
||||
<link rel='shortcut icon' href='static/favicon.ico'>
|
||||
<meta name='viewport' content='width=device-width'>
|
||||
<meta property='og:type' content='website'>
|
||||
<meta property='og:title' content='RocksDB | A persistent key-value store for fast storage environments'>
|
||||
<meta property='og:description' content='A persistent key-value store for fast storage environments'>
|
||||
<meta property='og:image' content='static/rocksdb.png'>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header class='topbar'><nav class='width'>
|
||||
<a href='index.html'><h1>RocksDB</h1></a>
|
||||
<ul>
|
||||
<li><a href='overview.html'>Overview</a></li>
|
||||
<li><a href='https://github.com/facebook/rocksdb/wiki/_pages'>Wiki</a></li>
|
||||
<li><a href='https://github.com/facebook/rocksdb'>GitHub</a>
|
||||
</ul>
|
||||
</nav></header>
|
||||
|
||||
<header class='hero'><div class='width'>
|
||||
<hgroup>
|
||||
<h1>
|
||||
A persistent key-value store for fast storage environments
|
||||
</h1>
|
||||
<a class='button' href='overview.html'>Get Started</a>
|
||||
</hgroup>
|
||||
<aside>
|
||||
<img src='static/rocksdbhero.png' />
|
||||
</aside>
|
||||
</div></header>
|
||||
|
||||
<section class='content'><div class='width'>
|
||||
|
||||
<article>
|
||||
<h2>What is RocksDB?</h2>
|
||||
<p>
|
||||
RocksDB is an embeddable persistent key-value store for fast
|
||||
storage. RocksDB can also be the foundation for a client-server
|
||||
database but our current focus is on embedded workloads.
|
||||
<p>
|
||||
<p>
|
||||
RocksDB builds on <a
|
||||
href='https://code.google.com/p/leveldb/'>LevelDB</a> to be scalable
|
||||
to run on servers with many CPU cores, to efficiently use
|
||||
fast storage, to support IO-bound, in-memory and write-once
|
||||
workloads, and to be flexible to allow for innovation.
|
||||
</p>
|
||||
|
||||
<h2>How does performance compare?</h2>
|
||||
<p>
|
||||
We benchmarked LevelDB and found that it was unsuitable for our
|
||||
server workloads. The <a
|
||||
href='http://leveldb.googlecode.com/svn/trunk/doc/benchmark.html'>
|
||||
benchmark results</a> look awesome at first sight, but we quickly
|
||||
realized that those results were for a database whose size was
|
||||
smaller than the size of RAM on the test machine - where the entire
|
||||
database could fit in the OS page cache. When we performed the same
|
||||
benchmarks on a database that was at least 5 times larger than main
|
||||
memory, the performance results were dismal.
|
||||
</p>
|
||||
<p>
|
||||
By contrast, we've published the <a
|
||||
href='https://github.com/facebook/rocksdb/wiki/Performance-Benchmarks'>
|
||||
RocksDB benchmark results</a> for server side workloads on Flash. We
|
||||
also measured the performance of LevelDB on these server-workload
|
||||
benchmarks and found that RocksDB solidly outperforms LevelDB for
|
||||
these IO bound workloads. We found that LevelDB's single-threaded
|
||||
compaction process was insufficient to drive server workloads. We
|
||||
saw frequent write-stalls with LevelDB that caused 99-percentile
|
||||
latency to be tremendously large. We found that mmap-ing a file into
|
||||
the OS cache introduced performance bottlenecks for reads. We could
|
||||
not make LevelDB consume all the IOs offered by the underlying Flash
|
||||
storage.
|
||||
</p>
|
||||
|
||||
<h2>What is RocksDB suitable for?</h2>
|
||||
<p>
|
||||
RocksDB can be used by applications that need low latency database
|
||||
accesses. A user-facing application that stores the viewing history
|
||||
and state of users of a website can potentially store this content
|
||||
on RocksDB. A spam detection application that needs fast access to
|
||||
big data sets can use RocksDB. A graph-search query that needs to
|
||||
scan a data set in realtime can use RocksDB. RocksDB can be used to
|
||||
cache data from Hadoop, thereby allowing applications to query
|
||||
Hadoop data in realtime. A message-queue that supports a high number
|
||||
of inserts and deletes can use RocksDB.
|
||||
</p>
|
||||
|
||||
<h2>Why is RocksDB open source?</h2>
|
||||
<p>
|
||||
We are open sourcing this project <a
|
||||
href='http://github.com/facebook/rocksdb'>on GitHub</a> because we
|
||||
think it will be useful beyond Facebook. We are hoping that software
|
||||
programmers and database developers will use, enhance, and customize
|
||||
RocksDB for their use-cases. We would also like to engage with the
|
||||
academic community on topics related to efficiency for modern
|
||||
database algorithms.
|
||||
</p>
|
||||
|
||||
</article>
|
||||
|
||||
<aside>
|
||||
<h3>Quick links</h3>
|
||||
<ul>
|
||||
<li><a href='overview.html'>Overview</a></li>
|
||||
<li><a href='https://github.com/facebook/rocksdb/wiki/_pages'>Wiki</a></li>
|
||||
<li><a href='https://github.com/facebook/rocksdb'>GitHub</a>
|
||||
</ul>
|
||||
<h3>Community</h3>
|
||||
<ul>
|
||||
<li><a href='https://github.com/facebook/rocksdb/issues'>Report an issue</a></li>
|
||||
<li><a href='https://www.facebook.com/rocksdb'>Facebook Page</a></li>
|
||||
<li>
|
||||
<div class='fb-like'
|
||||
data-href='https://www.facebook.com/rocksdb'
|
||||
data-layout='button_count' data-action='like'
|
||||
data-show-faces='false' data-share='true'></div>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Open source</h3>
|
||||
<ul>
|
||||
<li><a href='https://github.com/facebook/rocksdb/blob/master/LICENSE'>BSD license</a></li>
|
||||
<li><a href='https://github.com/facebook/rocksdb/blob/master/CONTRIBUTING.md'>Contributing</a></li>
|
||||
<li><a href='https://github.com/facebook/rocksdb/blob/master/PATENTS'>Patent grant</a></li>
|
||||
</ul>
|
||||
</aside>
|
||||
|
||||
</div></section>
|
||||
|
||||
<footer><div class='width'>
|
||||
© Copyright 2013, Facebook
|
||||
</div></footer>
|
||||
|
||||
<div id='fb-root'></div>
|
||||
<script>(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) return;
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.src = '//connect.facebook.net/en_US/all.js#xfbml=1';
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));</script>
|
||||
|
||||
</body>
|
||||
</html>
|
72
overview.html
Normal file
72
overview.html
Normal file
@ -0,0 +1,72 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>RocksDB | A persistent key-value store for fast storage environments</title>
|
||||
<link rel='stylesheet' href='static/rocksdb.css' type='text/css'/>
|
||||
<link rel='shortcut icon' href='static/favicon.ico'>
|
||||
<meta name='viewport' content='width=device-width'>
|
||||
<meta property='og:type' content='website'>
|
||||
<meta property='og:title' content='RocksDB | A persistent key-value store for fast storage environments'>
|
||||
<meta property='og:description' content='A persistent key-value store for fast storage environments'>
|
||||
<meta property='og:image' content='static/rocksdb.png'>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header class='topbar'><nav class='width'>
|
||||
<a href='index.html'><h1>RocksDB</h1></a>
|
||||
<ul>
|
||||
<li><a href='overview.html' class='active'>Overview</a></li>
|
||||
<li><a href='https://github.com/facebook/rocksdb/wiki/_pages'>Wiki</a></li>
|
||||
<li><a href='https://github.com/facebook/rocksdb'>GitHub</a>
|
||||
</ul>
|
||||
</nav></header>
|
||||
|
||||
<header class='hero'><div class='width'>
|
||||
<hgroup>
|
||||
<h1>
|
||||
Overview
|
||||
</h1>
|
||||
</hgroup>
|
||||
</div></header>
|
||||
|
||||
<section class='content'><div class='width'>
|
||||
|
||||
<article>
|
||||
|
||||
<h2>Opening A Database</h2>
|
||||
<p>
|
||||
A <code>rocksdb</code> database has a name which corresponds to a
|
||||
file system directory. All of the contents of database are stored in
|
||||
this directory. The following example shows how to open a database,
|
||||
creating it if necessary:
|
||||
</p>
|
||||
|
||||
<pre>#include <assert>
|
||||
#include "rocksdb/db.h"
|
||||
|
||||
rocksdb::DB* db;
|
||||
rocksdb::Options options;
|
||||
options.create_if_missing = true;
|
||||
rocksdb::Status status = rocksdb::DB::Open(options, "/tmp/testdb", &db);
|
||||
assert(status.ok());
|
||||
...</pre>
|
||||
|
||||
<p>
|
||||
If you want to raise an error if the database already exists, add
|
||||
the following line before the <code>rocksdb::DB::Open</code> call:
|
||||
</p>
|
||||
|
||||
<pre>options.error_if_exists = true;</pre>
|
||||
|
||||
<h2>etc...</h2>
|
||||
</article>
|
||||
|
||||
</div></section>
|
||||
|
||||
<footer><div class='width'>
|
||||
© Copyright 2013, Facebook
|
||||
</div></footer>
|
||||
|
||||
</body>
|
||||
</html>
|
BIN
static/facebookcode.png
Normal file
BIN
static/facebookcode.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.4 KiB |
BIN
static/favicon.ico
Normal file
BIN
static/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
250
static/fbos.css
Normal file
250
static/fbos.css
Normal file
@ -0,0 +1,250 @@
|
||||
/* mobile first */
|
||||
|
||||
* {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
html {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Helvetica Neue', Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;
|
||||
color: #222222;
|
||||
margin: 0;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
color: #374665;
|
||||
font-weight: normal;
|
||||
margin: 1.5em 0 0.5em;
|
||||
}
|
||||
|
||||
h1:first-child, h2:first-child, h3:first-child, h4:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
p, pre, ul {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
p {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
pre {
|
||||
border: 1px solid #ccc;
|
||||
padding: 1em;
|
||||
overflow-x: scroll;
|
||||
background: #fff;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-position: inside;
|
||||
line-height: 2em;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
color: #3b5998;
|
||||
}
|
||||
|
||||
.width {
|
||||
margin: 0 auto !important;
|
||||
padding: 0 20px !important;
|
||||
}
|
||||
|
||||
header:after, section.content:after, footer:after {
|
||||
clear: both;
|
||||
content: ".";
|
||||
display: block;
|
||||
font-size: 0;
|
||||
height: 0;
|
||||
line-height: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
header.topbar {
|
||||
background: #000;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
header.topbar h1 {
|
||||
background-image: url(facebookcode.png);
|
||||
background-size: 123px 16px;
|
||||
background-position: 0 50%;
|
||||
background-repeat: no-repeat;
|
||||
float: left;
|
||||
line-height: 60px;
|
||||
margin: 0 10px 0 0;
|
||||
overflow: hidden;
|
||||
text-indent: 100%;
|
||||
white-space: nowrap;
|
||||
width: 240px;
|
||||
}
|
||||
|
||||
header.topbar nav ul {
|
||||
float: right;
|
||||
text-align: right;
|
||||
margin: 0 0 0 10px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
header.topbar nav ul li {
|
||||
display: inline;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
header.topbar nav ul li a {
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
margin: 0 0 0 10px;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
line-height: 60px;
|
||||
}
|
||||
|
||||
header.topbar nav ul li a.active {
|
||||
color: #3b5998;
|
||||
}
|
||||
|
||||
header.hero {
|
||||
background: #374665;
|
||||
padding: 20px 0;
|
||||
}
|
||||
|
||||
header.hero hgroup h1 {
|
||||
font-size: 2em;
|
||||
font-weight: normal;
|
||||
color: #fff;
|
||||
margin: 0;
|
||||
line-height: 2em;
|
||||
}
|
||||
|
||||
header.hero hgroup a.button {
|
||||
background: #102747;
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
padding: 10px 20px;
|
||||
border-radius: 5px;
|
||||
display: inline-block;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
header.hero aside {
|
||||
display: none;
|
||||
}
|
||||
|
||||
header.hero aside * {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
section.content {
|
||||
padding: 30px 0;
|
||||
}
|
||||
|
||||
section.content article h2 {
|
||||
color: #888888;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
section.content article img {
|
||||
display: block;
|
||||
margin: 1em auto;
|
||||
}
|
||||
|
||||
section.content article blockquote {
|
||||
padding: 0px 20px;
|
||||
margin: 0 0 20px;
|
||||
border-left: 5px solid #eee;
|
||||
}
|
||||
|
||||
section.content article blockquote p {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
section.content article blockquote small:before {
|
||||
content: '\2014 \00A0';
|
||||
}
|
||||
|
||||
section.content aside .fb-like {
|
||||
top: 4px;
|
||||
left: 4px;
|
||||
}
|
||||
|
||||
footer {
|
||||
background: #000;
|
||||
padding: 10px 0;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* tabletish */
|
||||
|
||||
@media (min-width: 480px) {
|
||||
|
||||
header.topbar nav ul li a {
|
||||
font-weight: bold;
|
||||
letter-spacing: 0.1em;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* desktopish */
|
||||
|
||||
@media (min-width: 1000px) {
|
||||
|
||||
header.topbar nav ul li a {
|
||||
font-size: 15px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
.width {
|
||||
width: 960px;
|
||||
/* make columns add to <880 for 60 gutter */
|
||||
}
|
||||
|
||||
header.hero hgroup {
|
||||
float: left;
|
||||
width: 440px;
|
||||
}
|
||||
|
||||
header.hero aside {
|
||||
display: block;
|
||||
float: right;
|
||||
width: 440px;
|
||||
}
|
||||
|
||||
section.content article {
|
||||
float: left;
|
||||
width: 660px;
|
||||
}
|
||||
|
||||
section.content aside {
|
||||
float: right;
|
||||
width: 220px;
|
||||
}
|
||||
|
||||
}
|
11
static/rocksdb.css
Normal file
11
static/rocksdb.css
Normal file
@ -0,0 +1,11 @@
|
||||
@import url("fbos.css");
|
||||
|
||||
header.topbar h1 {
|
||||
background-image: url(rocksdb.png);
|
||||
background-size: 188px 55px;
|
||||
}
|
||||
|
||||
header.hero hgroup a.button {
|
||||
background: #000;
|
||||
color: #ffbe00;
|
||||
}
|
BIN
static/rocksdb.png
Normal file
BIN
static/rocksdb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
BIN
static/rocksdbhero.png
Normal file
BIN
static/rocksdbhero.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
Loading…
Reference in New Issue
Block a user