[MCOL-4061] Don't ship so many shared libraries Created: 2020-06-15  Updated: 2023-10-25  Resolved: 2023-10-25

Status: Closed
Project: MariaDB ColumnStore
Component/s: installation
Affects Version/s: None
Fix Version/s: Icebox

Type: Bug Priority: Minor
Reporter: Otto Kekäläinen Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
blocks MCOL-4057 Package ColumnStore 5.x with 10.5 ser... Closed

 Description   

ColumnStore seems to be shipping tens of libraries:

 usr/lib/x86_64-linux-gnu/libcompress.so libcompress.so
 usr/lib/x86_64-linux-gnu/libexecplan.so libexecplan.so
 usr/lib/x86_64-linux-gnu/libbrm.so libbrm.so
 usr/lib/x86_64-linux-gnu/libidbdatafile.so libidbdatafile.so
 usr/lib/x86_64-linux-gnu/libjoiner.so libjoiner.so
 usr/lib/x86_64-linux-gnu/libdmlpackage.so libdmlpackage.so
 usr/lib/x86_64-linux-gnu/libddlpackageproc.so libddlpackageproc.so
 usr/lib/x86_64-linux-gnu/liblibmysql_client.so liblibmysql_client.so
 usr/lib/x86_64-linux-gnu/libfuncexp.so libfuncexp.so
 usr/lib/x86_64-linux-gnu/libmarias3.so libmarias3.so
 usr/lib/x86_64-linux-gnu/libwriteengineclient.so libwriteengineclient.so
 usr/lib/x86_64-linux-gnu/libwriteengine.so libwriteengine.so
 usr/lib/x86_64-linux-gnu/libdmlpackageproc.so libdmlpackageproc.so
 usr/lib/x86_64-linux-gnu/libalarmmanager.so libalarmmanager.so
 usr/lib/x86_64-linux-gnu/libconfigcpp.so libconfigcpp.so
 usr/lib/x86_64-linux-gnu/libddlpackage.so libddlpackage.so
 usr/lib/x86_64-linux-gnu/libstoragemanager.so libstoragemanager.so
 usr/lib/x86_64-linux-gnu/libbatchloader.so libbatchloader.so
 usr/lib/x86_64-linux-gnu/librowgroup.so librowgroup.so
 usr/lib/x86_64-linux-gnu/libthreadpool.so libthreadpool.so
 usr/lib/x86_64-linux-gnu/libwindowfunction.so libwindowfunction.so
 usr/lib/x86_64-linux-gnu/libdataconvert.so libdataconvert.so
 usr/lib/x86_64-linux-gnu/libudfsdk.so libudfsdk.so
 usr/lib/x86_64-linux-gnu/libddlcleanuputil.so libddlcleanuputil.so
 usr/lib/x86_64-linux-gnu/librwlock.so librwlock.so
 usr/lib/x86_64-linux-gnu/liboamcpp.so liboamcpp.so
 usr/lib/x86_64-linux-gnu/libquerytele.so libquerytele.so
 usr/lib/x86_64-linux-gnu/libcommon.so libcommon.so
 usr/lib/x86_64-linux-gnu/libloggingcpp.so libloggingcpp.so
 usr/lib/x86_64-linux-gnu/libjoblist.so libjoblist.so
 usr/lib/x86_64-linux-gnu/libmessageqcpp.so libmessageqcpp.so
 usr/lib/x86_64-linux-gnu/libregr.so libregr.so
 usr/lib/x86_64-linux-gnu/libcacheutils.so libcacheutils.so
 usr/lib/x86_64-linux-gnu/libquerystats.so libquerystats.so
 usr/lib/x86_64-linux-gnu/libwriteengineredistribute.so libwriteengineredistribute.so
 usr/lib/x86_64-linux-gnu/libcloudio.so libcloudio.so
 usr/lib/x86_64-linux-gnu/libthrift.so libthrift.so

Are these all needed? Why not just ship one columnstore.so? Each one of these will need management, versioning, ABI backwards compatibility checking, upgrade testing etc.

Also, some of these libs seem to be external ones like `libthrift.so`. Why are you building libthrift and not just depend on the system libthrift? This will conflict with system libthrift and cause issues later on.



 Comments   
Comment by Roman [ 2020-06-15 ]

In most cases these are pieces of the code produced in many different places that needed somewhere else. We have plans to unwind this but it will take time.
Libthrift will be removed.

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