TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

FleetDB

90 pointsby bgrayover 15 years ago

8 comments

tedunangstover 15 years ago
Perhaps a little editorializing of the headline is appropriate when it's one word that doesn't tell me a single thing about the link?
评论 #1032267 未加载
z8000over 15 years ago
This looks rather neat!<p>I like to think that I know enough Clojure to decipher that the database and metadata is locked during compaction. Is this true? See <a href="http://github.com/mmcgrana/fleetdb/blob/master/src/clj/fleetdb/embedded.clj#L99" rel="nofollow">http://github.com/mmcgrana/fleetdb/blob/master/src/clj/fleet...</a><p>I wrote something called LogStore based on the general notion of log-structured data (then learned about the work of Ousterhout et al. in the 90s). For what it's worth, I avoided the need to lock the metadata and the database during compaction, allowing the log to grow during compaction.<p>Instead of working through the locked metadata (offset per entry) and rewriting the entries to a new file, the compactor works from the end of the log file to the start of the log file. Each record descriptor is actually written after the record data to help the compactor easily skip over older versions of records it has processed already during the compaction iteration.<p>Once the compactor reaches the start of the file, it checks to see if the file grew (more appends, new data) since the beginning of the compaction, and starts over from the new EOF but stopping at the previous EOF. This repeats until the compactor fully catches up.<p>Then the database is temporarily locked, the new metadata is swapped in, and the existing log file is overwritten with the compacted log file.
评论 #1031838 未加载
DrJokepuover 15 years ago
So what does this offer over a key-value store (such as BerkeleyDB) other than the JSON query/object abstraction layer?
patrickgzillover 15 years ago
What happens if/when the database runs out of RAM? Does the OS then start swapping to disk?
评论 #1031859 未加载
va_coderover 15 years ago
It looks like the first schema-free database written in Clojure has arrived
评论 #1031660 未加载
netghostover 15 years ago
Looks neat, certainly something to watch.
mhendricover 15 years ago
congrats mark!
admn_is_traitorover 15 years ago
Stopped reading at "optimized for agile development."..