kandi background
Explore Kits

JDBM3 | Embedded Key Value Java Database | Database library

 by   jankotek Java Version: Current License: Non-SPDX

 by   jankotek Java Version: Current License: Non-SPDX

Download this library from

kandi X-RAY | JDBM3 Summary

JDBM3 is a Java library typically used in Database applications. JDBM3 has no vulnerabilities, it has build file available and it has low support. However JDBM3 has 77 bugs and it has a Non-SPDX License. You can download it from GitHub, Maven.
All classes are contained in package org.apache..jdbm. There are only two important classes: DBMaker is builder which configures and opens database. DB is database itself, it opens collections and controls transactions. Collections in JDBM mimic their java.util counter parts. TreeMap uses an on-disk ordered auto-balanced B*Tree index, LinkedList is stored as self referencing entries and so on. Everything should be thread safe (currently under testing).
Support
Support
Quality
Quality
Security
Security
License
License
Reuse
Reuse

kandi-support Support

  • JDBM3 has a low active ecosystem.
  • It has 341 star(s) with 96 fork(s). There are 27 watchers for this library.
  • It had no major release in the last 12 months.
  • There are 10 open issues and 79 have been closed. On average issues are closed in 56 days. There are 3 open pull requests and 0 closed requests.
  • It has a neutral sentiment in the developer community.
  • The latest version of JDBM3 is current.
JDBM3 Support
Best in #Database
Average in #Database
JDBM3 Support
Best in #Database
Average in #Database

quality kandi Quality

  • JDBM3 has 77 bugs (8 blocker, 4 critical, 22 major, 43 minor) and 1528 code smells.
JDBM3 Quality
Best in #Database
Average in #Database
JDBM3 Quality
Best in #Database
Average in #Database

securitySecurity

  • JDBM3 has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
  • JDBM3 code analysis shows 0 unresolved vulnerabilities.
  • There are 25 security hotspots that need review.
JDBM3 Security
Best in #Database
Average in #Database
JDBM3 Security
Best in #Database
Average in #Database

license License

  • JDBM3 has a Non-SPDX License.
  • Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.
JDBM3 License
Best in #Database
Average in #Database
JDBM3 License
Best in #Database
Average in #Database

buildReuse

  • JDBM3 releases are not available. You will need to build from source code and install.
  • Deployable package is available in Maven.
  • Build file is available. You can build the component from source.
  • Installation instructions are not available. Examples and code snippets are available.
  • JDBM3 saves you 8318 person hours of effort in developing the same functionality from scratch.
  • It has 17088 lines of code, 1282 functions and 111 files.
  • It has high code complexity. Code complexity directly impacts maintainability of the code.
JDBM3 Reuse
Best in #Database
Average in #Database
JDBM3 Reuse
Best in #Database
Average in #Database
Top functions reviewed by kandi - BETA

kandi has reviewed JDBM3 and discovered the below as its top functions. This is intended to give you an instant insight into JDBM3 implemented functionality, and help decide if they suit your requirements.

  • Allocates a new page .
  • Calculates the page statistics .
  • Reads the keys from the data input .
  • Insert a new value into the BTree .
  • Puts the specified key in the tree .
  • Allocate bytes for a new file .
  • Create a database with the given password .
  • Returns the node for the specified page .
  • Reads an object from the stream .
  • Returns the next free record record .

JDBM3 Key Features

B*Tree with ConcurrentNavigableMap interface

Very fast for sequential read/write.

Small values stored inside tree nodes

Small values stored inside tree nodes, large values lazily fetched.

Self-balancing, great performance even with 1e12 items.

Delta compression on keys

Submaps (aka cursors) to view limited collection subsets

Custom comparators

H*Tree with ConcurrentMap interface

Optimized for random reads/writes

Small values stored inside tree nodes, large values lazily fetched.

Self-balancing, great performance even with 1e12 items.

TreeSet and HashSet which uses BTree and HTree without values

LinkedList, which implements bounded BlockingDeque (not implemented yet)

Multi code scalability (currently under testing)

Everything is thread safe

Reads should scale linearly with number of cores (as soon as it fits into cache)

All collection implements Concurrent interfaces

Some multi-core scalability with ReentrantReadWriteLock.

Instance cache

If data fits into cache, reads are almost as fast as in-memory collections.

Minimal overhead, works well even with 16MB heap.

Scales well into 64GB RAM heaps.

Various yet simple tuning options

Transactions

Single transaction per store, avoids concurrent modification stuff

Transactions are ACID (with limits for single concurrent transaction)

Option to disable transactions for fast inserts/updates

Low level key-value store

Various options for on-disk store (NIO, RAF, locking…​)

Write performance not affected by store fragmentation

In-memory store option

Can read data from zip file with reasonable performance

Can read data from classpath resource, database is deployable over Java Web Start

Advanced defragmentation

Print store statistics

Transparent data encryption

Only 9 bytes overhead per record (for example BTree node)

Space efficient serialization

Custom code for most java.util and java.lang classes. For example Long(0) takes only single byte

Very small POJO serialization overhead, typically only 3 bytes per class + 1 byte for each field.

Mimic java serialization, fields can be transient, all classes needs to implement Serializable interface

Supports Externalizable

Possible to plug your own Serializer

Performance

Blazing fast 1 million inserts / 10 million reads per second (on my 5GHz machine, but you should get 300000 inserts p.s. easily)

Tightly optimized code

Uses NIO stuff you read about, but never see in action.

Minimal heap usage, prevents java.lang.OutOfMemoryError: GC overhead limit

Most logic done with primitives or arrays. Minimal stack usage.

Community Discussions

Trending Discussions on Database
  • How to create or alter a DB schema dynamically (at run time) using Gramex FormHandler
  • What does stopping the runtime while uploading a dataset to Hub cause?
  • MongoDB query all documents contains ids that does not exist anymore in the collection
  • Is it possible to change the active user for a PostgreSQL connection?
  • null is not an object Sqlite + ReactNative expo Typescript
  • Indexing for GROUP BY in CosmosDB
  • Is there a way to implement cassandra "decimal" Datatype in Golang
  • How do I copy a big database table to another in ABAP?
  • Upgrade H2 version 2.0.202 from 1.4.200
  • What are the backend service for flutter?
Trending Discussions on Database

QUESTION

How to create or alter a DB schema dynamically (at run time) using Gramex FormHandler

Asked 2022-Apr-08 at 06:35

I want to be able to (at run time) create or alter a DB schema dynamically on a particular event (e.g. click of a button) using FormHandler microservice of Gramex.

ANSWER

Answered 2022-Apr-08 at 06:20

You can do it using queryfunction of FormHandler which can modify the query based on the query parameters passed in the url.

Refer the link below for more https://gramener.com/gramex/guide/formhandler/#formhandler-queryfunction

Source https://stackoverflow.com/questions/71792397

Community Discussions, Code Snippets contain sources that include Stack Exchange Network

Vulnerabilities

No vulnerabilities reported

Install JDBM3

You can download it from GitHub, Maven.
You can use JDBM3 like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the JDBM3 component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .

Support

Please report bug into Github error tracker. There is [mail-group](mailto:jdbm@googlegroups.com) if you would have questions, you may also browse [group archive](http://groups.google.com/group/jdbm). JDBM uses chained exception so user does not have to write try catch blocks. IOException is usually wrapped in IOError which is unchecked. So please always check first exception. OutOfMemoryError JDBM keeps uncommited data in memory, so you may need to commit more often. If your memory is limited use MRU cache (on by default). You may increase heap size by starting JVM with extra parameter -Xmx500MB. OutOfMemoryError: GC overhead limit exceeded Your app is creating new object instances faster then GC can collect them. When using Soft/Weak cache use Hard cache to reduce GC overhead (is auto cleared when free memory is low). There is JVM parameter to disable this assertion. File locking, OverlappingFileLockException, some IOError You are trying to open file already opened by another JDBM. Make sure that you DB.close() store correctly, operating system may leave lock after JVM is terminated. You may try DBMaker.useRandomAccessFile() which is slower, but does not use such aggressive locking. In read-only mode you can also open store multiple times. You may also disable file locks completely by DB.disableFileLock() (at your own risk of course). InternalError, Error, AssertionFailedError, IllegalArgumentException, StackOverflowError and so on There was an problem in JDBM. It is possible that file store was corrupted thanks to an internal error or disk failure. Disabling cache by DBMaker.disableCache() may workaround the problem. Please submit bug report to github. Special thanks to EJ-Technologies for donating us excellent [JProfiler](http://www.ej-technologies.com/products/overview.html).

DOWNLOAD this Library from

Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
over 430 million Knowledge Items
Find more libraries
Reuse Solution Kits and Libraries Curated by Popular Use Cases

Save this library and start creating your kit

Explore Related Topics

Share this Page

share link
Reuse Pre-built Kits with JDBM3
Compare Database Libraries with Highest Support
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
over 430 million Knowledge Items
Find more libraries
Reuse Solution Kits and Libraries Curated by Popular Use Cases

Save this library and start creating your kit

  • © 2022 Open Weaver Inc.