History log of /4.0.0/forestdb/src/blockcache.h (Results 1 - 17 of 17)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v1.2, v1.1, v1.0
# 5f7821ba 11-Aug-2015 Chiyoung Seo <chiyoung.seo@gmail.com>

MB-16038 Support the lazy cleanup of a file's buffer cache blocks

If a given file is compacted ans no longer accessed, then its cache
blocks in the buffer cache should be cleaned up and

MB-16038 Support the lazy cleanup of a file's buffer cache blocks

If a given file is compacted ans no longer accessed, then its cache
blocks in the buffer cache should be cleaned up and moved to the free list.

As this operation can takes up to several seconds depending on the number
of cache blocks belonging to the file, it is better to support the lazy
cleanup of these cache blocks to avoid the long blocking period in the
application.

Change-Id: I3d607f17e189b63c592298c822672b9178356b0a

show more ...


# cb0f0747 04-Dec-2014 Sundar Sridharan <sundar.sridharan@gmail.com>

Handle Disk Write errors gracefully

Propogate filemgr_* write and read errors upwards
to callers so disk errors do not cause asserts.

Change-Id: Iae9991f16d08595f73fa200004cdde8

Handle Disk Write errors gracefully

Propogate filemgr_* write and read errors upwards
to callers so disk errors do not cause asserts.

Change-Id: Iae9991f16d08595f73fa200004cdde8f2137ad25

show more ...


# a40256a8 04-Dec-2014 Chiyoung Seo <chiyoung.seo@gmail.com>

Revert "MB-12612 Anomalous Test Framework + Graceful DiskOutOfSpace handling"

This reverts commit 69488222297a65d82d6faca806111221db80a5ce.


# 69488222 04-Dec-2014 Sundar Sridharan <sundar.sridharan@gmail.com>

MB-12612 Anomalous Test Framework + Graceful DiskOutOfSpace handling

Fix disk-out of space error handling by not asserting in forestdb layer
but rather propogating error to caller
Re

MB-12612 Anomalous Test Framework + Graceful DiskOutOfSpace handling

Fix disk-out of space error handling by not asserting in forestdb layer
but rather propogating error to caller
Redirect filemgr_ops to filemgr_ops_anomalous to create new anomalous
test framework infrastructure where system calls can fail selectively
based on the test suite.
+add new basic write failure anomaly tests
Change-Id: I2375492da5d9e5e0a378fb898adb3986895552c0

show more ...


# 6a3a5c2d 24-Nov-2014 Jung-Sang Ahn <jungsang.ahn@gmail.com>

Support DB file prefetching

- When an existing DB file is opened, and there is enough space in
block cache, the DB file is prefetched to improve the performance
right after a cold st

Support DB file prefetching

- When an existing DB file is opened, and there is enough space in
block cache, the DB file is prefetched to improve the performance
right after a cold start (such as rebooting).

- To maximize the efficiency, the prefetching logic sequentially reads
data from the end to the beginning of the DB file.

- Added one more field in fdb_config: 'prefetch_duration'. Prefetching
is aborted after the configured duration. If the duration is set to
zero, prefetching is disabled.

- Since prefetching is invoked only when there is enough free space
in block cache, it does not spoil the existing data in the cache.

Change-Id: Iea6e8301383299ea68a0b278abcf4af58d0b2ee8

show more ...


# 36b6ee04 28-Mar-2014 Jung-Sang Ahn <jungsang.ahn@gmail.com>

Disk IO pattern optimization for flushing WAL and compaction

- Before flushing WAL and compaction, entries are sorted by their
disk location for sequential disk IO.

- This optim

Disk IO pattern optimization for flushing WAL and compaction

- Before flushing WAL and compaction, entries are sorted by their
disk location for sequential disk IO.

- This optimization maximizes the overall disk bandwidth.

Change-Id: Icd4efff61e7f56b89ebade3a82e3d45d7a4932e7

show more ...


# 00a9594f 25-Mar-2014 Jung-Sang Ahn <jungsang.ahn@gmail.com>

Second chance cache algorithm for B+Tree blocks

- In block cache, B+Tree blocks have higher priority (score)
than document blocks.
- Buffer cache can store index blocks as many as po

Second chance cache algorithm for B+Tree blocks

- In block cache, B+Tree blocks have higher priority (score)
than document blocks.
- Buffer cache can store index blocks as many as possible.
- The total number of block IO for traversing index nodes can be reduced.

Change-Id: I345355f05e22b411302d311a316b296108b9561f

show more ...


# f693a021 20-Mar-2014 Sundar Sridharan <sundar.sridharan@gmail.com>

Windows compatibility

- Code is revised for compatibility on Windows, especially for
MinGW and Cygwin.
- OS dependent structures such as spin lock, mutex, thread, time
are genera

Windows compatibility

- Code is revised for compatibility on Windows, especially for
MinGW and Cygwin.
- OS dependent structures such as spin lock, mutex, thread, time
are generalized.
- File system operations (pread, pwrite, fsync) compatible on
Windows are added.
- Can be compiled using Visual Studio CL compiler
(*.c files have to be changed to *.cc)
(nmake should include /wd4716 option)
Change-Id: I47c03bfe88fd2601b4d03340a8df7dd917f486a3

show more ...


# bc68bb02 06-Mar-2014 Chiyoung Seo <chiyoung.seo@gmail.com>

Adapt the copylight paragraph and README.md


# 3d812dfc 22-Sep-2013 Jung-Sang Ahn <jungsang.ahn@gmail.com>

Multi-thread compatibility for Block Cache and WAL
- Pthread spin locks have been added to block cache & WAL operations so that they are multi-thread safe now.
- File manager and Doc IO layer

Multi-thread compatibility for Block Cache and WAL
- Pthread spin locks have been added to block cache & WAL operations so that they are multi-thread safe now.
- File manager and Doc IO layer are not multi-thread safe yet when there are two writers on the same DB file. They MUST BE modified.
- ForestDB test file (forestdb_test.c) has been revised. We have to add MT-safe test soon.

show more ...


# 3b3828dc 21-Aug-2013 Jung-Sang Ahn <jungsang.ahn@gmail.com>

O_DIRECT bug fix & benchmark minor update
- A temporary buffer in DocIO layer was not memory aligned and caused memory corruption.
- Some minor functions has been added to benchmark program.


# 818cce61 17-Aug-2013 Jung-Sang Ahn <jungsang.ahn@gmail.com>

Critical bug on block cache has been fixed
- After compaction, when old file is removed and new file is opened, buffer cache may not recognize owner of blocks. This causes crash because it incorr

Critical bug on block cache has been fixed
- After compaction, when old file is removed and new file is opened, buffer cache may not recognize owner of blocks. This causes crash because it incorrectly reads requested block.
- In block cache, hash value of each filename is calculated using crc32 of last 8 bytes.

show more ...


# fa5a43c0 14-Aug-2013 Jung-Sang Ahn <jungsang.ahn@gmail.com>

Block marker has been added
- 1-byte block marker is added at the end of each block. Three marks are defined in common.h; 0xff, 0xee and 0xdd for B-tree node, DB header and document block respect

Block marker has been added
- 1-byte block marker is added at the end of each block. Three marks are defined in common.h; 0xff, 0xee and 0xdd for B-tree node, DB header and document block respectively.

show more ...


# 2889254e 09-Aug-2013 Jung-Sang Ahn <jungsang.ahn@gmail.com>

Formatting & benchmark program minor change
- Benchmark duration can be configured in config file. User can run benchmark choosing between the exact number of batches and fixed duration.


# 58e43058 30-Jul-2013 Jung-Sang Ahn <jungsang.ahn@gmail.com>

Hash structure & block cache optimization
- Hash can use rb-tree as its bucket. Retrieval inside each bucket can be faster than linked list.
- In block cache, each file structure has own rb-t

Hash structure & block cache optimization
- Hash can use rb-tree as its bucket. Retrieval inside each bucket can be faster than linked list.
- In block cache, each file structure has own rb-tree which indexes dirty blocks belong to the file. We do not need to scan dirty-block-list when flushing the cache. Furthermore, flushing dirty blocks is done in sorted order or BID by traversing rb-tree, thus IO bandwidth can be improved by sequential writes.

show more ...


# aad3abbb 27-Jul-2013 Jung-Sang Ahn <jungsang.ahn@gmail.com>

HB-trie iterator bug fix & block cache optimization
- Out of bound memory error occurs on temporary variable in HB-trie iterator next function due to invalid length
- Dirty blocks of old file

HB-trie iterator bug fix & block cache optimization
- Out of bound memory error occurs on temporary variable in HB-trie iterator next function due to invalid length
- Dirty blocks of old file after compaction can be removed from cache without flushing

show more ...


# 7c0433f5 23-Jul-2013 Jung-Sang Ahn <jungsang.ahn@gmail.com>

Initial commit