- Joined
- Dec 7, 2020
Let's say I have a hard drive of data. This data changes a little bit and its directory structures mostly stays the same. This is a question about where to draw the line between database and directory structure. I have a program and database that make assumptions about the layout of the data's directory structure. How do I keep the program's representation consistent with what's actually on the hard drive, so that I don't end up in a situation where the programs (a library for the data-structure and a few executable use it) that use that database and directories become dis-connected? For example, if I need to find the data for a key in the database, how must the directory structure stay enforced to keep this consistent?
So far I've guess that I'll need to make custom programs that will manage operations on the data and database precisely to keep the two from becoming inconsistent. The thing I find most unclear is if you have custom programs for managing this data-system then how should access control be done: how to force only the right programs working on the data. I've read into using Apache Jackrabbit for other projects, but not being able to use that data from the file system is a deal breaker. I think it would ultimately become too inconvenient to have to use a program to view the data instead of using the filesystem. Because it would end up being inconvenient, something like Jackrabbit wouldn't get used and would be pointless. For this reason, I'd like to stick with using the filesystem, but keeping structure seems tricky.
Part of me thinks that this data should be treated like program assets because it being consumed by the database and programs. But since it's dynamic (the content of files stored in directories might be changed by programs not part of the system) it seems like it needs data that's not strictly part of the system (programs and database) but the system just operates on. Like something in a scratch directory that might get deleted or changed the user. Where the data's root is also matters. This is Unix Like, the data's root will need to be on a consistent mount point for production, so probably on LAN and connected-to with NFS by clients.
This must seem like a really complicated question. If you have any thoughts on how to store filesystem locations in a database and keep the paths from getting changed, I'd like to read what you think. Thanks.
So far I've guess that I'll need to make custom programs that will manage operations on the data and database precisely to keep the two from becoming inconsistent. The thing I find most unclear is if you have custom programs for managing this data-system then how should access control be done: how to force only the right programs working on the data. I've read into using Apache Jackrabbit for other projects, but not being able to use that data from the file system is a deal breaker. I think it would ultimately become too inconvenient to have to use a program to view the data instead of using the filesystem. Because it would end up being inconvenient, something like Jackrabbit wouldn't get used and would be pointless. For this reason, I'd like to stick with using the filesystem, but keeping structure seems tricky.
Part of me thinks that this data should be treated like program assets because it being consumed by the database and programs. But since it's dynamic (the content of files stored in directories might be changed by programs not part of the system) it seems like it needs data that's not strictly part of the system (programs and database) but the system just operates on. Like something in a scratch directory that might get deleted or changed the user. Where the data's root is also matters. This is Unix Like, the data's root will need to be on a consistent mount point for production, so probably on LAN and connected-to with NFS by clients.
This must seem like a really complicated question. If you have any thoughts on how to store filesystem locations in a database and keep the paths from getting changed, I'd like to read what you think. Thanks.