[MCOL-294] Fix jemalloc implementation Created: 2016-09-13  Updated: 2017-12-01  Resolved: 2016-10-25

Status: Closed
Project: MariaDB ColumnStore
Component/s: Build
Affects Version/s: 1.0.2
Fix Version/s: 1.0.4

Type: New Feature Priority: Critical
Reporter: Andrew Hutchings (Inactive) Assignee: Ben Thompson (Inactive)
Resolution: Fixed Votes: 1
Labels: None

Issue Links:
PartOf
is part of MCOL-280 Beta issues Closed
Sprint: 2016-19, 2016-20, 2016-21

 Description   

We should do the following:

1. Update the jemalloc directory to have the source of the latest version (remove the tarball and .so file from there)
2. Update the build scripts to link jemalloc against all the binaries to replace the default allocator

This should improve some of the performance issues we have seen with 1.0.2 onwards.



 Comments   
Comment by Andrew Hutchings (Inactive) [ 2016-09-14 ]

This will be in 2 phases:

  1. Make it work exactly as before, using the old jemalloc during install and LD_PRELOAD
  1. Use a newer jemalloc and link everything to it at compile time

Phase 1 will be in 1.0.3, Phase 2 in 1.0.4

Comment by Andrew Hutchings (Inactive) [ 2016-09-14 ]

Phase 1 is complete and in the tree. Keeping this open to work on Phase 2.

Comment by Andrew Hutchings (Inactive) [ 2016-09-14 ]

Phase 2 available at: https://github.com/LinuxJedi/mariadb-columnstore-engine/tree/MCOL-294-phase2

It will be turned into a pull request once the window opens for 1.0.4.

This uses the OS's jemalloc installation in the same way MariaDB does and links all the ColumnStore binaries against it. If jemalloc is not found CMake will fire a warning and continue without it.

For RHEL/CentOS we should use jemalloc from EPEL and update our build scripts and documentation accordingly.

Comment by Andrew Hutchings (Inactive) [ 2016-09-14 ]

TODO: alterations to RPM spec file for phase2. These will conflict with other alterations currently going on for MCOL-292 so I'll wait until that is merged first.

Comment by Andrew Hutchings (Inactive) [ 2016-09-23 ]

Patch works similar to MariaDB. It will compile-in jemalloc if it is found in the OS. Otherwise it will use the standard malloc.

The patch also fixes a namespace issue with one of David Hall's patches which broke the build on my machine

Comment by Daniel Lee (Inactive) [ 2016-10-07 ]

Performance in 1.0.4 has been restored back to 1.0.1.

I need someone to review the ticket from a programming practice point of view.

Comment by David Hall (Inactive) [ 2016-10-13 ]

This is all cmake stuff. Ben is a better reviewer.

Comment by Ben Thompson (Inactive) [ 2016-10-25 ]

Review was completed when merged to develop branch, must have missed the MCOL review.

Generated at Thu Feb 08 02:19:58 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.