Advanced Search
Search Results
15 total results found
Description
NucleoDB is an in-memory, embedded database system designed to provide high-speed data management and processing. Its in-memory architecture ensures rapid access and manipulation of data, making it ideal for applications where performance and quick respons...
Quickstart
Add dependencies to build.gradle repositories { mavenCentral() maven { url 'https://repo.spring.io/milestone' } maven { url 'https://repo.spring.io/snapshot' } maven { url "https://nexus.synload.com/repository/maven-repo-releases/" } } dependenc...
Indexing
Currently there are 2 index types, Tree and Trie. Trie Index Supported value types: String Heavy memory usage and allows for partial text search. @Index(type = TrieIndex.class) Tree Index (Default) Support value types: Numbers, String, Dates Lower mem...
Table Class
@Table(tableName = "author", dataEntryClass = AuthorDE.class) public class Author implements Serializable { private static final long serialVersionUID = 1; @Index() String name; public Author() {} public Author(String name) { t...
DataEntry Class
Data Entry class encloses the table class. This is to differentiate the meta data from the actual data of the table. Only the table class can have indexed member variables. Author class public class AuthorDE extends DataEntry<Author>{ public AuthorDE(Auth...
Getting Started
NucleoDB Spring Repository Library makes it easier to use NucleoDB. Installation Dependencies Kafka Cluster /docker/kafka/docker-compose.yml Import library repositories { mavenCentral() maven { url "https://nexus.synload.com/reposit...
Connection
@Conn("AUTHORED") public class AuthoredConnection extends Connection<BookDE, AuthorDE>{ public AuthoredConnection() { } public AuthoredConnection(AuthorDE from, BookDE to) { super(from, to); } public AuthoredConnection(AuthorDE from, B...
Connection Repository
Connection repository integrates with the spring data repository. This enables your application to lookup based on either the destiny or the originating DataEntry. Definition @Repository public interface AuthoredConnectionRepository extends NDBConnRepos...
Data Repository
Simplifies the retrieval and saving of data entries into the NucleoDB database. Definition @Repository public interface AuthorDataRepository extends NDBDataRepository<AuthorDE, String>{ Optional<AuthorDE> findByNameAndKey(String name, String key); Op...
Message Queue Service
Setting MQS In the configuration for the table you can set the MQS type on initiating the database. config.setMqsConfiguration(new LocalConfiguration()) This can be done using the configuration customizer NucleoDB nucleoDB = new NucleoDB( NucleoDB.DBT...
Requirements
At the moment the database only has compatibility with Kafka. Kafka Cluster You can run a development cluster using docker and docker-compose using the following file. https://github.com/NucleoTeam/NucleoDB-Spring/blob/main/docker/kafka/docker-compose.y...
Installation and Startup
Installing Requirements Docker Kafka Cluster Configuration Environment Variables KAFKA_SERVERS=kafka:29092 Source https://github.com/NucleoTeam/NucleoDB-Memcached Docker Image Package Repository https://github.com/NucleoTeam/NucleoDB-Memcached/p...
EventListener
Data Entry Code Sample @RestController public class BookController{ @EventListener public void bookCreatedEvent(DataEntryCreatedEvent<BookDE> bookCreated){ Serializer.log("Book created "+bookCreated.getDataEntry().getData().getName()); } } E...
Source Code
The source code can be found on Github here https://github.com/NucleoTeam/NucleoDB
Cluster Locks
Cluster wide DataEntry locks. You can lock a DataEntry by specifying in the copy step that you want to lock the entry. This will send a request to lock the entry to all of the running instances of NucleoDB until that entry has been saved ( Or a timeout of 1 s...