[MDEV-10966] Packaging for MariaRocks Created: 2016-10-06  Updated: 2017-05-22  Resolved: 2017-05-22

Status: Closed
Project: MariaDB Server
Component/s: Packaging, Storage Engine - RocksDB
Fix Version/s: 10.2.5

Type: Task Priority: Major
Reporter: Sergei Petrunia Assignee: Vicențiu Ciorbaru
Resolution: Fixed Votes: 2
Labels: None

Issue Links:
PartOf
includes MDEV-11901 MariaDB Rocks on Windows Closed
includes MDEV-12196 MariaRocks: compile failure on Windows Closed
is part of MDEV-9658 Make MyRocks in MariaDB stable Closed
Sub-Tasks:
Key
Summary
Type
Status
Assignee
MDEV-11837 MariaRocks Packaging Issues Technical task Closed VicenČ›iu Ciorbaru  
Sprint: 5.5.54, 10.2.4-1, 10.2.4-2

 Description   

This is about packaging MyRocks storage engine.

Build steps for the Facebook tree: https://github.com/facebook/mysql-5.6/wiki/Build-Steps

Compiling

  • RocksDB requires a recent C++ compiler, more recent than some MariaDB platforms have.
  • It's the same with TokuDB, so we can borrow its CMake code for checking compiler version.

Dependencies

RocksDB depends on compression libraries:

  • zlip
  • snappy
  • ....
  • zstandard (new addition)

Ubuntu 16.0.4 Xenial LTS has packages for all libraries.
Other versions support a subset.

What to build

MariaRocks must be a loadable module (don't link statically).

Other

Facebook builds RocksDB with Jemalloc (we build Toku with Jemalloc, too)



 Comments   
Comment by Sergei Petrunia [ 2017-01-02 ]

Another thing to check: https://github.com/facebook/mysql-5.6/commit/e804f86b203bb9384740e1fe92796dada6f865c9 .

MyRocks makes use of STL's Regex library. Apparently, regex support is present but broken in GCC 4.8.

Comment by Sergei Petrunia [ 2017-01-02 ]

Yet another thing to fix: I've added this into ha_rocksdb.h :

#include "../storage/xtradb/include/ut0counter.h"
/*
  'EMPTY' from field.h conflicts with EMPTY from
  /usr/include/x86_64-linux-gnu/bits/utmpx.h
  MARIAROCKS_NOT_YET: Sort out #include order so that we don't have to resort 
  to #undef
*/
#undef EMPTY

A better solution would be to get the #include order right.

Comment by Sergei Petrunia [ 2017-01-02 ]

If one looks here https://github.com/MariaDB/server/commits/10.2-mariarocks, one can see that Travis-CI succeeds in compiling MyRocks.

Comment by Sergei Petrunia [ 2017-01-11 ]

I've got buildbot to build the current code
http://buildbot.askmonty.org/buildbot/grid?category=main&branch=bb-10.2-mariarocks

Unfortunately, no builder seems to be able to build it. The builders

  • have old version gcc
  • build from source tarball, which does not include rocksdb so they just dont build it
  • using windows and having some issue with get_rocksdb_files.sh
  • ...

This MDEV needs some attention.

Comment by Sergei Petrunia [ 2017-01-12 ]

Actually, kvm-deb-trusty-amd64 has a recent gcc and builds from git. It builds MyRocks SE and runs tests for it. Some tests pass, some (predictably) fail.

Generated at Thu Feb 08 07:46:17 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.