- Notifications
You must be signed in to change notification settings - Fork0
Storage Engine for block and key/value stores.
License
koujl/HomeStore
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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.
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.
K/V store that avoidstorn pages. Used to store state information (e.g. Superblocks) which re-initialize applicationstate after reboot.
A B+Tree used to optimize forFAST Reads. Value is typically the result of allocation from the ReplicationSvc.
An abstraction on DataSvc that replicates between application instances.
Free flat-allocation space. Hooks are provided if a particular allocation pattern (e.g. Heap) is desirable.
Random Access circular buffer. Typically not used directly but levaraged by other Services to provide crash-resiliency.
- CMake 3.13 or later
- conan 1.x (
pipx install conan~=1
) - libaio-dev (assuming Ubuntu)
- uuid-dev (assuming Ubuntu)
- 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
$ 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 ..
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
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.