Skip to content

Fix compiler detection and build type error output, update to Python 3 syntax - #247

Open
aivoyager8 wants to merge 110 commits into
logcabin:masterfrom
aivoyager8:xcloud-devel
Open

aivoyager8 wants to merge 110 commits into
logcabin:masterfrom
aivoyager8:xcloud-devel

Conversation

@aivoyager8

Copy link
Copy Markdown

No description provided.

alextsagkas added 30 commits May 8, 2024 17:30
alextsagkas and others added 16 commits July 2, 2024 12:48
…nflicting term

- The first modification produced an error when snapshotting was enebled. It was
  implemented only for debugging purposes, so the removal of it does not make a difference.
- The corretion in the conditions concerns the logical fallacy of thinking that term bypassing
  is only viable when the leader holds a greater term than the follower on the first index of the
  conflict. Careful analysis of the problem proves that this is not the case. Actually, when the
  terms does not match, the bypassing can be done without any danger. If the terms are the same,
  we avoid bypassing all of the entries of the conflicting term, we could bypass "correct" entries,
  which is a thing that we do not want. However, even that does not threaten the safety of the algorithm.
  It justs worses the performance (more AppendEntries ehcanged to sunchronize the leader with the follower)
  which is contary to what we want to acheive with that optimization.
- Added functionality so as to execute snapshotting testin by writing
  constant amount of data for specified amount of times. Every experiment
  is tried with and without snapshotting enabled.
- Created a plot_snaphsotting.py file that includes the functinality of
  plotting the results. Two lines are created, one for non-shapshotting and
  another for snapshotting experiment metadata.
- The conflicting_term and the first_index_of_conflict were set when
  an AppendEntries RPC failed, but were not cleared if is succeeded.
- In order to pass the test, the later part should have been implemented.
  So I did just that.
- Scatter plot points have no border.
- Kill intervals and launch dealys were tested more thoroughly.
- In every election the duration is logged.
- Also metadata about the experiemnt (electionTimeout, number of tries)
- Data are plotted exactly like in Dioego's PhD to be easily compared with
  his results.
- Calculate the mean and its std and plot them with scatter points
  and errorbars in the diagram
- Ensured that the electionTimeout was applied to the server configuration
  (previously the constructor was not called correctly).
- Additionally keep metadata about the number of terms each trial need
  so as to elect a new leader and plot them in a histogram.
- The same test is executed for multiple tries and the mean of the
  results is plotted.
- Also, the std error of the mean is used to
  plot the errorbars.
merge from logcabin-extend
@aivoyager8 aivoyager8 changed the title 修复编译器检测和构建类型错误输出,更新为 Python 3 语法 Fix compiler detection and build type error output, update to Python 3 syntax May 18, 2025
aivoyager8 and others added 13 commits May 18, 2025 20:25
- Added TLS functionality in RPC with initialization, cleanup, and context management.
- Introduced a metrics system compatible with Prometheus, including Counter, Gauge, and Histogram metrics.
- Developed a MetricsServer to expose metrics over HTTP, handling requests and responses.
- Configured Docker Compose for single and multi-node LogCabin setups with metrics enabled.
- Created configuration files for each LogCabin node and Prometheus metrics settings.
- Improved performance with stronger optimization flags.
- Updated Docker support with multi-stage builds and security hardening.
- Added Kubernetes deployment configuration and enhanced docker-compose support.
- Integrated Grafana dashboards for better observability.
- Introduced a web-based management interface for cluster monitoring and control.
- Modernized the build system with CMake while maintaining compatibility with SCons.
- Implemented OpenTelemetry for distributed tracing and monitoring.
- Optimized storage engine with LSM tree options and flexible configurations.
- Enhanced documentation with installation guides and quick start examples.
- Added automated disaster recovery features and improved authorization systems.
- Updated LSMStorage constructor to accept a map for configuration.
- Changed append method to handle multiple entries and updated return type.
- Modified getEntry method to return a const reference.
- Added methods for log start index, size in bytes, and metadata updates.
- Introduced a BloomFilter struct with methods for adding and checking keys.
- Updated flush and merge methods to return boolean status.
- Added bloom_filter.hpp for Bloom Filter implementation.
- Adjusted SConscript to link with zstd library.
- Updated CMakeLists.txt to include new ProtoBuf files and tests.
- Updated CMakeLists.txt in Server and Storage to manually create protobuf generation commands, adding necessary import paths.
- Ensured generated protobuf files are treated as source files.
- Modified LSMStorage.cc to include proper return types for several functions and improved error handling during disk operations.
- Added LogConfig class to encapsulate log configuration parameters, allowing for better management of LSM storage settings.
- Updated includes in SegmentedLog and SimpleFileLog headers to reference the correct protobuf files.
- Enhanced the Tool.cc file to include the correct protobuf headers.
- Introduced LogFactoryModule to manage log creation and registration of log modules, improving modularity and extensibility.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants