Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Storage Engine for block and key/value stores.

License

NotificationsYou must be signed in to change notification settings

szmyd/HomeStore

 
 

Repository files navigation

Conan BuildCodeCov

Homestore is a genericStorageEngine upon which differentStorageSolutions can be built. These Solutions can modelBlock, K/V, Object or DatabaseStorageInterfaces.

The architecture is tuned towards modern storage devices and systems programming leveraging the "run to completion"model provided byIOManager to achieve "light-speed" performance. Homestore has apluggable model throughout making it easy to extend the functionality, tuned to specific use cases or data patterns.

A reference ObjectStorageSolution can be found inHomeObject.

Building Blocks

Several building blocks are provided by Homestore that should satisfy the majority cases for any given storagesolution. Each "service" provides a crash-resilient and persistent form of familiar data structures.

MetaSvc (std::map)

K/V store that avoidstorn pages. Used to store state information (e.g. Superblocks) which re-initialize applicationstate after reboot.

IndexSvc (std::unordered_map)

A B+Tree used to optimize forFAST Reads. Value is typically the result of allocation from the ReplicationSvc.

ReplicationSvc

An abstraction on DataSvc that replicates between application instances.

DataSvc (new/delete)

Free flat-allocation space. Hooks are provided if a particular allocation pattern (e.g. Heap) is desirable.

LogSvc (std::list)

Random Access circular buffer. Typically not used directly but levaraged by other Services to provide crash-resiliency.

Application Diagram

HomeObject Overview

Building

System Pre-requisites

  • CMake 3.13 or later
  • conan 1.x (pipx install conan~=1)
  • libaio-dev (assuming Ubuntu)
  • uuid-dev (assuming Ubuntu)

Dependencies

  • SISL
$ git clone https://github.com/eBay/sisl$ cd sisl & ./prepare.sh && conan export . oss/master
  • IOManager
$ git clone https://github.com/eBay/iomanager$ cd iomanager & ./prepare.sh && conan export . oss/master

Compilation

$ mkdir build$ cd build# Install all dependencies$ conan install ..# if it is the first time for building and some errors happens when installing dependencies,# please try to build all dependencies by yourself$ conan install -u -b missing ..# Build the libhomestore.a$ conan build ..

Contributing to This Project

We welcome contributions. If you find any bugs, potential flaws and edge cases, improvements, new feature suggestions ordiscussions, please submit issues or pull requests.

ContactHarihara Kadayam

License Information

Copyright 2021 eBay Inc.

Primary Author:Harihara Kadayam,Rishabh Mittal

Primary Developers:Harihara Kadayam,Yaming Kuang,Brian Szmyd,Rishabh Mittal

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with theLicense. You may obtain a copy of the License athttps://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITHomeStore OF ANY KIND, either express or implied. See the License for thespecific language governing permissions and limitations under the License.

About

Storage Engine for block and key/value stores.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++94.8%
  • Python3.0%
  • CMake1.9%
  • Other0.3%

[8]ページ先頭

©2009-2025 Movatter.jp