Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 6 additions & 6 deletions .github/workflows/build_commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ on:

jobs:
SislDeps:
uses: eBay/sisl/.github/workflows/build_dependencies.yml@master
uses: eBay/sisl/.github/workflows/build_dependencies.yml@stable/v13.x
with:
branch: master
branch: stable/v13.x
platform: ${{ inputs.platform }}
build-type: ${{ inputs.build-type }}
malloc-impl: ${{ inputs.malloc-impl }}
Expand All @@ -32,9 +32,9 @@ jobs:

NuraftMesgDeps:
needs: SislDeps
uses: eBay/nuraft_mesg/.github/workflows/build_dependencies.yml@main
uses: eBay/nuraft_mesg/.github/workflows/build_dependencies.yml@stable/v4.x
with:
branch: main
branch: stable/v4.x
platform: ${{ inputs.platform }}
build-type: ${{ inputs.build-type }}
malloc-impl: ${{ inputs.malloc-impl }}
Expand All @@ -43,9 +43,9 @@ jobs:

IOMgrDeps:
needs: SislDeps
uses: eBay/iomanager/.github/workflows/build_dependencies.yml@master
uses: eBay/iomanager/.github/workflows/build_dependencies.yml@stable/v12.x
with:
branch: master
branch: stable/v12.x
platform: ${{ inputs.platform }}
build-type: ${{ inputs.build-type }}
malloc-impl: ${{ inputs.malloc-impl }}
Expand Down
34 changes: 17 additions & 17 deletions .github/workflows/build_dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,56 +83,56 @@ jobs:
timeout-minutes: 1440
steps:
- name: Retrieve Code
uses: actions/checkout@main
uses: actions/checkout@v4
with:
ref: ${{ inputs.branch }}
if: ${{ inputs.testing == 'True' }}

- name: Retrieve Recipe
uses: actions/checkout@main
uses: actions/checkout@v4
with:
repository: eBay/Homestore
ref: ${{ inputs.branch }}
if: ${{ inputs.testing == 'False' }}

- name: Setup Conan
uses: ebay/sisl/.github/actions/setup_conan2@master
uses: ebay/sisl/.github/actions/setup_conan2@stable/v13.x
with:
platform: ${{ inputs.platform }}
if: ${{ inputs.testing == 'True' || steps.restore-cache.outputs.cache-hit != 'true' }}

- name: Load Homestore Cache
id: restore-cache
uses: eBay/sisl/.github/actions/load_conan2@master
uses: eBay/sisl/.github/actions/load_conan2@stable/v13.x
with:
testing: ${{ inputs.testing }}
key_prefix: HomestoreDeps-${{ inputs.platform }}-${{ inputs.build-type }}-${{ inputs.malloc-impl }}-${{ inputs.prerelease }}

- name: Load Sisl Cache
uses: eBay/sisl/.github/actions/load_conan2@master
uses: eBay/sisl/.github/actions/load_conan2@stable/v13.x
with:
load_any: 'True'
key_prefix: SislDeps13-${{ inputs.platform }}-${{ inputs.build-type }}-${{ inputs.malloc-impl }}
if: ${{ inputs.testing == 'True' || steps.restore-cache.outputs.cache-hit != 'true' }}

- name: Retrieve Dependencies
uses: actions/checkout@main
uses: actions/checkout@v4
with:
repository: eBay/iomanager
path: import/iomgr
ref: master
ref: stable/v12.x
if: ${{ inputs.testing == 'True' || steps.restore-cache.outputs.cache-hit != 'true' }}

- name: Retrieve Dependencies
uses: actions/checkout@main
uses: actions/checkout@v4
with:
repository: eBay/nuraft_mesg
path: import/nuraft_mesg
ref: main
ref: stable/v4.x
if: ${{ inputs.testing == 'True' || steps.restore-cache.outputs.cache-hit != 'true' }}

- name: Load IOMgr Cache
uses: eBay/sisl/.github/actions/load_conan2@master
uses: eBay/sisl/.github/actions/load_conan2@stable/v13.x
with:
testing: 'False'
path: import/iomgr
Expand All @@ -141,7 +141,7 @@ jobs:
if: ${{ inputs.testing == 'True' || steps.restore-cache.outputs.cache-hit != 'true' }}

- name: Load NuraftMesg Cache
uses: eBay/sisl/.github/actions/load_conan2@master
uses: eBay/sisl/.github/actions/load_conan2@stable/v13.x
with:
testing: 'False'
path: import/nuraft_mesg
Expand All @@ -160,8 +160,8 @@ jobs:
sudo rm -rf /usr/lib/google-cloud-sdk

python -m pip install pyelftools
conan export --user oss --channel master import/iomgr
conan export --user oss --channel main import/nuraft_mesg
conan export import/iomgr
conan export import/nuraft_mesg
if: ${{ inputs.testing == 'True' || steps.restore-cache.outputs.cache-hit != 'true' }}

- name: Build Cache
Expand All @@ -182,20 +182,20 @@ jobs:
if: ${{ steps.restore-cache.outputs.cache-hit != 'true' }}

- name: Save Conan Cache
uses: eBay/sisl/.github/actions/store_conan2@master
uses: eBay/sisl/.github/actions/store_conan2@stable/v13.x
with:
key_prefix: HomestoreDeps-${{ inputs.platform }}-${{ inputs.build-type }}-${{ inputs.malloc-impl }}-${{ inputs.prerelease }}
if: ${{ github.event_name != 'pull_request' && steps.restore-cache.outputs.cache-hit != 'true' }}

- name: Reload Sisl Cache
uses: eBay/sisl/.github/actions/load_conan2@master
uses: eBay/sisl/.github/actions/load_conan2@stable/v13.x
with:
load_any: 'True'
key_prefix: SislDeps13-${{ inputs.platform }}-${{ inputs.build-type }}-${{ inputs.malloc-impl }}
if: ${{ inputs.testing == 'True' && github.event_name != 'pull_request' && steps.restore-cache.outputs.cache-hit != 'true' }}

- name: Reload IOMgr Cache
uses: eBay/sisl/.github/actions/load_conan2@master
uses: eBay/sisl/.github/actions/load_conan2@stable/v13.x
with:
testing: 'False'
path: import/iomgr
Expand All @@ -204,7 +204,7 @@ jobs:
if: ${{ inputs.testing == 'True' && github.event_name != 'pull_request' && steps.restore-cache.outputs.cache-hit != 'true' }}

- name: Reload NuraftMesg Cache
uses: eBay/sisl/.github/actions/load_conan2@master
uses: eBay/sisl/.github/actions/load_conan2@stable/v13.x
with:
testing: 'False'
path: import/nuraft_mesg
Expand Down
49 changes: 35 additions & 14 deletions .github/workflows/merge_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:
push:
branches:
- master
- stable/v7.x

jobs:
Build:
Expand Down Expand Up @@ -36,16 +36,37 @@ jobs:
malloc-impl: ${{ matrix.malloc-impl }}
prerelease: ${{ matrix.prerelease }}
tooling: ${{ matrix.tooling }}
# ChainBuild:
# runs-on: "ubuntu-22.04"
# steps:
# - name: Start HomeObject Build
# run: |
# curl -L \
# -X POST \
# -H "Accept: application/vnd.github+json" \
# -H "Authorization: Bearer ${{ secrets.CHAIN_BUILD_TOKEN }}"\
# -H "X-GitHub-Api-Version: 2022-11-28" \
# https://api.github.com/repos/eBay/homeobject/actions/workflows/conan_build.yml/dispatches \
# -d '{"ref":"main","inputs":{}}'
# if: ${{ github.ref == 'refs/heads/master' }}
ChainBuild:
needs: Build
runs-on: "ubuntu-24.04"
steps:
- name: Get HomeObject default branch
id: get-branch
run: |
set -euo pipefail

DEFAULT_BRANCH=$(curl --fail --show-error --silent --location \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.CHAIN_BUILD_TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/eBay/homeobject \
| jq -r '.default_branch')

if [ -z "$DEFAULT_BRANCH" ] || [ "$DEFAULT_BRANCH" = "null" ]; then
echo "Failed to determine HomeObject default branch from GitHub API response" >&2
exit 1
fi

echo "default_branch=$DEFAULT_BRANCH" >> "$GITHUB_OUTPUT"
echo "HomeObject default branch: $DEFAULT_BRANCH"

- name: Start HomeObject Build
run: |
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.CHAIN_BUILD_TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/eBay/homeobject/actions/workflows/conan_build.yml/dispatches \
-d '{"ref":"${{ steps.get-branch.outputs.default_branch }}","inputs":{}}'
if: ${{ github.ref == 'refs/heads/stable/v7.x' }}
35 changes: 0 additions & 35 deletions .github/workflows/merge_build_3x.yml

This file was deleted.

38 changes: 0 additions & 38 deletions .github/workflows/merge_build_6x.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/pr_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:
pull_request:
branches:
- master
- stable/v7.x

jobs:
Build:
Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/version_change_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,18 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@main
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Check if file is modified
- name: Check if version bump is required
run: |
if git diff -r HEAD^1 HEAD -- conanfile.py | egrep "[ ]+version = "; then
changed=$(git diff --name-only HEAD^1 HEAD)
non_test=$(echo "$changed" | grep -Ev '^src/tests/|CMakeLists\.txt$|^\.github/|^\.jenkins|\.md$' || true)
if [ -z "$non_test" ]; then
echo "Only test files changed — version bump not required"
exit 0
fi
if git diff -r HEAD^1 HEAD -- conanfile.py | grep -E "[ ]+version = "; then
echo "Version is updated with this PR, OK"
else
echo "Conan version is not updated with this PR. Please update that to allow PR merge"
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -111,3 +111,6 @@ CMakeUserPresets.json

# claude
.claude/**

# worktrees
.worktrees/
2 changes: 1 addition & 1 deletion .jenkins/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ pipeline {
steps {
script {
TAG = "${VER}@"
CONAN_FLAGS="--name ${PROJECT}"
}
}
}
Expand All @@ -64,7 +65,6 @@ pipeline {
steps {
sh "hostname ; \
echo $NODE_NAME ; \
conan create ${BUILD_MISSING} -s:h build_type=Debug -o ${PROJECT}/*:sanitize=True ${CONAN_FLAGS} . ; \
conan create ${BUILD_MISSING} -s:h build_type=Debug ${CONAN_FLAGS} . ; \
conan create ${BUILD_MISSING} -s:h build_type=RelWithDebInfo -o sisl/*:malloc_impl=tcmalloc ${CONAN_FLAGS} . ; \
conan create ${BUILD_MISSING} -s:h build_type=RelWithDebInfo -o sisl/*:prerelease=True -o sisl/*:malloc_impl=tcmalloc ${CONAN_FLAGS} . ; \
Expand Down
14 changes: 7 additions & 7 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

class HomestoreConan(ConanFile):
name = "homestore"
version = "7.5.6"
version = "7.5.10"

homepage = "https://github.com/eBay/Homestore"
description = "HomeStore Storage Engine"
Expand Down Expand Up @@ -48,17 +48,17 @@ def configure(self):
raise ConanInvalidConfiguration("Coverage/Sanitizer requires Testing!")

def build_requirements(self):
self.test_requires("benchmark/1.9.4")
self.test_requires("gtest/1.17.0")
self.test_requires("benchmark/[^1.9]")
self.test_requires("gtest/[^1.17]")

def requirements(self):
self.requires("iomgr/[^12]@oss/master", transitive_headers=True)
self.requires("sisl/[^13.2.4]@oss/master", transitive_headers=True)
self.requires("nuraft_mesg/[^4]@oss/main", transitive_headers=True)
self.requires("iomgr/[^12.0]", transitive_headers=True)
self.requires("sisl/[^13.2]", transitive_headers=True)
self.requires("nuraft_mesg/[^4.0]", transitive_headers=True)

self.requires("farmhash/cci.20190513@", transitive_headers=True)
if self.settings.arch in ['x86', 'x86_64']:
self.requires("isa-l/2.30.0", transitive_headers=True)
self.requires("isa-l/[^2.30]", transitive_headers=True)

# Tests require OpenSSL 3.x
self.requires("openssl/[^3.1]", override=True)
Expand Down
7 changes: 7 additions & 0 deletions src/include/homestore/index/index_table.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,13 @@ class IndexTable : public IndexTableBase, public Btree< K, V > {
auto cpg = cp_mgr().cp_guard();
Btree< K, V >::destroy_btree(cpg.context(cp_consumer_t::INDEX_SVC));
}
// Flush the current CP to completion before removing the superblock.
// This closes the journal–table mismatch window: any txn_journal entries
// for this table's ordinal are written and the CP is marked done on disk.
// If the process crashes after this point, recovery will not replay the
// old journal (CP is complete), so repair_index_node will never be called
// for an ordinal whose superblock no longer exists.
cp_mgr().trigger_cp_flush(true /* force */).get();
m_sb.destroy();
m_sb_buffer->m_valid = false;
decr_pending_request_num();
Expand Down
Loading
Loading