Skip to content

Commit 98b9d96

Browse files
yoav-steinbergushachar
authored andcommitted
different values for each key when random data is set (#20)
1 parent 8ed94cc commit 98b9d96

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

obj_gen.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,9 @@ object_generator::object_generator() :
146146
m_key_stddev(0),
147147
m_key_median(0),
148148
m_value_buffer(NULL),
149-
m_random_fd(-1)
149+
m_random_fd(-1),
150+
m_value_buffer_size(0),
151+
m_value_buffer_mutation_pos(0)
150152
{
151153
for (int i = 0; i < OBJECT_GENERATOR_KEY_ITERATORS; i++)
152154
m_next_key[i] = 0;
@@ -218,6 +220,7 @@ void object_generator::alloc_value_buffer(void)
218220
size = m_data_size.size_list->largest();
219221
}
220222

223+
m_value_buffer_size = size;
221224
if (size > 0) {
222225
m_value_buffer = (char*) malloc(size);
223226
assert(m_value_buffer != NULL);
@@ -274,6 +277,7 @@ void object_generator::alloc_value_buffer(const char* copy_from)
274277
else if (m_data_size_type == data_size_weighted)
275278
size = m_data_size.size_list->largest();
276279

280+
m_value_buffer_size = size;
277281
if (size > 0) {
278282
m_value_buffer = (char*) malloc(size);
279283
assert(m_value_buffer != NULL);
@@ -416,6 +420,13 @@ data_object* object_generator::get_object(int iter)
416420
expiry = random_range(m_expiry_min, m_expiry_max);
417421
}
418422

423+
// modify object content in case of random data
424+
if (m_random_data) {
425+
m_value_buffer[m_value_buffer_mutation_pos++]++;
426+
if (m_value_buffer_mutation_pos > m_value_buffer_size)
427+
m_value_buffer_mutation_pos = 0;
428+
}
429+
419430
// set object
420431
m_object.set_key(m_key_buffer, strlen(m_key_buffer));
421432
m_object.set_value(m_value_buffer, new_size);

obj_gen.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ class object_generator {
107107
char *m_value_buffer;
108108
int m_random_fd;
109109
gaussian_noise m_random;
110+
unsigned int m_value_buffer_size;
111+
unsigned int m_value_buffer_mutation_pos;
110112

111113
void alloc_value_buffer(void);
112114
void alloc_value_buffer(const char* copy_from);

0 commit comments

Comments
 (0)