• This repository has been archived on 25/Jun/2019
  • Stars
    star
    355
  • Rank 119,748 (Top 3 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created about 10 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A fast key/value store that is efficient for high-volume random access reads and writes.

Indeed LSM Tree

About

Indeed LSM Tree is a fast key/value store that is efficient for high-volume random access reads and writes.

Indeed uses it for many applications including serving job data for 100s of millions of job searches each day.

Indeed LSM Tree is composed of three parts:

  1. lsmtree-core is an implementation of a log-structured merge-tree.
  2. recordlog is a library for writing data to append-only record logs optimized for replication.
  3. recordcache provides abstractions around writing record logs, building LSM trees, and performing LSM tree lookups.

A typical use case is requiring a key/value store replicated on multiple servers. Instead of replicating the store itself, we store writes in record logs which are slaved to each server. Each server then builds its own LSM tree from the record logs.

Benchmarks

10,000,000 operations using 8 byte keys and 96 byte values

Random writes:

Software Time
Indeed LSM Tree 272 seconds
Google LevelDB 375 seconds
Kyoto Cabinet B-Tree 375 seconds

Random Reads:

Software Time
Indeed LSM Tree 46 seconds
Google LevelDB 80 seconds
Kyoto Cabinet B-Tree 183 seconds

Same benchmark using cgroups to limit page cache to 512 MB

Random Reads:

Software Time
Indeed LSM Tree 454 seconds
Google LevelDB 464 seconds
Kyoto Cabinet B-Tree 50 hours

More Repositories

1

iwf

iWF is a WorkflowAsCode microservice orchestration platform offering an orchestration coding framework and service for building resilient, fault-tolerant, scalable long-running processes
Go
530
star
2

proctor

Proctor is a Java-based A/B testing framework developed by, and used heavily within, Indeed.
Java
465
star
3

util

Useful Java utilities
Java
149
star
4

imhotep

Imhotep is a large-scale analytics platform built by Indeed.
Java
141
star
5

mph-table

Immutable key/value store with efficient space utilization and fast reads. They are ideal for the use-case of tables built by batch processes and shipped to multiple servers.
Java
96
star
6

FOSS-Contributor-Fund

This document outlines the processes we use to manage our FOSS Contributor Fund initiative at Indeed.
71
star
7

harbor-container-webhook

mutating webhook which rewrites container images to use a Harbor proxy cache
Go
71
star
8

anomaly-detection

Python
61
star
9

starfish

Run your own FOSS Contributor Fund - use Starfish to find eligible voters
JavaScript
57
star
10

fibtest

C
56
star
11

vowpal-wabbit-java

Vowpal wabbit java wrapper and a friendly API for it
Java
50
star
12

rabbitmq-operator

A Kubernetes Operator for RabbitMQ
Java
47
star
13

django-ptrack

Tracking pixel library for Django
Python
40
star
14

proctor-demo

Reference implementation that demonstrates core Proctor functionality
Java
33
star
15

react-singleton-context

JavaScript
32
star
16

libsql

Use libsql to write unit-testable and safer SQL code in Go
Go
26
star
17

status

Java
24
star
18

Mariner-Issue-Collector

Mariner Issue Collector helps you identify freshly opened issues across all open source projects you care about. Use Mariner to help you identify contribution opportunities in your open source dependencies!
JavaScript
24
star
19

proctor-webapp

Proctor-webapp is a web application for managing Proctor A/B test definitions.
17
star
20

django-proctor

Python
15
star
21

Mariner

A node.js library for analyzing open source library dependencies
TypeScript
14
star
22

proctor-pipet

Proctor-pipet provides a remote service with a simple REST API for determining A/B test group assignments.
Java
14
star
23

iwf-golang-sdk

Golang SDK for iWF engine
Go
13
star
24

iwf-java-sdk

Java SDK for iwf workflow engine(simple & powerful workflow as code engine based on Cadence/Temporal)
Java
12
star
25

iwf-golang-samples

samples for iWF-Golang-SDK
Go
11
star
26

iql

Web interface for making IQL queries against an Imhotep cluster
Java
11
star
27

go-groups

Command go-groups is a CLI tool to parse go import blocks, sort, and re-group the imports
Go
8
star
28

cluster-preset

A Kubernetes Admission Controller that injects PodPresets into pods across all namespaces
Go
7
star
29

libhealth

flexible Golang healthchecking components
Go
7
star
30

iwf-java-samples

samples for iwf-java SDK
Java
6
star
31

proctor-webapp-library

Java
5
star
32

imhotep-builder-jira

Builder for Imhotep that turns actions in a JIRA instance (create, update, comment) into an Imhotep dataset
Java
5
star
33

react-link-to-inbox

JavaScript
4
star
34

go-opine

go-opine is an opinionated tool to enforce minimum code coverage requirements for go projects, and supports writing coverage reports in junit xml or cobertura formats.
Go
4
star
35

iwf-idl

interface definition between iwf SDKs and iwf server
3
star
36

iwf-ts-sdk

A typescript SDK for iWF
TypeScript
3
star
37

hacktoberfest

Learn about Indeed's participation in Hacktoberfest, as well as tools we use to participate.
3
star
38

imhotep-cloudformation

Cloudformation scripts and other helper scripts for spinning up an Imhotep cluster in AWS
Python
3
star
39

sourcing-platform-nodejs-client-credentials

A NodeJS Express sample application that uses the Sourcing Platform API. It includes a candidate filter form to search for matching candidates. This app uses the client credentials (2-legged) OAuth grant type.
JavaScript
3
star
40

iwf-python-sdk

Python SDK for iWF
Python
3
star
41

imhotep-tsv-converter

Tool to convert TSV files into Flamdex indexes for Imhotep
Java
3
star
42

libtime

Package libtime is a library which provides common time operations
Go
3
star
43

iupload

TSV uploader webapp for an Imhotep cluster
Java
2
star
44

oss-guide

2
star
45

iwf-python-samples

samples for iWF Python SDK
Python
2
star
46

iwf-java-code-snippets

Mini Java code snippets for iWF.
Java
2
star
47

libemail

Go
2
star
48

virgil-spring-boot-starter

Java
2
star
49

common-parent-pom

Parent to both OSS and internal Indeed software
1
star
50

proctor-sample-matrix

A sample set of Proctor test definition files and a Maven pom.xml that demonstrates how to use the Maven plugin's generator to build them into a single JSON test matrix file
1
star
51

joda-time

joda-time 2.0 with patch for Java 8
Java
1
star
52

oss-parent-pom

1
star
53

innersource-doc-templates

Innersource Documentation Templates
1
star
54

imhotep-docker

Docker images and docker-compose for evaluating full Imhotep stack
Shell
1
star
55

charm

CHARM is a very old code base that handled automating release assembly using Subversion branches. Archiving and leaving here for posterity only.
Java
1
star
56

sponsored-jobs-nodejs-auth-code

A NodeJS Express sample application for employers who are using your ATS to create new sponsored jobs campaigns.
JavaScript
1
star