Repository navigation
Releases: nahcrof-code/nahcrofDB
Release list
2.9.1
Added postGetKeys to client and main.py, it functions the same way as getKeysList but uses a post request since get requests can only be so large before the server just says "nuh uh" and refuses the request. (WARNING: using postGetKeys can be very heavy on memory usage as all of the values must be loaded in memory in order to be sent, if the data you are requesting is large enough to need this, you should either avoid using it regularly or ensure the nahcrofDB server has enough ram to do this with plenty of overhead)
2.9.0
2.8.1
- Updated main.py
tests using tests.py were not matching speeds seen when writing large numbers of keys at once. Loops were being ran twice causing O(n^2) speeds as opposed to O(n). v2 makeKeys will now roughly match the speeds seen in tests.py (with the main difference being the time it takes to iterate over a dictionary compared to iterating with range in python).
2.8
-
Updated client to have early "enterprise" support, allowing for reduntant databases, currently only fully supports one active reduntant database but will eventually be able to switch the active database multiple times. This creates each write across all extra databases, which will cause slow down to the nth degree (where n is the total number of additional databases). Automatically will assume it only needs to read from the main database but will read from others in the event of primary database failure (meaning that the primary database will not be used even upon returning back online, under the assumption that it will no longer be properly synced with the backup database.
-
Fixed long lasting bug causing key deletion to occasionally be ignored as a result of not being properly found within the in-memory structure.
2.7
v2.6.2
v2.6.1: Update tools.py
Uhm, updated 2.6.0 to have proper tools.py program, should probably go there to see the important things
v2.6.0: Big updates and optimizations
General updates
- Added optional in-memory structure (new default)
- Added optinal in-memory writes queue (new default)
- optimized writes queue (handles ~600,000 writes per second, only limitation is ram)
- Added "kill_db" which flushes all queued writes into the database before killing the program.
- Created tests.py to test various database functions and their speeds.
- Structure format is now a Structure Write-Ahead Log (SWAL). This is extremely similar to a regular WAL, except this is not all database transactions, this is all transactions to the structure and it is the only way the structure can be interacted with. When nahcrofDB starts, the entire structure will be "built" in memory (if st_store_method is set to "memory")
- Databases no longer track total writes or reads made.
v2.5.0
- Updated search again to only search main database contents. Searching queued writes is ~200x slower
- Created searchNames function. Allows for the db user to search for keys with names containing specific data. ~3.5x faster than searching key contents
- Updated documentation
- Version number displays in dashboard
- Database name is displayed as the title of the page for /view_db/ route
v2.4.0: updated search
Write queues are now checked as opposed to causing a key to be ignored. This means, if a key is in the queue and a read is attempted, instead of waiting and retrying, the value will be read from the queue to quickly get the most current version of the key. This also applies for searches, when searching the database, after checking the written database, the search will check the queue, if for some reason the updated version contains a queued write that makes a key no longer accurate to the query, the key will be removed as it's most recent version does not apply. If there is a key in the queue that was not in the database that the query applies to, it will be added to the result. This is a pre-release because further testing should be done.