[#173] s3: Allow to specify directory height and width
All checks were successful
DCO action / DCO (pull_request) Successful in 37s
Tests and linters / Tests with -race (pull_request) Successful in 1m54s
Tests and linters / Tests (pull_request) Successful in 2m7s
Tests and linters / Lint (pull_request) Successful in 3m31s

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
Dmitrii Stepanov 2024-10-23 17:14:54 +03:00
parent 54f99dac1d
commit 6080908613
Signed by: dstepanov-yadro
GPG key ID: 237AF1A763293BC0
6 changed files with 67 additions and 5 deletions

View file

@ -138,6 +138,7 @@ Options (in addition to the common options):
* `DELETE_AGE` - age of object in seconds before which it can not be deleted. This parameter can be used to control how many objects we have in the system under load.
* `SLEEP_DELETE` - time interval (in seconds) between deleting VU iterations.
* `OBJ_NAME` - if specified, this name will be used for all write operations instead of random generation.
* `DIR_HEIGHT`, `DIR_WIDTH` - if both specified, object name will consist of `DIR_HEIGHT` directories, each of which can have `DIR_WIDTH` subdirectories, for example for `DIR_HEIGHT = 3, DIR_WIDTH = 100`, object names will be `/dir{1...100}/dir{1...100}/dir{1...100}/{uuid || OBJ_NAME}`
## S3 Multipart

View file

@ -159,7 +159,20 @@ export function obj_write() {
sleep(__ENV.SLEEP_WRITE);
}
const key = __ENV.OBJ_NAME || uuidv4();
let width = parseInt(__ENV.DIR_WIDTH || '0');
let height = parseInt(__ENV.DIR_HEIGHT || '0');
let key = ''
if (width > 0 && height > 0) {
for (let index = 0; index < height; index++) {
const w = Math.floor(Math.random() * width) + 1
key = key + '/dir' + w
}
key += '/'
}
key += (__ENV.OBJ_NAME || uuidv4());
const bucket = bucket_list[Math.floor(Math.random() * bucket_list.length)];
const payload = generator.genPayload();

View file

@ -177,7 +177,19 @@ export function obj_write() {
sleep(__ENV.SLEEP_WRITE);
}
const key = __ENV.OBJ_NAME || uuidv4();
let width = parseInt(__ENV.DIR_WIDTH || '0');
let height = parseInt(__ENV.DIR_HEIGHT || '0');
let key = ''
if (width > 0 && height > 0) {
for (let index = 0; index < height; index++) {
const w = Math.floor(Math.random() * width) + 1
key = key + '/dir' + w
}
key += '/'
}
key += (__ENV.OBJ_NAME || uuidv4());
const bucket = bucket_list[Math.floor(Math.random() * bucket_list.length)];
const payload = generator.genPayload();

View file

@ -159,7 +159,19 @@ export function obj_write() {
sleep(__ENV.SLEEP_WRITE);
}
const key = __ENV.OBJ_NAME || uuidv4();
let width = parseInt(__ENV.DIR_WIDTH || '0');
let height = parseInt(__ENV.DIR_HEIGHT || '0');
let key = ''
if (width > 0 && height > 0) {
for (let index = 0; index < height; index++) {
const w = Math.floor(Math.random() * width) + 1
key = key + '/dir' + w
}
key += '/'
}
key += (__ENV.OBJ_NAME || uuidv4());
const bucket = bucket_list[Math.floor(Math.random() * bucket_list.length)];
const payload = generator.genPayload();

View file

@ -101,7 +101,19 @@ export function obj_write_multipart() {
sleep(__ENV.SLEEP_WRITE);
}
const key = __ENV.OBJ_NAME || uuidv4();
let width = parseInt(__ENV.DIR_WIDTH || '0');
let height = parseInt(__ENV.DIR_HEIGHT || '0');
let key = ''
if (width > 0 && height > 0) {
for (let index = 0; index < height; index++) {
const w = Math.floor(Math.random() * width) + 1
key = key + '/dir' + w
}
key += '/'
}
key += (__ENV.OBJ_NAME || uuidv4());
const bucket = bucket_list[Math.floor(Math.random() * bucket_list.length)];
const payload = generator.genPayload();

View file

@ -131,7 +131,19 @@ export function handleSummary(data) {
}
export function obj_write() {
const key = __ENV.OBJ_NAME || uuidv4();
let width = parseInt(__ENV.DIR_WIDTH || '0');
let height = parseInt(__ENV.DIR_HEIGHT || '0');
let key = ''
if (width > 0 && height > 0) {
for (let index = 0; index < height; index++) {
const w = Math.floor(Math.random() * width) + 1
key = key + '/dir' + w
}
key += '/'
}
key += (__ENV.OBJ_NAME || uuidv4());
const bucket = bucket_list[Math.floor(Math.random() * bucket_list.length)];
const payload = generator.genPayload();