News
This page collects news and announcements about the development of
Secondo. For a structured list of the changes
per release, see the Release Notes.
26.06.2026 – Optimizer Integration
The SECONDO Optimizer has now been integrated into the SECONDO kernel,
functioning as a first-class component. As a result, the OptServer has
been removed, along with the old hybrid SECONDO binaries such as
SecondoPLTTY, SecondoPLTTYCS, and SecondoPLTTYNT.
The standard SECONDO binaries now support the optimizer and can be used for
all applications. Additionally, the Java GUI has been adapted to work with
the new optimizer interface. The option for custom optimizer connection
settings has been removed.
SQL Queries like select count(*) from plz as p where [p:plz > 40000];
are directly supported by SecondoTTYBDB and SecondoTTYCS.
By prefixing a query with optimize, the optimizer returns the
best plan for the query.
Using showOptions();, setOption(xxx);, and delOption(xxx);,
the user can configure the optimizer. By executing updateCatalog();, the
knowledge base of the optimizer is updated.
19.06.2026 – Project Improvements
During the last days, the network, process management, and BDB stack of Secondo was improved:
- Support for newer distributions
- Ubuntu 26.04 is supported.
- OS X 15 / 26 are supported.
- No OS X SDK is needed anymore; Secondo now natively compiles on OS X.
- The self-test for OS X is fixed and passes now.
- Support for the Apple Silicon architecture was improved. BDB page sizes are now stable across different CPU architectures.
- A lot of logic/memory bugs were removed to support the newer compilers.
-
.yfiles are updated to work with newer Yacc versions. - The Debian package building infrastructure has been renovated, and packages for Ubuntu 22.04/24.04/26.04 are available.
- New auto-detection script
$SECONDO_BUILD_DIR/CM-Scripts/secondo-detect.shto determine the environment automatically. - The installation instructions are rewritten entirely.
- Note:
nlohmann-json3is now a new installation dependency. Secondo now uses the distribution version of the library instead of a vendored version.
- Improved build times
- Parallel
make -j ..was repaired. -
makecan now build algebras concurrently (so far, each algebra was built sequentially, with concurrent support for the files of the algebra). -
.javafiles are now compiled with onejavaccall instead of compiling each file individually. -
.depfiles are generated by the main compiler run, no need for a second compiler pass on each.cppfile. -
ccacheis now supported for caching build artifacts.
- Parallel
- CI Improvements
- The OptServer is now tested in CI.
- Secondo could handle more than 25 parallel clients (verified by CI).
- The CI now builds also on OS X.
- A GitHub workflow is used now to build the
.debpackages.
- Stability
- All mallocs in the signal handlers are removed; crashing processes now crash and do not deadlock.
- In the server mode, processes have the ability to terminate gracefully instead of being killed by signal handlers right in BDB code.
- A lot of bugs in the BDB usage were removed:
- Modified pages are marked as dirty.
- Custom file usage tracking removed.
- Cursor leaks are fixed.
- Errors are propagated.
- Race conditions are eliminated.
- Deadlocks on catalog access are removed by using the proper tx context.
- The BDB now refuses to start when not all components are initialized properly.
- Network sockets are hardened:
- No lingering for faster server shutdowns.
- Keepalive is set to detect gone clients.
- OS return codes are honored properly.
- Failing operations are retried if needed.
- Errors are classified, and a lot of potential 100% CPU spin loops in the error case are removed.
- The
SecondoRegistrarnow uses a modernpoll()based infrastructure. Multiple clients can be served; one blocking client can no longer stall the entire connection handling. - The
SecondoMonitornow monitors subprocesses – crashes are directly reported. - Show log in the monitor now works and uses a bounded log buffer.
- The
SecondoCheckpointchecks now periodically for lock pressure; a lock shortage will be reported. - Subprocesses are properly terminated when their parent dies (e.g., CTRL+C cannot be used to terminate the monitor, all connections, and processes).
- Shutdown logic now distributes signals properly to child processes and gives them a chance to terminate.
- Use
sigactioninstead ofsignalto have a predictable contract. - Use
close_rangewhen possible to free parent fd's. Saves ~524288 syscalls/550ms CPU time per network connection.
- Misc
- Introduce
SECONDO_NO_SIGNAL_HANDLERSto be able to skip Secondo's custom signal/crash handlers to get proper core dumps. - Removed unused
readlineenvironment variable. -
.debpackages are now hosted by GitHub.
- Introduce
11.02.2022 – Development migrated to git/GitHub
So far, Secondo was developed in a self-hosted CVS
repository. This project here was only a read-only mirror of the CVS repository.
We have now completed the migration to git, and this repository is used for the
development.
03.09.2021 – SECONDO 4.3.0 released
We are happy to announce the release of Secondo 4.3.0.
See the Release Notes for more information.
23.08.2021 – Parallel building
The current version of Secondo supports the
parallelization of the building process (e.g.,
make -j 32). This allows
to build Secondo much faster. We measured a building
time of 13 minutes (parallel) vs. 71 minutes (sequential) on our test system.
01.08.2021 – Debian 11 is supported
We are happy to announce that Debian 11 is now supported by
Secondo.
10.03.2021 – M1 (ARM64) based Apple computers are now a supported platform
Secondo now supports Apple computers with an M1 (ARM64)
CPU as platform. See the Install Guide for more
information. Please note that no manual download of the BerkeleyDB or SWI-Prolog is
required anymore. All dependencies on macOS are now managed by Homebrew.
20.01.2021 – Ubuntu 20.10 is supported
We are happy to announce that Ubuntu 20.10 is now supported by
Secondo. The source code can now be built by
gcc 10 and SWI-Prolog 8.2 is supported.
18.12.2020 – SECONDO source code available on GitHub
The Secondo source code is available on
GitHub.
The repository was originally a read-only mirror of the CVS repository; the project
has since retired CVS and switched completely to this repository.
11.12.2020 – New article about debugging SECONDO on macOS
A new article about the debugging of Secondo on macOS is
available.
03.12.2020 – Website is available on GitHub
The website of the project is now available on
https://secondo-database.github.io/.
15.11.2020 – macOS 11 Big Sur – SECONDO SDK available
An SDK for macOS 11 (Big Sur) is now
available for download.
01.10.2020 – Bison 3.0 deprecation warnings
All Bison 3.0 deprecation warnings (
warning: deprecated directive) are fixed
in the current version of the software.
24.09.2020 – C++17
We have changed the used C++ standard in the project to C++17. This means that you can use
these new
language features
in your code. Please note that you have to run
make clean to re-build the
complete project.
23.09.2020 – Removal of the '-D_GLIBCPP_DEPRECATED' compiler flag
Until now, Secondo was built with the flag
-D_GLIBCPP_DEPRECATED to get access to some deprecated functions in the glibc.
The code base was updated and these functions are not used anymore. Therefore, the compiler
flag was removed.
22.09.2020 – Build server is upgraded to openSUSE Leap 15.2
We have successfully upgraded the build- and CVS-server to openSUSE Leap 15.2; the system is
now up and running.
Last Changed: 2026-07-21 (JNI)