- Jul 28, 2020
-
-
-
The `ChunkStorage` backend class on the daemon was throwing `system_errors` without being caught, crashing the server in the process. `ChunkStorage` now uses a designated error class for errors that might occur. In addition the dependency to Argobots was removed which was used to trigger `ABT_eventuals`, laying ground work for future non-Argobots IO implementations. Further, the whole class was refactored for consistency and failure resistance. A new class `ChunkOperation` is introduced which wraps Argobots' IO task operations which allows the removal of IO queue specific code within RPC handlers, i.e., read and write handlers. The idea is to separate eventuals, tasks and their arguments from handler logic into a designated class. Therefore, an object of an inherited class of `ChunkOperation` is instantiated within the handlers that drives all IO tasks. The corresponding code was added to the read and write RPC handlers. Note, `ChunkOperation` is not thread-safe and is supposed to be called by a single thread. In addition, truncate was reworked for error handling (it crashed the server on error) and that it uses the IO queue as well since truncate causes a write operation and should not overtake IO tasks in the queue. The chunk stat rpc handler was refactored for error handling and to use error codes as well. Further minor changes: - dead chunk stat code has been removed - some namespaces were missing: `gkfs::rpc` - more flexible handler cleanup and response code - fixed a bug where the chunk dir wasn't removed when the metadata didn't exist on the same node
-
- Feb 20, 2020
- Feb 19, 2020
- Feb 18, 2020
-
-
Marc Vef authored
-
- Feb 10, 2020
-
-
Marc Vef authored
-
- Feb 09, 2020
-
-
Marc Vef authored
Reformatted code w.r.t. unifying code styles as of the official CPPCoreGuidelines by Stroustrup and Sutter
-
- Feb 07, 2020
-
-
Marc Vef authored
Restructuring code w.r.t. configurations and definitions: - #defines have been mostly removed from configurations - a dedicated config file has been added for configurations with constexpr - past configure file is now only a cmake wrapper - wrapping global functions into namespaces Removed all adafs and ifs occurrences. Now called gkfs
-
- Jul 29, 2019
-
-
Tommaso Tocci authored
-
- Jul 26, 2019
-
-
Tommaso Tocci authored
Write errors happenig on deamons are now reported back to clients. "No space left on device" error is now properly propagated to clients.
-
- Jul 15, 2019
-
-
Tommaso Tocci authored
-
- Jul 04, 2019
-
-
Tommaso Tocci authored
-
Tommaso Tocci authored
margo context id is not the id of the host that send the request. Is the internal context id of local margo instance.
-
- Jun 26, 2019
-
-
Tommaso Tocci authored
-
- Apr 24, 2019
-
-
Tommaso Tocci authored
-
- Apr 17, 2019
-
-
Tommaso Tocci authored
-
- Mar 05, 2019
-
-
Tommaso Tocci authored
-
- Jan 31, 2019
-
-
Tommaso Tocci authored
- improved statfs system call - intercepted statvfs library call Both of the above function now report the aggregated real size of all the data-nodes. You can test this with `df "/tmp/gekkofs_mountpoint"` command
-
- Nov 04, 2018
-
-
Tommaso Tocci authored
-
- Oct 31, 2018
-
-
Tommaso Tocci authored
-
Tommaso Tocci authored
makes format of log messages more omogeneus
-
Tommaso Tocci authored
Implemented all the logic to handle truncate operation. Test: added truncate test
-
Tommaso Tocci authored
-
Tommaso Tocci authored
In the daemon read handler manage read beyond end of file as normal case and not exceptional
-
- May 11, 2018
-
-
Tommaso Tocci authored
-
- May 09, 2018
-
-
Tommaso Tocci authored
Acknowledge the main thread that the IO operation had terminate before to actually close the file. This is a "dirty" fix that waits to be refactored. WARNING: Error on close will not be reported to the client that issued the IO operation.
-
Tommaso Tocci authored
Data operation has been grouped under a ChunkStorage class that will manage all the data backend operations. The instance of this object is stored into the ADAFS_DATA sigleton.
-
- Apr 12, 2018
-
-
Marc Vef authored
-
- Mar 15, 2018
-
-
Marc Vef authored
The LRU map caused multiple issues with memory mappings and caused severe errors and hanging situations. It has been replaced with a std::map. An Argobots mutex was added for rpc address lookups as many threads might insert and lookup this map in parallel. This caused bulk_transfer seqfauls as well as other file system crashes. Cleanup of file system logging.
-
Marc Vef authored
-
Marc Vef authored
-
Marc Vef authored
Before data was pulled first then written or read first and then pushed back
-
Marc Vef authored
Only use 1 segment now but with multiple transfers
-
- Mar 07, 2018
-
-
Marc Vef authored
-
Marc Vef authored
- Previously the directory hierarchy was not clear regarding to which file belong to which part of the project (client or daemon). Further, we will have other clients in the future (such as Fuse). - CMake files now differentiate between include dirs for all targets and target specific ones. - Removed duplicate -pg flag. - Not listing header files when adding executables or libraries is considered bad practice. Note that include_directories() is adding include paths to the code while adding all files used for executables and libraries provide the context which files belong to each binary. When only include_directories() is set, CMake assumes that all files belong to a binary (which is not necessarily true). As a result, some IDEs may break as the do not support this assumption. In general we should almost always favor explicitness over implicitness.
-
- Dec 13, 2017
-
-
Marc Vef authored
-
- Dec 01, 2017
-
-
Marc Vef authored
-