Comments (8)
I think it is not supposed to be thread-safe, and you have to synchronyze read/write methods from JDBM collections. (java.util.HashMap is not thread-safe also ...)
from jdbm3.
Collectios should be thread safe and this is a bug. I am going to fix it soon.
from jdbm3.
Sorry about that :). Then I hope there will be no impact on performance for single threaded access.
from jdbm3.
no impact on performance for single threaded access.
JDBM3 uses read/write locks, so there is some overhead for single threaded apps. But this overhead is minimal compared to others (diskIO, serialization..).
My main priority is performance with single thread access, and I am not going to complicate design to gain a few % on multicore tests.
from jdbm3.
I've seen that jdbm2 has a THREAD_SAFE option. Perhaps that could be added to DBMaker
from jdbm3.
THREAD_SAFE in JDBM2 is fragment from previous versions and is not really used. Overhead of creating and maintaining this option would also be bigger then benefits. As I said overhead of synchronization is very small.
In future I may start using preprocessor which would remove locks and produce single-thread-optimized jar.
from jdbm3.
Fair enough. What's interesting is that if both threads use the same instance of the map, everything works.
from jdbm3.
Fixed, problem was caused by two different instances of 'Map', now it uses weak reference to garantee only single instance
from jdbm3.
Related Issues (20)
- Not Serializable Exception HOT 1
- Corruption of index files (double get and IndexOutOfBounds errors) HOT 8
- Found setting where I lose part of a List value 'silently' HOT 1
- DB.defrag(false) ALWAYS increases the size of i.0 file HOT 1
- java.lang.OutOfMemoryError: Map failed HOT 3
- I'm confused about the record, slot, page, physical and logical list. Is there any document?
- Not working with JDK11
- BTree.java is a b plus tree or b tree?
- is someway to repair corrupt data file ? HOT 1
- JDBM and Scala HOT 5
- TreeMap#size() returns wrong values after rollback
- DBMaker#openFile should take a "File" as argument HOT 1
- Support serializing/deserializing Hadoop keys and values HOT 1
- java.lang.OutOfMemoryError: Map failed HOT 2
- NPE on Array deserialization
- floorEntry on BTreeMap behaves incorrectly on border cases
- Null retrieval of inserted keys HOT 1
- Unable to add an element to the beginning of a list HOT 1
- Does not work with JodaTime
- deserialization of HashSet fails HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jdbm3.