Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 572579
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T13:37:39+00:00 2026-05-13T13:37:39+00:00

I need to know if there is any embedded DBMS (preferably in Java and

  • 0

I need to know if there is any embedded DBMS (preferably in Java and not necessarily relational) which supports multiple writer applications (processes) on the same set of db files. BerkeleyDB supports multiple readers but just one writer. I need multiple writers and multiple readers.

UPDATE:

It is not a multiple connection issue. I mean I do not need multiple connections to a running DBMS application (process) to write data. I need multiple DBMS applications (processes) to commit on the same storage files.

HSQLDB, H2, JavaDB (Derby) and MongoDB do not support this feature.

I think that there may be some File System limitations that prohibit this. If so, is there a File System that allows multiple writers on a single file?

Use Case: The use case is a high-throughput clustered system that intends to store its high-volume business log entries into a SAN storage. Storing business logs in separate files for each server does not fit because query and indexing capabilities are needed on the whole biz logs.

Because “a SAN typically is its own network of storage devices that are generally not accessible through the regular network by regular devices”, I want to use SAN network bandwidth for logging while cluster LAN bandwidth is being used for other server to server and client to server communications.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T13:37:39+00:00Added an answer on May 13, 2026 at 1:37 pm

    You’re basically out of luck, unless you somehow change your requirements.

    First, specifically on Unix systems, there’s nothing to stop multiple processes from writing to the same files. On a SINGLE SYSTEM, this won’t be a problem whatsoever, you’ll just have a typical race condition should two or more writes conflict over the same space in the file as to which will actually get written. Since it’s on a single system, this had perfect resolution, at the byte level.

    So, the game in terms of having multiple processes writing to the same file is how do those processes coordinate? How to they ensure that they don’t walk on each other. In, again, Unix, there is an OS based locking mechanism that can be used to prevent that, but typically most systems implement a central server to and coordinate all of their write through that system, and it then writes to the disk while mitigating and handling any conflicts.

    Your problem is two fold.

    One, you’re suggesting that the independent log processes will not cooperate, that they will not share information and coordinate their writes to the volume. That throws a wrench (a big wrench) in to the works right there.

    Second, you propose having not only multiple processes write to the same volume, but that the volume they are writing to is shared over a SAN. That’s another wrench.

    Unlike NFS, SANs don’t support “file systems”. Rather they support “storage”. Basically block level devices. SANs, once you get passed a bunch of volume management shenanigans, are actually pretty “stupid” from the OSs point of view.

    I’m pretty sure you can actually have a volume mounted on multiple machines, but I’m not sure more than one can actually WRITE to the device. There are good reasons for this.

    Simply, SANs are block level storage. A block being, say, 4K bytes. That’s the “atomic” unit of work for the SAN. Want to change a single byte of data? Read a 4K block from the SAN, change your byte, and write the 4k block back.

    If you have several machines thinking that they have “universal” access to the SAN storage, and are treating it as a file system, you have a corrupted, ruined file system. It’s that simple. The machines will write what they think the blocks should look like while the other machines and smashing it with their local version. Disaster. Ruin. Not happy.

    Even getting one machine to write to a SAN while another reads from it is tricky. It’s also slow, as the reader can make few assumptions about the contents of the disk, so it needs to read, and re-read blocks (it can’t cache anything, like file system TOCs, etc, as, well, they’re changing behind it’s back due to the activity of the writer — so, read it again…and again…).

    Things like NFS “solve” this problem because you no longer work with raw storage. Rather you work with an actual filesystem.

    Finally, there’s nothing wrong with having independent log files being streamed out from your servers. They can still be queried. You simply have to repeat the queries and consolidate the results.

    If you have 5 machines streaming, and you want “all activity between 12:00pm and 12:05pm”, then make 5 queries, one to each log store, and consolidate the results. As for how to efficiently query your log data, that’s an indexing problem, and not insurmountable depending on how you query. If you query by time, then create files by time (every minute, every hour, whatever), and scan them. If your system is “read rarely”, this isn’t a big deal. If you need more sophisticated indexing, then you’ll need to come up with something else.

    You could use a database to write the files, and indexes, but I doubt you’ll find many that enjoy reading from files that they don’t control, or that change underneath them.

    CouchDB might work, or something similar, because of its specific crash resistant, always consistent database format. It’s datafile is always readable by a database instance. That could be an option for you.

    But I would still do multiple queries and merge them.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 352k
  • Answers 352k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer This is working for me with Serialization Mode property of… May 14, 2026 at 7:30 am
  • Editorial Team
    Editorial Team added an answer a) get your current GPS coordinates You need to use… May 14, 2026 at 7:30 am
  • Editorial Team
    Editorial Team added an answer Because if it's not by reference, it's by value. To… May 14, 2026 at 7:30 am

Related Questions

I'm playing with an embedded Linux device and looking for a way to get
What is the best way to use an embedded database, say sqlite in Python:
I am building a web app where I need to get all the images
I have a JavaScript widget (a piece of embedded JS and HTML code) that's
Is there any browser I could embedd in C++ application on Windows? I need

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.