Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
dfd5d1d
Benchmark mstress:
mikeov Feb 23, 2025
31d16d1
Benchmark mstress:
mikeov Feb 23, 2025
d7aebe3
QFS java shim:
mikeov Apr 29, 2025
ff898ed
M stress:
mikeov Apr 29, 2025
d8ca1a5
Java shim:
mikeov Apr 29, 2025
b3c4766
Java shim:
mikeov Apr 30, 2025
e480e7c
Common library:
mikeov Apr 30, 2025
fc1ffd7
Common library:
mikeov Apr 30, 2025
fbca36b
M Stress:
mikeov Apr 30, 2025
8663c30
Java shim / QFS access:
mikeov Apr 30, 2025
cb7b205
QFS access:
mikeov Apr 30, 2025
b8a32d4
QFS java access:
mikeov May 27, 2025
0b50d20
QFS java shim:
mikeov May 29, 2025
5ec2314
Github action:
mikeov May 30, 2025
a99a7a8
Github actions:
mikeov May 30, 2025
492cd25
Github actions:
mikeov May 31, 2025
832eb49
Kfs access:
mikeov May 31, 2025
d3aea7d
Build script:
mikeov May 31, 2025
9b537e5
Build script:
mikeov May 31, 2025
b53d916
Github actions:
mikeov May 31, 2025
946b914
CMake:
mikeov Jun 29, 2025
f807af1
Top level CMakeLists.txt file:
mikeov Jun 29, 2025
0f361ec
Java shim:
mikeov Jun 30, 2025
7effa29
benchmarks/mstress:
mikeov Jun 30, 2025
4f9a4b1
Java build script:
mikeov Jun 30, 2025
97453c5
M stress:
mikeov Jun 30, 2025
29aba3d
Common library:
mikeov Jul 1, 2025
d42a4f5
IO library:
mikeov Jul 1, 2025
0da66e0
Build script:
mikeov Jul 1, 2025
aaf632e
Github actions:
mikeov Jul 1, 2025
2fd1be6
Github actions:
mikeov Jul 1, 2025
734ec4e
Build script:
mikeov Jul 1, 2025
7ac5e5d
Top level CMakeLists.txt:
mikeov Jul 1, 2025
91957c0
Top level CMakeLists.txt:
mikeov Jul 1, 2025
4d1a1b5
Top level CMakeLists.txt:
mikeov Jul 1, 2025
51c35be
Top level CMakeLists.txt:
mikeov Jul 1, 2025
8f9b1db
Top level CMakeLists.txt:
mikeov Jul 2, 2025
adebb63
Common library:
mikeov Jul 2, 2025
cebe655
Build script:
mikeov Jul 2, 2025
9a29f25
Github actions:
mikeov Jul 2, 2025
3a7e211
Build script:
mikeov Jul 2, 2025
261f235
Tests:
mikeov Jul 13, 2025
f1909ae
Test scripts:
mikeov Jul 16, 2025
4473728
Meta server:
mikeov Jul 20, 2025
c108087
QFS client library:
mikeov Jul 20, 2025
cc97296
Github actions:
mikeov Jul 20, 2025
18393c9
Wiki:
mikeov Jul 20, 2025
e2e2656
Build script:
mikeov Jul 20, 2025
bbb3c84
Prepare for 2.2.8 release
mikeov Aug 31, 2025
a758fe1
Top level cmake:
mikeov Aug 31, 2025
0ca4424
README.md:
mikeov Sep 1, 2025
a008518
Wiki/Release-Notes.md:
mikeov Sep 1, 2025
c1714e2
Wiki/Administrator's-Guide.md:
mikeov Sep 1, 2025
0d02eb5
Wiki:
mikeov Sep 29, 2025
acc7da3
Wiki:
mikeov Sep 30, 2025
ed9dad3
QFS wiki:
mikeov Oct 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 4 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,19 +55,19 @@ jobs:
buser: qfsbuild
runs_on: ubuntu-latest
- distro: ubuntu
ver: 18.04
ver: 20.04
codecov: yes
btype: release
buser: qfsbuild
runs_on: ubuntu-latest
- distro: ubuntu
ver: 18.04
ver: 20.04
codecov: no
btype: debug
buser: qfsbuild
runs_on: ubuntu-latest
- distro: ubuntu
ver: 18.04
ver: 20.04
codecov: no
btype: release
buser: root
Expand Down Expand Up @@ -102,12 +102,6 @@ jobs:
btype: release
buser: qfsbuild
runs_on: ubuntu-latest
- distro: debian
ver: 10
codecov: no
btype: release
buser: qfsbuild
runs_on: ubuntu-latest
- distro: centos
ver: 6
codecov: no
Expand Down Expand Up @@ -165,6 +159,7 @@ jobs:
CODECOV: ${{ matrix.codecov }}
BTYPE: ${{ matrix.btype }}
BUSER: ${{ matrix.buser }}
UBUNTU_APT_OPTIONS: "-o Acquire:Queue-mode=host"
steps:
- name: Checkout code
uses: actions/checkout@v2
Expand Down
104 changes: 62 additions & 42 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Created 2006/10/20
# Author: Sriram Rao (Kosmix Corp)
#
# Copyright 2008-2017 Quantcast Corporation. All rights reserved.
# Copyright 2008-2025 Quantcast Corporation. All rights reserved.
# Copyright 2006 Kosmix Corp.
#
# This file is part of Quantcast File System.
Expand All @@ -22,25 +22,25 @@
# permissions and limitations under the License.

cmake_minimum_required(VERSION 2.8.4...10.0 FATAL_ERROR)
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION})
cmake_policy(VERSION
${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION})

IF (NOT DEFINED KFS_DIR_PREFIX)
set (KFS_DIR_PREFIX ${CMAKE_SOURCE_DIR})
ENDIF (NOT DEFINED KFS_DIR_PREFIX)
if(NOT DEFINED KFS_DIR_PREFIX)
set(KFS_DIR_PREFIX ${CMAKE_SOURCE_DIR})
endif()

project (QFS)
project(QFS)
set(CMAKE_MODULE_PATH ${KFS_DIR_PREFIX}/cmake/Modules)

IF (NOT DEFINED Boost_NO_BOOST_CMAKE)
IF (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 8 AND
5 LESS ${CMAKE_PATCH_VERSION})
if(NOT DEFINED Boost_NO_BOOST_CMAKE)
if(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 8 AND
5 LESS ${CMAKE_PATCH_VERSION})
# Turn off by default with 2.8.5 < cmake < 2.9.0 to
# work around cmake28 and boost libraries problem on centos 6.
# Boost_NO_BOOST_CMAKE was introduced int cmake 2.8.6
set(Boost_NO_BOOST_CMAKE ON)
ENDIF (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 8 AND
5 LESS ${CMAKE_PATCH_VERSION})
ENDIF (NOT DEFINED Boost_NO_BOOST_CMAKE)
endif()
endif()

if(NOT DEFINED QFS_USE_STATIC_LIB_LINKAGE)
set(QFS_USE_STATIC_LIB_LINKAGE ON)
Expand All @@ -53,9 +53,8 @@ endif()
set(Boost_USE_MULTITHREADED ON)

# Require the packages we need to build
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR
CYGWIN OR
CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
if(CYGWIN OR
CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
find_package(Boost COMPONENTS regex system REQUIRED)
else()
find_package(Boost COMPONENTS regex REQUIRED)
Expand All @@ -67,46 +66,64 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(CMAKE_INSTALL_RPATH @loader_path)
endif()

if (CYGWIN)
if(CYGWIN)
set(CMAKE_FIND_LIBRARY_PREFIXES ${CMAKE_FIND_LIBRARY_PREFIXES} "")
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} ".dll.a" ".lib")
set(CMAKE_FIND_LIBRARY_SUFFIXES
${CMAKE_FIND_LIBRARY_SUFFIXES} ".dll.a" ".lib")

# For now only for cygwin to get strptime, and gnu specific glob flags.
add_definitions(-D_GNU_SOURCE)
endif()

if (QFS_OMIT_JNI)
message (STATUS "Not building QFS JNI")
if(QFS_OMIT_JNI)
message(STATUS "Not building QFS JNI")
else()
set(JAVA_AWT_LIBRARY NotNeeded)
set(JAVA_JVM_LIBRARY NotNeeded)
set(JAVA_AWT_INCLUDE_PATH NotNeeded)
find_package(JNI REQUIRED)
endif()

find_package(Jerasure REQUIRED)
find_package(Krb5 REQUIRED krb5)
find_package(OpenSSL REQUIRED)
find_package(FUSE)

add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS)

# BOOST_SP_USE_QUICK_ALLOCATOR and BOOST_SP_USE_STD_ALLOCATOR are deprecated in
# Boost 1.87 and later.
if(Boost_MAJOR_VERSION LESS 1 OR
(Boost_MAJOR_VERSION EQUAL 1 AND Boost_MINOR_VERSION LESS 87))
add_definitions(-DBOOST_SP_USE_QUICK_ALLOCATOR)
endif()

# Define various options based on the library configuration we use
if(KRB5_FLAVOR)
add_definitions(-DKFS_KRB_USE_${KRB5_FLAVOR})
endif()

if(KRB5_USE_KRB5H)
add_definitions(-DKFS_KRB_USE_KRB5H)
endif()
if("${KRB5_FLAVOR}" STREQUAL "HEIMDAL" OR KRB5_HAS_krb5_get_init_creds_opt_set_out_ccache)

if("${KRB5_FLAVOR}" STREQUAL "HEIMDAL" OR
KRB5_HAS_krb5_get_init_creds_opt_set_out_ccache)
add_definitions(-DKFS_KRB_USE_KRB5_GET_INIT_CREDS_OPT)
endif()

if(KRB5_HAS_krb5_unparse_name_flags_ext)
add_definitions(-DKRB5_HAS_krb5_unparse_name_flags_ext)
endif()

if(KRB5_HAS_krb5_unparse_name_ext)
add_definitions(-DKRB5_HAS_krb5_unparse_name_ext)
endif()

if(KRB5_HAS_krb5_free_keytab_entry_contents)
add_definitions(-DKRB5_HAS_krb5_free_keytab_entry_contents)
endif()

if(KRB5_HAS_krb5_kt_free_entry)
add_definitions(-DKRB5_HAS_krb5_kt_free_entry)
endif()
Expand All @@ -125,38 +142,38 @@ endif()

# Build with statically linked libraries; the value for this variable has to be
# defined here overwriting whatever is in the cache.
# When setto ON, we build with statically linked libraries; when off we
# When set to ON, we build with statically linked libraries; when off we
# link with dynamically linked libs
if(NOT DEFINED QFS_USE_STATIC_LIB_LINKAGE)
set(QFS_USE_STATIC_LIB_LINKAGE TRUE)
endif()

IF (NOT DEFINED QFS_USE_STATIC_LIB_LINKAGE)
set (QFS_USE_STATIC_LIB_LINKAGE TRUE)
ENDIF (NOT DEFINED QFS_USE_STATIC_LIB_LINKAGE)
if(QFS_USE_STATIC_LIB_LINKAGE)
message(STATUS "Build binaries with statically linked QFS libraries")
else()
message(STATUS "Build binaries with dynamically linked QFS libraries")
endif()

IF (QFS_USE_STATIC_LIB_LINKAGE)
message (STATUS "Build binaries with statically linked QFS libraries")
ELSE (QFS_USE_STATIC_LIB_LINKAGE)
message (STATUS "Build binaries with dynamically linked QFS libraries")
ENDIF (QFS_USE_STATIC_LIB_LINKAGE)
set (USE_STATIC_LIB_LINKAGE ${QFS_USE_STATIC_LIB_LINKAGE} CACHE BOOL
set(USE_STATIC_LIB_LINKAGE ${QFS_USE_STATIC_LIB_LINKAGE} CACHE BOOL
"Build binaries with statically linked libraries" FORCE)

if(ENABLE_COVERAGE)
message(STATUS "Enabling code coverage with gcov")
set(CMAKE_CXX_FLAGS "-coverage")
set(CMAKE_CXX_FLAGS "-coverage")
set(CMAKE_C_FLAGS "-coverage")
endif()

if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++14")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++14")
endif()

if(ENABLE_PROFILING)
message(STATUS "Enabling profiling with gprof")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pg")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pg")
set(CMAKE_SHAREDBoost_USE_MULTITHREADED_LINKER_FLAGS
"${CMAKE_SHARED_LINKER_FLAGS} -pg")
set(CMAKE_EXE_FLAGS "${CMAKE_EXE_FLAGS} -pg")
set(CMAKE_EXE_FLAGS "${CMAKE_EXE_FLAGS} -pg")
endif()

# Change the line to Release to build release binaries
Expand All @@ -169,14 +186,14 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D NDEBUG -g3")
endif()

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -DBOOST_SP_USE_QUICK_ALLOCATOR")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
string(TOUPPER KFS_OS_NAME_${CMAKE_SYSTEM_NAME} KFS_OS_NAME)
add_definitions (-D${KFS_OS_NAME})
add_definitions(-D${KFS_OS_NAME})

IF (ENABLE_IO_BUFFER_DEBUG)
if(ENABLE_IO_BUFFER_DEBUG)
add_definitions(-DDEBUG_IOBuffer)
message(STATUS "Enabled IO buffer debug")
ENDIF (ENABLE_IO_BUFFER_DEBUG)
endif()

if(DEFINED QFS_EXTRA_CXX_OPTIONS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${QFS_EXTRA_CXX_OPTIONS}")
Expand All @@ -195,11 +212,13 @@ if(FUSE_FOUND)
message(STATUS "fuse definitions: ${FUSE_DEFINITIONS}")
message(STATUS "fuse version: ${FUSE_MAJOR_VERSION}.${FUSE_MINOR_VERSION}")
add_definitions(${FUSE_DEFINITIONS})

if(${FUSE_MAJOR_VERSION} LESS 3)
add_definitions(-D FUSE_USE_VERSION=26)
else()
add_definitions(-D FUSE_USE_VERSION=30)
endif()

include_directories(${FUSE_INCLUDE_DIRS})
else()
message(STATUS "Not building qfs_fuse")
Expand All @@ -215,10 +234,11 @@ include_directories(
${JAVA_INCLUDE_PATH2}
)

# get the subdirs we want
if (NOT QFS_OMIT_JNI)
# Get the sub directories we want.
if(NOT QFS_OMIT_JNI)
add_subdirectory(${KFS_DIR_PREFIX}/src/cc/access src/cc/access)
endif()

add_subdirectory(${KFS_DIR_PREFIX}/src/cc/chunk src/cc/chunk)
add_subdirectory(${KFS_DIR_PREFIX}/src/cc/common src/cc/common)
add_subdirectory(${KFS_DIR_PREFIX}/src/cc/devtools src/cc/devtools)
Expand All @@ -242,7 +262,7 @@ if(FUSE_FOUND)
add_subdirectory(${KFS_DIR_PREFIX}/src/cc/fuse src/cc/fuse)
endif()

add_custom_target (
add_custom_target(
rat ${KFS_DIR_PREFIX}/scripts/rat.sh ${KFS_DIR_PREFIX}
COMMENT "Running license release audit tool (rat)"
VERBATIM
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ run-cmake: dir
build: run-cmake
cd build/${BUILD_TYPE} && $(MAKE) ${MAKE_OPTIONS} install \
`${QFS_MSTRESS_ON} && \
echo ${QFSHADOOP_VERSIONS} | grep 2.10.2 >/dev/null 2>&1 && \
mvn --version >/dev/null 2>&1 && echo mstress-tarball`
echo ${QFSHADOOP_VERSIONS} | grep '3\.4\.1' >/dev/null 2>&1 && \
mvn --version >/dev/null 2>&1 && echo mstress-bootstrap mstress-tarball`

.PHONY: java
java: build
Expand Down
Loading
Loading