{"id":18886393,"url":"https://github.com/pmem/pmse","last_synced_at":"2025-04-14T21:31:06.170Z","repository":{"id":54246684,"uuid":"70632216","full_name":"pmem/pmse","owner":"pmem","description":"Persistent Memory Storage Engine","archived":false,"fork":false,"pushed_at":"2021-03-01T19:55:45.000Z","size":441,"stargazers_count":24,"open_issues_count":22,"forks_count":19,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-04-28T02:42:33.379Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pmem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-11T20:24:41.000Z","updated_at":"2023-08-07T18:07:55.000Z","dependencies_parsed_at":"2022-08-13T10:00:17.829Z","dependency_job_id":null,"html_url":"https://github.com/pmem/pmse","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmem%2Fpmse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmem%2Fpmse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmem%2Fpmse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmem%2Fpmse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pmem","download_url":"https://codeload.github.com/pmem/pmse/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223647068,"owners_count":17179206,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T07:27:12.490Z","updated_at":"2024-11-08T07:27:13.166Z","avatar_url":"https://github.com/pmem.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PROJECT NOT UNDER ACTIVE MANAGEMENT #  \nThis project will no longer be maintained by Intel.  \nIntel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.  \nIntel no longer accepts patches to this project.  \n If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.  \n  \n# PMSE - Persistent Memory Storage Engine for MongoDB\n\n## What is PMSE?\nPersistent Memory Storage Engine is fully compatible with NVDIMM’s alternative storage engine for MongoDB, that empower optimal usage of persistent memory. Storage engine doesn’t do any snapshots or journaling, everything is immediately stored as persistent. \n\n## Dependencies\n-\t[Persistent Memory Development Kit (PMDK)](https://github.com/pmem/pmdk)\n-\t[C++ Bindings for PMDK library](https://github.com/pmem/libpmemobj-cpp)\n-\t[MongoDB](https://github.com/mongodb/mongo)\n\n## Building\nOur engine is compatible with MongoDB 3.5.13, so please checkout to proper tag: **git checkout r3.5.13**\nBe sure you have satisfied all dependencies for MongoDB and PMSE, especially PIP requirements and PMDK.\nFirst, try to compile MongoDB using this: https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source \nTo use PMSE module with MongoDB, in the mongo repository directory do the following:\n```\ncd ~/mongo\ngit checkout r3.5.13 -b r3.5.13\npip2 install -r buildscripts/requirements.txt\nmkdir -p src/mongo/db/modules/\nln -sf ~/pmse src/mongo/db/modules/pmse\n```\nThen you can compile:\n```\nscons LIBPATH=path_to_pmdk_libraries --dbg=off --opt=on core\n```\nor when you have troubles with compilation:\n```\npython2 buildscripts/scons.py LIBPATH=path_to_pmdk_libraries -j $(nproc --all) core --disable-warnings-as-errors --dbg=off --opt=on\n```\nSome operating systems have newer version of GCC so you shoud use GCC-5, for this purpose use CC and CXX flags for scons:\n```\nscons CC=gcc-5 CXX=g++-5 LIBPATH=/usr/local/lib --dbg=off --opt=on core\n```\n\nTypical library path for PMDK is /usr/local/lib/ or /usr/local/lib64/ and it depends on system you use.\nSometimes (e.g. Fedora) you need to specify PKG_CONFIG_PATH to PMDK libraries before libpmemobj-cpp compilation.\n\nTo clean after building:\n```\nscons –c\n```\n\n## Tips for building\nTo speed up build time with **–j** option and number of threads, behavior is the same as make.\nAlso user can specify what need to build, typical configuration need only core features to run server and client, possible are: **core**, **all**, **unittests**.\n\n## Server running\nThe last thing you need is to replace the path to persistent memory or DAX device:\n```\n./mongod --storageEngine=pmse --dbpath=/path/to/pm_device\n```\n\n## Benchmarking\nIf you want to do some benchmarks just go to the utils folder and read README.md file.\n\n## Authors\n-\tAdrian Nidzgorski\n-\tJakub Schmiegel\n-\tKrzysztof Filipek\n-\tMaciej Maciejewski\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmem%2Fpmse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpmem%2Fpmse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmem%2Fpmse/lists"}