Russell Sears
bb1724c3ae
remove obsolete less field from PTreeFingerEntry, increase finger size to 96 based on calculation in check()
2020-05-07 12:09:02 -07:00
Russell Sears
c9489d45c5
remove the finger trimming loops from PTree::lower_bound and upper_bound
2020-05-07 12:08:54 -07:00
Russell Sears
ea02c5b896
optimize PTreeFinger copy constructors
2020-05-07 12:08:47 -07:00
Russell Sears
3569dfe6cb
stack allocate fingers
2020-05-07 12:08:39 -07:00
Russell Sears
5e1c43f87b
replace double invocations of operator<() with three way compare().
2020-05-07 12:08:29 -07:00
Russell Sears
99a805517e
reduce the number of calls to operator< made by lower_bound and upper_bound #2877
2020-05-07 12:08:21 -07:00
Russell Sears
ae2d9744cb
simple benchmarks of IndexedSet, VersionedMap and std::map
2020-05-07 12:08:00 -07:00
A.J. Beamon
8125096e9b
Revert "reduce the number of calls to operator< made by lower_bound and upper…"
2020-05-05 08:17:10 -07:00
Russell Sears
6ab3ad4037
remove obsolete less field from PTreeFingerEntry, increase finger size to 96 based on calculation in check()
2020-04-29 10:10:30 -07:00
Russell Sears
fa5855c956
remove the finger trimming loops from PTree::lower_bound and upper_bound
2020-04-29 10:10:30 -07:00
Russell Sears
bfc6d63986
optimize PTreeFinger copy constructors
2020-04-29 10:10:30 -07:00
Russell Sears
5a8ec488d3
stack allocate fingers
2020-04-29 10:10:30 -07:00
Russell Sears
dcdda88794
replace double invocations of operator<() with three way compare().
2020-04-29 10:10:30 -07:00
Russell Sears
0115d94e7b
reduce the number of calls to operator< made by lower_bound and upper_bound #2877
2020-04-29 10:10:30 -07:00
Russell Sears
14836619ab
simple benchmarks of IndexedSet, VersionedMap and std::map
2020-04-29 10:10:30 -07:00
negoyal
a4a0bf18f9
Merging with Master.
2019-11-12 13:01:29 -08:00
negoyal
0d06bf8a66
Update fdbclient/VersionedMap.h
...
Co-Authored-By: Steve Atherton <stevea@apple.com>
2019-09-26 21:58:04 -07:00
negoyal
2526c1a0d2
Update fdbclient/VersionedMap.h
...
Co-Authored-By: Steve Atherton <stevea@apple.com>
2019-09-26 21:57:54 -07:00
negoyal
d049105a69
Update fdbclient/VersionedMap.h
...
Co-Authored-By: Steve Atherton <stevea@apple.com>
2019-09-26 21:57:44 -07:00
negoyal
f168c3fda9
Update fdbclient/VersionedMap.h
...
Renamed variable to be more specific
Co-Authored-By: Steve Atherton <stevea@apple.com>
2019-09-26 21:57:32 -07:00
negoyal
381f3220b3
Update fdbclient/VersionedMap.h
...
Indentation Fix
Co-Authored-By: Steve Atherton <stevea@apple.com>
2019-09-26 21:57:11 -07:00
negoyal
efbce26c78
Update fdbclient/VersionedMap.h
...
Indentation fix.
Co-Authored-By: Steve Atherton <stevea@apple.com>
2019-09-26 21:56:43 -07:00
negoyal
9d334948b1
Final Cleanup (hopefully) and including some performance numbers.
...
I microbenchmarked the storage queue standalone. i.e. the set and clearrange mutations
were performed solely at the in-memory storage queue. No other FDB components were involved
in this test. And hence the numbers presented here the best case numbers.
Test setup:
- 100M mutations: about 5% clearRange and 95% set mutations
- 100M rangeReads
- Keys/Values generated using deterministicRandom()
- A new version generated for each mutation (i.e. it's an extreme version test)
Performance comparison between std::map and std::deque for VersionedMap"
std::map std::deque
Time to perform the mutations 220.066 218.784
Time to perform buffered readRange 184.423 171.578
2019-09-04 11:29:29 -07:00
negoyal
91020abb5a
Fixed another Assert.
2019-09-04 10:59:44 -07:00
negoyal
ce53f7a896
Attempting to fix a segv.
2019-09-03 15:53:03 -07:00
mpilman
ed38c0595b
Tried to fix segfault
2019-09-03 13:37:27 -07:00
negoyal
2352193b3f
Code cleanup.
...
Removed commented out code and added some comments for clarification.
2019-08-30 16:48:43 -07:00
negoyal
7a58b17e4e
Fixed a memory bug.
...
While replacing std::map with std::deque. Don't store
any pointers because emplace can invalidate iterators.
2019-08-15 12:01:34 -07:00
negoyal
caf8737f16
This is a draft PR. Not yet open for review. Please ignore for now.
...
Replaces std::map with std::deque in versionedMap.
2019-08-12 22:52:10 -07:00
Alex Miller
d7c00f9cd2
And another.
2019-06-25 14:19:56 -07:00
Alex Miller
7a500cd37f
A giant translation of TaskFooPriority -> TaskPriority::Foo
...
This is so that APIs that take priorities don't take ints, which are
common and easy to accidentally pass the wrong thing.
2019-06-25 02:47:35 -07:00
Trevor Clinkenbeard
1e8f7e5b82
Refactor NextFastAllocatedSize to be constexpr function
2019-06-11 15:55:23 -07:00
A.J. Beamon
603721e125
Merge branch 'master' into thread-safe-random-number-generation
...
# Conflicts:
# fdbclient/ManagementAPI.actor.cpp
# fdbrpc/AsyncFileCached.actor.h
# fdbrpc/genericactors.actor.cpp
# fdbrpc/sim2.actor.cpp
# fdbserver/DiskQueue.actor.cpp
# fdbserver/workloads/BulkSetup.actor.h
# flow/ActorCollection.actor.cpp
# flow/Net2.actor.cpp
# flow/Trace.cpp
# flow/flow.cpp
2019-05-23 08:35:47 -07:00
A.J. Beamon
5f55f3f613
Replace g_random and g_nondeterministic_random with functions deterministicRandom() and nondeterministicRandom() that return thread_local random number generators. Delete g_debug_random and trace_random. Allow only deterministicRandom() to be seeded, and require it to be seeded from each thread on which it is used.
2019-05-10 14:01:52 -07:00
Trevor Clinkenbeard
4293a3e230
Generalized VersionedMap<K, T>::overheadPerItem calculation
2019-03-25 13:45:13 -07:00
Trevor Clinkenbeard
007abbc45b
Added 96-byte FastAllocator
...
Since storage queue nodes account for a large portion of memory usage,
we can save space by only allocating 96 bytes instead of 128 bytes for
each node.
2019-03-25 13:44:39 -07:00
Alex Miller
c6a65389ae
Remove noexcept macro and replace with BOOST_NOEXCEPT.
...
BOOST_NOEXCEPT does what the noexcept macro was supposed to do, but in a
way that is correctly maintained over time.
2019-03-05 22:06:12 -08:00
Robert Escriva
268093a96d
Adjust all includes to be relative to the root.
...
Remove the use of relative paths. A header at foo/bar.h could be included by
files under foo/ with "bar.h", but would be included everywhere else as
"foo/bar.h". Adjust so that every include references such a header with the
latter form.
Signed-off-by: Robert Escriva <rescriva@dropbox.com>
2018-10-19 17:35:33 +00:00
Evan Tschannen
7b64e711c7
fix: deferredCleanup did not take into account deleting multiple roots simultaneously
2018-07-12 15:29:02 -07:00
A.J. Beamon
e5488419cc
Attempt to normalize trace events:
...
* Detail names now all start with an uppercase character and contain no underscores. Ideally these should be head-first camel case, though that was harder to check.
* Type names have the same rules, except they allow one underscore (to support a usage pattern Context_Type). The first character after the underscore is also uppercase.
* Use seconds instead of milliseconds in details.
Added a check when events are logged in simulation that logs a message to stderr if the first two rules above aren't followed.
This probably doesn't address every instance of the above problems, but all of the events I was able to hit in simulation pass the check.
2018-06-08 11:11:08 -07:00
Alec Grieser
0bae9880f1
remove trailing whitespace from our copyright headers ; fixed formatting of python setup.py
2018-02-21 10:25:11 -08:00
FDB Dev Team
a674cb4ef4
Initial repository commit
2017-05-25 13:48:44 -07:00