sosd: Saving WIP
filed: Use the new XSEG protocol
This commit updates the filed request handling functions, in order to usethe newer XSEG protocol. Note that it does not alter the current logic offiled.
Extend archipelago helper functions
Add helper functions to the new archipelago protocol
xseg: Enrich new xseg protocol
xseg: First attempt to allow flexible protocols
First attempt to decouple the communication mechanism data, with the data of theprotocol using the xseg mechanism.In this commit, we introduce op data for each operation and a set of flexibledata buffers that accompany them. The actual op data, are defined by the...
A first approach to the new xseg protocol.
archipelago: Fix wait request in common.py
tests: Add extra test in test_copy for filed
filed: Respect req->size for copy requests
archipelago: Update conf documentation about nr_ops.
Upate config documentation that a peer nr_ops must be a power of 2.
archipelago: Catch exceptions in argument parsing
archipelago: Set nr_ops = nr_threads for filed
archipelago: Enforce nr_ops as a power of 2 for all peers
filed: Check fd limit against the real cache size
peer: Respect the nr of ops enforced by xq size.
xq: Respect size when allocating and initializing
When allocating and initializing a new xq, respect the xq size limit that theinitialization sets, and do not initialize past that.
filed: Fix custom usage
archipelago conf: Add comments on settings
Install archipelago.conf.rados_example
ci: Insert licence headers
archipelago: Fix wrong identation and typos
ci: Add basic functionality test on commit.
Also split unittests to execute each component sepereatly
Change location of settings file to /etc/archipelago
Change archipelago default settings
Change archipelago default settings to file blocker. Also provide a workingexample for rados blocker
archipelago: Remove duplicate get_hash_request method
Adjust tests to the new Segment class
archipelago: Add wrapper function to get segment object
ext_storage: Check for 'pithos:' on create.
vlmc: Add X_HASH operation
archipelago: Declare segment as Class and modify settings
Declare xseg segment as class, and make use of its methods. Also modify configfile check to expect segment parameters instead of one segment spec.
vlmc: Fix get_vlmc_port for all operations
archipelago: Add spec config when creating segment
archipelago: Fix tabs in python modules
bench: Break large source file into smaller files
The bench-utils.c file started to have utilities that could standsemantically under a separate category. Namely, verification is now atbench-verify.c and progress report under bench-report.c.
bench: Turn ping off by default
bench: Break usage message in sections
bench: Create separate option for progress type
Progress type option is now decoupled from the progress option. Thispaves the way for silent progress reports.
vlmc: Do not map an already mounted volume
archipelago: Fix concurrent vlmc ops
archipelago: Add support for nested locking
archipelago: Add support for concurrent vlmc ops
bench: Remove dead code
bench: Improve benchmark results
Changes include:
bench: Ping target peer before starting timers
In some cases, the target peer may take some time before it finisheswith its initializations. Since we don't want to measure this idle time,we send a ping request first and can start start the benchmark after we...
bench: Fix minor validation issue
bench: Add --prefix option
The --prefix option allows the user to choose whatever prefix he/shewants for the object names that will be generated.
This commit also cleans code that has to do with seeding and creatingobject names. It also paves the way for the --objname option.
bench: Fix segfault while freeing resources
bench: Add --objname option
The --objname option allows the user to define the name of the target.This implies that for the duration of the benchmark, a sole object willbe used. This also comes along with a set of restrictions, that arethroughly explained in the help message
bench: Handle progress report better
Pave the way to include bandwidth/IOPS results during progress report
bench: Track elapsed time for each timer
Also, create two functions timespecsub() and timespecadd() that cansubtract and add two timespec structs.
bench: Introduce new progress report and intervals
This commit renews the progress report that bench has by allowing toreport bandwidth results during benchmark.
Also, an additional functionality is that of report intervals. Reportintervals allow the user to choose exactly when progress report will be...
bench: Fix data verification
Current situation: In full verification mode, each number written acrossa data chunk has 64 bits length, yet, due to a wrong LFSRinitialization, only 31 bits are utilized.
Implement a 63/64 bits utilization.
bench: Minor correction on seed validation
bench: Remove unnecessary malloc
bench: Fix an LFSR init issue and minor comments
If bench is requested to issue only one request, the LFSR initializationfails. Since LFSR is not needed in this case, we simply switch tosequential pattern for this request.
vlmc: add cont_addr option in snapshot command
python Makefile: replace zero-length array with pointer
Replace zero-length array with pointer for the xseg_reply_map flexible arraymember.
Peers Makefile: Reenable sosd
tests: Add SosdTest
sosd: Fix compilation error and hashing bug.
mapper: Use correct size for epoch when loading v2 metadata
mapper: Fix calculation of copy up target.
When hexlifing epoch and index, use the correct size of the source.
peers: Fix bug in hexlify.
Ditch strncpy which alwayes NULL terminates when hexlifing and use a customhexlify function.
tests: Add extra tests for hashing.
python: Extend request interface with X_HASH
sosd: Add X_HASH support with precomputed values
xseg: Add X_HASH to xseg protocol.
Add X_HASH operator to xseg, and the appopriate X_HASH reply structure. Removeobsolete snapshot reply structure.
vlmc: Remove obsolete snapshot handling functionality
mapper: Add hash support for snapshots.
Add the ability to hash snapshots and create pithos compatible images.
Also, as a minor improvement add object_to_map representation to map functions.
filed: Support X_HASH with precomputed hashes.
Support X_HASH with precomputed hash values, if the same block was hashedbefore.
tests: Add testing for cloning archipelago snapshots
mapper: Add XF_CONTADDR flag and improve cloning
Support cloning from both pithos images and archipelago snapshots.
mapper: Fix get_mapnode boundary.
Return NULL, when requesting object index == nr_obs
mapper: Fail when issuing a map object load fails
mapper: Always use datalen buffers when loading v2
mapper: Set correct map object when copying up
testing: Add tests for concurrent operations
python xseg: Enrich request/xseg python api.
Add more constructors for the Request class.Add xseg_wait_requests to wait on multiple requests.Modify vlmc script to use the new constructors.
filed: Add debug logging while reading/writing
tests: Add basic functionality testing for peers
Improve python archipelago common infrastructure.
The changes include: * Convert pfiled to filed and add the extra arguments * Check if arguments are not None instead of simply checking for arguments * Move request to seperate method and remove del method...
peer: Create pidfile with read/write permissions
mapper: Fail loading of deleted volumes
mapper: Fail request when range is not valid
Set zero sized clone to inherit the size of the parent
Uniformly set that when the requested size is zero, then either inherit the sizeof the parent map, or fail if there is no parent.
vlmcd: resize request on X_INFO
mapper: Add resize request on X_INF
filed: Add resize request on X_INFO
mapper: add debug messages while handling objects in v2
xseg: remove some unused logging
mt-sosd: Use common hash.c for hashing
Sosd: Change req->datalen with req->size.
Do not use req->datalen to fullfill requests, but req->size, which was therequested size.
filed: Change req->datalen with req->size.
mapperd: Fail load if map upgrade fails
mapperd: Add counter on map to count used objects
Add map counter to count used objects, so we can quickly calculate whether allobjects are in READY state, and there are no pending actions on them.
mapperd: Modify version2 map IO functions.
Modify version2 map IO functions to support load/write map data for a specifiedobject range.