Skip to content

Commit

Permalink
Merge pull request redpanda-data#23471 from bharathv/iceberg_bb_1
Browse files Browse the repository at this point in the history
iceberg/coordinator: barebones stm and class structure
  • Loading branch information
bharathv authored Oct 1, 2024
2 parents 32bd075 + bfbb770 commit 7fb7d36
Show file tree
Hide file tree
Showing 28 changed files with 1,125 additions and 36 deletions.
68 changes: 68 additions & 0 deletions src/v/datalake/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,71 @@ redpanda_cc_library(
"@seastar",
],
)

redpanda_cc_library(
name = "logger",
hdrs = [
"logger.h",
],
include_prefix = "datalake",
visibility = [":__subpackages__"],
deps = [
"//src/v/base",
"@seastar",
],
)

redpanda_cc_library(
name = "types",
hdrs = [
"errors.h",
"fwd.h",
],
include_prefix = "datalake",
visibility = ["//visibility:public"],
deps = [
"//src/v/base",
"//src/v/serde",
],
)

redpanda_cc_library(
name = "writer",
hdrs = [
"data_writer_interface.h",
"schemaless_translator.h",
],
include_prefix = "datalake",
visibility = [":__subpackages__"],
deps = [
"//src/v/base",
"//src/v/iceberg:datatypes",
"//src/v/iceberg:values",
"//src/v/serde",
],
)

redpanda_cc_library(
name = "manager",
srcs = [
"datalake_manager.cc",
],
hdrs = [
"datalake_manager.h",
],
include_prefix = "datalake",
visibility = ["//visibility:public"],
deps = [
":logger",
":types",
"//src/v/base",
"//src/v/cluster",
"//src/v/datalake/coordinator:frontend",
"//src/v/model",
"//src/v/raft",
"//src/v/serde",
"//src/v/ssx:semaphore",
"@fmt",
"@seastar",
],
)
3 changes: 3 additions & 0 deletions src/v/datalake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,19 @@ find_package(Arrow REQUIRED)
find_package(Parquet REQUIRED)
find_package(Protobuf REQUIRED)

add_subdirectory(coordinator)

v_cc_library(
NAME datalake
SRCS
arrow_translator.cc
datalake_manager.cc
parquet_writer.cc
record_multiplexer.cc
schemaless_translator.cc
schema_protobuf.cc
DEPS
v::datalake_coordinator
v::storage
Seastar::seastar
Arrow::arrow_shared
Expand Down
73 changes: 73 additions & 0 deletions src/v/datalake/coordinator/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
load("//bazel:build.bzl", "redpanda_cc_library")
load("//src/v/rpc:compiler.bzl", "redpanda_cc_rpc_library")

redpanda_cc_rpc_library(
name = "generated_datalake_coordinator_rpc",
src = "rpc.json",
include_prefix = "datalake/coordinator",
)

redpanda_cc_library(
name = "model",
hdrs = [
"types.h",
],
include_prefix = "datalake/coordinator",
visibility = [":__subpackages__"],
deps = [
"//src/v/serde",
"//src/v/serde:enum",
"//src/v/datalake:types",
# todo: split writer further once it evolves
"//src/v/datalake:writer",
],
)

redpanda_cc_library(
name = "stm",
srcs = [
"state_machine.cc",
],
hdrs = [
"state_machine.h",
],
include_prefix = "datalake/coordinator",
visibility = ["//visibility:public"],
deps = [
":model",
"//src/v/cluster",
"//src/v/datalake:logger",
"//src/v/raft",
"//src/v/serde",
"//src/v/serde:enum",
],
)

redpanda_cc_library(
name = "frontend",
srcs = [
"frontend.cc",
"service.cc",
],
hdrs = [
"frontend.h",
"service.h",
],
include_prefix = "datalake/coordinator",
visibility = ["//visibility:public"],
deps = [
":generated_datalake_coordinator_rpc",
":model",
":stm",
"//src/v/base",
"//src/v/cluster",
"//src/v/container:fragmented_vector",
"//src/v/datalake:logger",
"//src/v/datalake:types",
"//src/v/model",
"//src/v/raft",
"//src/v/rpc",
"@fmt",
"@seastar",
],
)
21 changes: 21 additions & 0 deletions src/v/datalake/coordinator/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
include(rpcgen)

rpcgen(TARGET generated_datalake_coordinator_rpc
IN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/rpc.json
OUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/rpc_service.h
INCLUDES ${CMAKE_BINARY_DIR}/src/v
)

v_cc_library(
NAME datalake_coordinator
SRCS
frontend.cc
service.cc
state_machine.cc
DEPS
generated_datalake_coordinator_rpc
v::cluster
v::model
v::rpc
Seastar::seastar
)
Loading

0 comments on commit 7fb7d36

Please sign in to comment.