• Stars
    star
    553
  • Rank 80,462 (Top 2 %)
  • Language
    C++
  • License
    GNU Affero Genera...
  • Created over 11 years ago
  • Updated almost 2 years ago

Reviews

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

Repository Details

PerconaFT is a high-performance, transactional key-value store

PerconaFT

PerconaFT is a high-performance, transactional key-value store, used in the TokuDB storage engine for Percona Server and MySQL, and in TokuMX, the high-performance MongoDB distribution.

PerconaFT is provided as a shared library with an interface similar to Berkeley DB.

To build the full MySQL product, see the instructions for Percona/percona-server. This document covers PerconaFT only.

Building

PerconaFT is built using CMake >= 2.8.9. Out-of-source builds are recommended. You need a C++11 compiler, though only some versions of GCC >= 4.7 and Clang are tested. You also need zlib development packages (yum install zlib-devel or apt-get install zlib1g-dev).

You will also need the source code for jemalloc, checked out in third_party/.

git clone git://github.com/Percona/PerconaFT.git percona-ft
cd percona-ft
git clone git://github.com/Percona/jemalloc.git third_party/jemalloc
mkdir build
cd build
CC=gcc47 CXX=g++47 cmake \
    -D CMAKE_BUILD_TYPE=Debug \
    -D BUILD_TESTING=OFF \
    -D USE_VALGRIND=OFF \
    -D CMAKE_INSTALL_PREFIX=../prefix/ \
    ..
cmake --build . --target install

This will build libft.so and libtokuportability.so and install it, some header files, and some examples to percona-ft/prefix/. It will also build jemalloc and install it alongside these libraries, you should link to that if you are planning to run benchmarks or in production.

Platforms

PerconaFT is supported on 64-bit Centos, Debian, and Ubuntu and should work on other 64-bit linux distributions, and may work on OSX 10.8 and FreeBSD. PerconaFT is not supported on 32-bit systems.

Transparent hugepages is a feature in newer linux kernel versions that causes problems for the memory usage tracking calculations in PerconaFT and can lead to memory overcommit. If you have this feature enabled, PerconaFT will not start, and you should turn it off. If you want to run with transparent hugepages on, you can set an environment variable TOKU_HUGE_PAGES_OK=1, but only do this for testing, and only with a small cache size.

Testing

PerconaFT uses CTest for testing. The CDash testing dashboard is not currently public, but you can run the tests without submitting them.

There are some large data files not stored in the git repository, that will be made available soon. For now, the tests that use these files will not run.

In the build directory from above:

cmake -D BUILD_TESTING=ON ..
ctest -D ExperimentalStart \
      -D ExperimentalConfigure \
      -D ExperimentalBuild \
      -D ExperimentalTest

Contributing

Please report bugs in PerconaFT to the issue tracker.

We have two publicly accessible mailing lists for TokuDB:

All source code and test contributions must be provided under a BSD 2-Clause license. For any small change set, the license text may be contained within the commit comment and the pull request. For larger contributions, the license must be presented in a COPYING.<feature_name> file in the root of the PerconaFT project. Please see the BSD 2-Clause license template for the content of the license text.

License

Portions of the PerconaFT library (the 'locktree' and 'omt') are available under the Apache version 2 license. PerconaFT is available under the GPL version 2, and AGPL version 3. See COPYING.APACHEv2, COPYING.AGPLv3, COPYING.GPLv2, and PATENTS.

More Repositories

1

grafana-dashboards

PMM dashboards for database monitoring
JavaScript
2,656
star
2

percona-xtrabackup

Open source hot backup tool for InnoDB and XtraDB databases
C++
1,159
star
3

mongodb_exporter

A Prometheus exporter for MongoDB including sharding, replication and storage engines
Go
1,146
star
4

percona-server

Percona Server
C++
1,127
star
5

percona-toolkit

Percona Toolkit: a collection of advanced open source command-line tools.
Perl
878
star
6

tokudb-engine

Percona TokuDB is a high-performance, write optimized, compressing, transactional storage engine for Percona Server. Issue tracker: https://tokutek.atlassian.net/browse/DB/ Wiki: https://github.com/Percona/tokudb-engine/wiki Downloads:
C++
649
star
7

pmm

Percona Monitoring and Management: an open source database monitoring, observability and management tool
Go
587
star
8

percona-xtradb-cluster-operator

Percona Operator for MySQL based on Percona XtraDB Cluster
Go
520
star
9

pg_stat_monitor

Query Performance Monitoring Tool for PostgreSQL
Perl
454
star
10

percona-xtradb-cluster

A High Scalability Solution for MySQL Clustering and High Availability
C++
340
star
11

percona-server-mongodb-operator

Percona Operator for MongoDB
Go
326
star
12

percona-docker

Collection of Dockerfiles for Percona software. See individual directories for more details.
Shell
295
star
13

percona-postgresql-operator

Percona Operator for PostgreSQL
Go
272
star
14

percona-backup-mongodb

Percona Backup for MongoDB
Go
265
star
15

go-mysql

Go packages for MySQL
Go
231
star
16

pmm-server

PMM Server
186
star
17

proxysql-admin-tool

ProxySQL Admin
Shell
143
star
18

percona-server-mysql-operator

Percona Operator for MySQL
Go
136
star
19

percona-monitoring-plugins

Percona Monitoring Plugins
PHP
134
star
20

percona-helm-charts

Collection of Helm charts for Percona Kubernetes Operators.
Mustache
118
star
21

pg_tde

Transparent Data Encryption for PostgreSQL
C
112
star
22

proxysql_exporter

Prometheus exporter for ProxySQL performance data.
Go
105
star
23

everest

Percona Everest is a cloud-native database platform to deploy and manage enterprise-grade PostgreSQL, MongoDB and MySQL database clusters.
TypeScript
100
star
24

xtradb-cluster-tutorial

PXC Tutorial (Deprecated)
Ruby
77
star
25

pmm-client

PMM Client for 1.x
Go
65
star
26

pmm-doc

Percona Monitoring and Management (PMM) Technical Documentation
HTML
41
star
27

Percona-TokuBackup

C++
39
star
28

pmm-managed

pmm-managed manages configuration of PMM server components and exposes API for that.
Go
36
star
29

tokudb-backup-plugin

Percona TokuBackup -- moved to Percona Server, but this is kept for the commit history
C++
36
star
30

pmm-agent

pmm-agent for PMM 2.x.
Go
35
star
31

everest-operator

Percona Everest Operator
Go
30
star
32

orchestrator

Go
30
star
33

awesome-pmm

A curated list of awesome Percona Monitoring and Management (PMM) free and opensource software, libraries and resources.
29
star
34

jemalloc

C
26
star
35

everest-doc

Everest Doc
HTML
25
star
36

community

Percona Community repository. Join us on Percona.community and the Percona Forums at forums.percona.com.
HTML
23
star
37

qan-agent

Query Analytics Agent for PMM
Go
22
star
38

promconfig

Go package for Prometheus configuration file parsing and generation without dependencies.
Go
22
star
39

sysbench-scripts

Lua
21
star
40

support-snippets

Snippets Collections from support
Shell
20
star
41

psmdb-docs

Percona Server for MongoDB documentation
HTML
20
star
42

grafana-app

Percona app for Grafana
JavaScript
19
star
43

percona-everest-backend

Go
17
star
44

psmysql-docs

Percona Server for MySQL
HTML
17
star
45

qan-api

Query Analytics API for PMM 1.x
Go
16
star
46

pxc_scheduler_handler

Go
14
star
47

innodb-data-recovery-tool-docs

Documentation for innodb-data-recovery-tool
Python
13
star
48

training

(Deprecated) Repository for publicly available training resources. Please access the public materials using our website.
13
star
49

qan-app

Query Analytics Web App for PMM
TypeScript
12
star
50

mongodb-orchestration-tools

Golang tools for MongoDB container orchestration
Go
12
star
51

percona-repositories

RPM and DEB files for Percona repositories
Shell
11
star
52

pmm-admin

pmm-admin for PMM 2.x.
Go
11
star
53

go-pool

A simple, persistent resource pool
Go
11
star
54

pxc-docs

Percona XtraDB Cluster
HTML
11
star
55

postgresql-docs

Percona Distribution for PostgreSQL
HTML
11
star
56

qan-api2

qan-api for PMM 2.x.
Go
11
star
57

pxb-docs

Percona XtraBackup for MySQL
HTML
10
star
58

pmm-qa

PMM Quality Assurance
Shell
10
star
59

pmgo

Interfaces for mgo's structures
Go
10
star
60

backup-community

C
10
star
61

pmm-infra

Infrastructure as code for PMM (build and demo)
HCL
10
star
62

roadmap

Public Percona Roadmaps
10
star
63

k8spsmdb-docs

Percona Operator for MongoDB Documentation
HTML
9
star
64

proxysql-packaging

packaging for proxysql
Shell
8
star
65

openstack_ansible

Python
8
star
66

percona-everest-frontend

TypeScript
8
star
67

dbaas-operator

k8s Operator for PMM DBaaS
Go
7
star
68

postgres-packaging

Shell
6
star
69

k8spxc-docs

Documentation for Percona Operator for MySQL based on Percona XtraDB Cluster
HTML
6
star
70

percona-everest-cli

Go
6
star
71

tokudb-percona-server-5.6

TokuDB tests for Percona Server 5.6
Shell
6
star
72

pbm-docs

HTML
6
star
73

documentation

Percona documentation repository
Python
6
star
74

ab

Benchmark tools
Shell
5
star
75

tex-templates

Tex templates for presentation slides and more
TeX
5
star
76

pgsm-docs

pg_stat_monitor for PostgreSQL
HTML
5
star
77

k8spg-docs

Percona Operator for PostgreSQL Documentation
HTML
5
star
78

tokudb-docs

Percona TokuDB documentation
Python
5
star
79

pdmysql-docs

Percona Distribution for MySQL documentation
HTML
5
star
80

exporter_shared

Shared code for Percona Prometheus exporters
Go
4
star
81

pmm-dump

Export metrics or QAN data from or import them to PMM
Go
4
star
82

pmm-demo

Benchmark and sysload generators for pmmdemo.percona.com.
Shell
4
star
83

distmongo-docs

CSS
4
star
84

training-aws

PHP
4
star
85

dbaas-api

Makefile
4
star
86

proxysql-admin-tool-doc

HTML
3
star
87

replication-manager

Shell
3
star
88

debian-percona-xtradb-cluster-5.6

Repo for debian/ubuntu inclusion
C++
3
star
89

training-mymovies

Percona's My-Movies and Scoreboard application for use in Percona training classrooms.
PHP
3
star
90

jenkins-docker-images

Shell
3
star
91

pmm-update

PMM Update is a tool for updating packages and OS configuration for Percona Monitoring and Management Server.
Go
3
star
92

pmm-ui-tests

PMM UI end-to-end tests
JavaScript
3
star
93

sysbench-packaging

Packaging scripts for sysbench
Shell
3
star
94

saas

Platform (SaaS) public API definitions
Go
3
star
95

debian-percona-server-5.6

Repo for debian/ubuntu inclusion
C++
3
star
96

pid-watchdog

pid-watchdog is a free open source utility for managing and monitoring processes on a UNIX system. pid-watchdog conducts automatic maintenance and repair and can execute meaningful causal actions in error situations. Golang analog of http://mmonit.com/monit/ proccess scheduler. Can be used as PID 1 in docker.
Shell
3
star
97

tokumx-docs

Percona TokuMX documentation
Python
3
star
98

repo-config-docs

HTML
3
star
99

cloud-tools

PCT documentation
2
star
100

everest-catalog

Go
2
star