David Schwartz
b4593a274d
Limit how many reads we defer to avoid overflowing the cache
2014-03-11 19:02:16 -07:00
David Schwartz
2f7ac98e34
Improve I/O when fetching ledgers
...
* negative cache for node store
* async fetch, thread pool for node store
* read barrier logic for node store
* SHAMap getMissingNodesNB (non-blocking)
* non-blocking getMissingNodes traverse
* tune caches
2014-03-03 10:56:48 -08:00
Vinnie Falco
2009f8b1ca
Add insight support to TaggedCache, KeyCache:
...
* Move TaggedCache, KeyCache to common
* Add radmap module, FullBelowCache class
* Add get_seconds_clock
* Inject FullBelowCache in SHAMap
2014-02-03 23:00:45 -08:00
David Schwartz
d0ca81ff36
visitLeaves must visit all branches
2014-01-31 19:26:53 -08:00
Vinnie Falco
fa10e90c9d
Use abstract_clock
2014-01-17 12:19:04 -05:00
Vinnie Falco
68501763dd
Refactor KeyCache
2014-01-17 12:19:04 -05:00
JoelKatz
6e4cd5bc9c
Don't send nodes twice in getNodeFat
2014-01-14 11:24:01 -08:00
JoelKatz
06737bb36f
SHAMapSync bugfix. Cannot avoid push in getMissingNodes
2014-01-13 09:50:54 -08:00
David Schwartz
93e03804d0
SHAMapSync cleanups and performance improvements
2014-01-10 22:53:58 -08:00
JoelKatz
750cbb8399
Improvements because items in SHAMaps are immutable:
...
* SHAMapItem::getData is not needed
* SHAMapTreeNode::getItem is not needed
* SHAMapTreeNode::getData is not needed
* No need to copy them when constructing transactions
* No need to copy them when computing map deltas
* No need to copy them in deepCompare
* No need to copy them in SHAMapTreeNode's copy constructor
2014-01-07 15:57:48 -08:00
JoelKatz
045beb5f36
Concurrent SHAMap code
...
Use shared lock for SHAMap itself and concurrent map for nodes
2014-01-07 15:57:47 -08:00
Vinnie Falco
087301933a
General refactoring, using C++11
...
* Remove broken RecycledObjectPool
* Fix beast::ServiceQueue using List instead of LockFreeStack
* Add class semaphore, fixes broken Semaphore
* Move crytpo module files to new beast directory
* Use c++11 replacements for boost and beast types:
- std::atomic instead of beast::Atomic
- std::function instead of boost::function, beast::function
- std::unique_ptr instead of beast::ScopedPointer
- std::shared_ptr instead of boost::shared_ptr
* Remove modules:
- beast_db
- beast_crypto
- beast_extras
* Remove unnecessary classes:
- AbstractFifo
- AddConst
- AtomicCounter
- AtomicFlag
- AtomicPointer
- AtomicState
- CopyConst
- Expression
- ForwardList
- IfCond
- Interval
- IntrusiveArray
- KeyvaDB
- PointerToOther
- PointerTraits
- RemoveConst
- RemoveConstVolatile
- RemoveReference
- RemoveVolatile
- SharedObjectArray
- SingleThreadedSharedObject
- SophiaDB factory
- SortedSet
- WeakReference
- beast::unique_ptr
2014-01-07 15:57:45 -08:00
JoelKatz
b2dbe8ef83
Ledger acquire fixes/cleanups/logging
...
* Inbound ledger and SHAMapAddNode cleanup
* Log acquire stats
* Fix progress logic
* Remove ledgers we no longer need to acquire
* Stash stale state data in our fetch pack, it can still be useful
* Stash in fetch pack if acquire terminated while job was pending
* Account for duplicate/invalid nodes in a few cases previously missed
* Dispatch each InboundLedger once (not per data)
* Trigger only the "best" peer
* Don't call tryAdvance on failed acquires
2013-12-27 16:48:03 -08:00
Vinnie Falco
f9c4070ad3
Add FetchPack unit test
2013-12-22 12:57:44 -08:00
JoelKatz
2f521a6a91
Build fetch packs correctly.
2013-12-22 12:38:07 -08:00
JoelKatz
deead04a6a
getFetchPack fixes, spread fetch pack requests.
2013-12-15 07:20:24 -08:00
JoelKatz
636d722e8d
Memory-conserving changes to SHAMapTreeNode and visitLeavesInternal.
2013-12-08 23:52:54 -08:00
David Schwartz
b3c79f5c2f
Change visitLeaves to visit a snapshot so the ledger stays unlocked
2013-12-04 11:10:27 -08:00
Vinnie Falco
b660d82516
Make TxFormats a Meyers singleton
2013-11-20 10:16:46 -08:00
JoelKatz
9322233b37
Allow the SHAMap visitLeaves functions to sanely handle a missing map node.
2013-11-13 11:04:17 -08:00
JoelKatz
ed905d3c3d
Remove redundant code.
2013-10-21 15:06:05 -07:00
JoelKatz
37bcf7899e
Improve performance of some RPC ledger commands using visitors.
...
Adds SHAMap::visitLeaves and Ledger::visitStateItems
2013-10-04 11:50:22 -07:00
JoelKatz
217a017195
Reduce memory consumption while fetching.
2013-09-30 02:40:35 -07:00
Vinnie Falco
fcd689afbf
Update copyright notice and licenses
2013-09-25 17:27:06 -07:00
Vinnie Falco
846b8e339c
Tidy and rename all Ripple source files
2013-09-13 16:58:24 -07:00