OpenMLDB VS libpmemobj-cpp

Compare OpenMLDB vs libpmemobj-cpp and see what are their differences.

OpenMLDB

OpenMLDB is an open-source machine learning database that provides a feature platform computing consistent features for training and inference. (by 4paradigm)

libpmemobj-cpp

C++ bindings & containers for libpmemobj (by pmem)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
OpenMLDB libpmemobj-cpp
9 4
1,545 107
2.0% -
9.6 4.9
1 day ago about 1 year ago
C++ C++
Apache License 2.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

OpenMLDB

Posts with mentions or reviews of OpenMLDB. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-20.

libpmemobj-cpp

Posts with mentions or reviews of libpmemobj-cpp. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-07-17.
  • UltraRAM: 'Universal Memory' That Brings RAM-Like Speed to Non-Volatile Storage
    1 project | news.ycombinator.com | 12 Jan 2022
    Another comment already mentions this, but I guess a functional data structure would be easiest to maintain, even though there's stuff like this for PMEM such that any data structure would work essentially: https://pmem.io/

    This[1] Open Source data store I'm maintaining is storing a huge tree of tries eventually on durable storage, but it's essentially a huge persistent index stored in an append-only file. The last layer of "indirect index pages" stores list of pointers to page fragments, which store the actual records (the list however is bound to a predefinded size). A single read-write trx per resource syncs the new page fragments, which mainly only include the updated or new records plus the paths to the root page to a durable device during a postorder traversal of the in-memory log. The last thing is an atomic update, which sets a new offset to point to the new UberPage, the root of the storage. All pages are only word aligned except for RevisionRootPages, which are aligned to a multiple of 256 bytes. All pages are compressed and might in the future optionally be encrypted.

    I guess these byte addressable persistent memory devices are an ideal fit for small sized parallel random reads of potentially tiny page fragments to reconstruct a full page in-memory.

    However, I hope they'll eventually achieve a better price in comparison to DRAM and SSDs than Intel Optane DC PMEM current price range.

    [1] https://github.com/sirixdb/sirix

  • ELI5: what is pmem?
    1 project | /r/explainlikeimfive | 14 Nov 2021
    Yes it is persistent memory programming. https://pmem.io/
  • Languages experimented with distributed heap support?
    2 projects | /r/ProgrammingLanguages | 17 Jul 2021
    Predating Intel's persistent memory a.k.a. NVDIMM, I see a research product "Hotpot" on its practical application as distributed shared memory ( paper and source code ), despite the hardware adoption issue and its apparent research nature (stuck with customized 3.x Linux kernel), I find the core idea not so bound to such a whole new technology stack, covering from low level device driver to application programming toolkit, even depending on sth like 40Gbps RDMA with InfiniBand SAN connection.
  • Can't figure out how to link C++ library installed with apt-get
    1 project | /r/AskProgramming | 23 Dec 2020
    It's more work but it looks like you can get the C++ bindings off their github and use them directly. You may have to experiment with different releases to find one compatible with whatever version of the base library you have installed.

What are some alternatives?

When comparing OpenMLDB and libpmemobj-cpp you can also consider the following projects:

Open3D - Open3D: A Modern Library for 3D Data Processing

Hotpot - Distributed Shared Persistent Memory. SoCC 2017

psychec - A compiler frontend for the C programming language

pmdk - Persistent Memory Development Kit

feathr - Feathr – A scalable, unified data and AI engineering platform for enterprise

feast - Feature Store for Machine Learning

featureform - The Virtual Feature Store. Turn your existing data infrastructure into a feature store.

MNN - MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba

simdjson - Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks

citra - A Nintendo 3DS Emulator

bytehub - ByteHub: making feature stores simple

hopsworks - Hopsworks - Data-Intensive AI platform with a Feature Store