1 eblob (0.17.3) unstable; urgency=low
3 * Fixed range iterator and keys found in RAM for supposed-to-be-sorted blobs
4 * Added google groups link
5 * added missing eblob_iterate_existing prototype
6 * added lost libboost-system-dev build-dep
7 * Use autogenerated major/minor eblob versions.
8 * add debug to eblob_init for eblob_stat_init errors
9 * move features to separate file - features.h
10 * added -W option notes
11 * -W and -Wextra is the same thing
12 * added -fno-strict-aliasing notes
13 * blob: added eblob_pagecache_hint()
14 * added posix_fadvise test
15 * move definition of EBADFD to blob.h
16 * blob: sizeof(char) is 1
17 * Added timespamps to test
18 * Link eblob and eblob_static with Boost_SYSTEM_LIBRARIES
19 * Additional info for Boost on build
20 * also look for boost system
21 * replace fdopendir with opendir
22 * mac os x build fixes
23 * fixed misstype in merge.cpp
25 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 14 Nov 2012 19:51:18 +0400
27 eblob (0.17.2) unstable; urgency=low
29 * fxd depends generation
30 * Use small-lettered cmake functions
31 * Added python support
32 * Added rpath into binaries
34 * Move snappy into global build dep
35 * When linking eblob_regex_iter do not use all boost libs, but only needed
37 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 06 Sep 2012 18:05:09 +0400
39 eblob (0.17.1) unstable; urgency=low
41 * Fixed 1000-records defragmentation limit
42 * Use bulk read in iterator
44 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 20 Aug 2012 19:04:49 +0400
46 eblob (0.17.0) unstable; urgency=low
48 * Moved to log levels from log masks
50 -- Evgeniy Polyakov <zbr@ioremap.net> Sun, 19 Aug 2012 16:17:22 +0400
52 eblob (0.16.11) unstable; urgency=low
54 * Turn off timed defrag
55 * Get rid of stdint, it exists everywhere
56 * Moved to cmake from autoconf. Courtesy to Vsevolod Velichko <torkvema@gmail.com>
58 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 18 Aug 2012 17:07:25 +0400
60 eblob (0.16.10) unstable; urgency=low
62 * Added possibility to start defragmentation on demand
64 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 08 Aug 2012 12:05:03 +0400
66 eblob (0.16.9) unstable; urgency=low
68 * Only allow names which are in form of '-.' without suffixes
69 * Do not return header data in python eblob iterator
71 * Do not compile example/iterate_send.cpp
72 * Speedup eblob start using bulk index read
74 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 03 Aug 2012 23:56:29 +0400
76 eblob (0.16.8) unstable; urgency=low
78 * Check if file is really opened in iterator.cpp
80 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 05 Jul 2012 17:31:21 +0400
82 eblob (0.16.7) unstable; urgency=low
84 * Fix removed flags in indexes
86 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 02 Jul 2012 20:03:06 +0400
88 eblob (0.16.6) unstable; urgency=low
90 * Use boost::iostreams::file_source instead of
91 boost::iostreams::mapped_file, since the latter leaks
92 * Added iterator program which sends data to elliptics
94 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 25 Jun 2012 20:13:13 +0400
96 eblob (0.16.5) unstable; urgency=low
100 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 25 Jun 2012 18:19:13 +0400
102 eblob (0.16.4) unstable; urgency=low
104 * Use libsnappy1 or snappy
106 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 18 Jun 2012 14:19:13 +0400
108 eblob (0.16.3) unstable; urgency=low
110 * Use libsnappy1 instead of snappy
112 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 18 Jun 2012 14:12:13 +0400
114 eblob (0.16.2) unstable; urgency=low
116 * Added flag which prevents free-space check during write
118 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 18 Jun 2012 11:56:13 +0400
120 eblob (0.16.1) unstable; urgency=low
122 * Enable defragmentation
124 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 9 Jun 2012 17:56:13 +0400
126 eblob (0.16.0) unstable; urgency=low
128 * Use ioremap::eblob namespace
130 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 7 Jun 2012 23:49:13 +0400
132 eblob (0.15.10) unstable; urgency=low
134 * Fixed build on Ubuntu 12.04 Presice
136 -- Anton Kortunov <toshic@yandex-team.ru> Thu, 17 May 2012 15:11:04 +0400
138 eblob (0.15.9) unstable; urgency=low
140 * Write 'removed' record in ->prepare(), so it can not be read in parallel. commit() will set correct bit. eblob_write() will do it too.
142 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 28 Apr 2012 01:19:13 +0400
144 eblob (0.15.8) unstable; urgency=low
146 * Use correct F_SETFD/FD_CLOEXEC
148 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 27 Apr 2012 20:58:13 +0400
150 eblob (0.15.7) unstable; urgency=low
152 * added O_CLOEXEC flags
153 * Do not return -ENOSPACE when EBLOB_RESERVE_10_PERCENTS is set and size is less than blob-size, but more than 0.1 of total size
155 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 27 Apr 2012 00:30:13 +0400
157 eblob (0.15.6) unstable; urgency=low
159 * disable defrag for now
161 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 18 Apr 2012 00:18:13 +0400
163 eblob (0.15.5) unstable; urgency=low
165 * Index and data files should be 644 by default to allow others like nginx to read data
168 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 17 Apr 2012 21:05:13 +0400
170 eblob (0.15.4) unstable; urgency=low
172 * Do not sync in separate thread if sync interfal is zero - we will sync on every write anyway
173 * Added no-footer blob flag
174 * Added overwrite-commits flags
175 * Removed posix_fallocate() call
176 * Added hole detection
177 * eblob_py_iterator cleanup
178 * Drop macroses which are not accessible in centos
179 * Do not include blob.h into namespace
181 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 6 Apr 2012 00:30:13 +0400
183 eblob (0.15.3) unstable; urgency=low
185 * Only reserve 10% of free space when EBLOB_RESERVE_10_PERCENTS blob-config-flag is set
186 * Added prepare/commit methods to cpp bindings
187 * Unify blob names - rename existing if found
188 * Generate bloom filter in case of generation sorted index during startup
189 * Use sleep_time-- instead of --sleep_time to honor 1 second timeouts
190 * Sync iteration must be protected by b->lock
192 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 23 Mar 2012 16:02:13 +0400
194 eblob (0.15.2) unstable; urgency=low
196 * Fixed read-modify-write column update
197 * Fixed missed column during type remove
198 * Use correct python path
199 * Added eblob::truncate()
200 * Protect bctl->sort update - fixed defragmentation race
201 * If user does not provide config->log then use stdout logger in cpp binding
202 * Added eblob.py setup.py extra dist files
204 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 19 Mar 2012 00:53:13 +0400
206 eblob (0.15.1) unstable; urgency=low
209 * Rename defragmented blobs just after they are created
211 * Do not use openat()
213 -- Evgeniy Polyakov <zbr@ioremap.net> Sun, 11 Mar 2012 21:04:13 +0400
215 eblob (0.15.0) unstable; urgency=low
217 * Added 'automatic' test/check tool
218 * New automatic defragmentation implementation
219 * Added ::key() method
222 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 29 Feb 2012 22:06:13 +0400
224 eblob (0.14.4) unstable; urgency=low
226 * Added raw python blob class
227 * eblob_remove_all(): when RAM lookup fails check disk
228 * Deleted eblob_gen_index.cpp
230 -- Evgeniy Polyakov <zbr@ioremap.net> Sun, 19 Feb 2012 00:11:13 +0400
232 eblob (0.14.3) unstable; urgency=low
234 * Added python eblob constructor that accepts eblob_config structure on input
236 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 16 Feb 2012 22:45:13 +0400
238 eblob (0.14.2) unstable; urgency=low
240 * Use allocate/read for checksum calculation when reading small objects
241 * Skip .tmp files when scanning base names
243 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 8 Feb 2012 22:54:13 +0400
245 eblob (0.14.1) unstable; urgency=low
247 * Added start/num parameters to iterate over selected number of blobs.
249 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 1 Feb 2012 00:55:13 +0400
251 eblob (0.13.13) unstable; urgency=low
253 * Use ssize_t instead of int in eblob_copy_data()
255 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 30 Jan 2012 18:33:13 +0400
257 eblob (0.13.12) unstable; urgency=low
259 * Use chunked splice/copy, since we may have really big objects written
261 -- Evgeniy Polyakov <zbr@ioremap.net> Sun, 29 Jan 2012 21:33:13 +0400
263 eblob (0.13.11) unstable; urgency=low
265 * Allow to rollback preallocation if prepare fails
267 -- Evgeniy Polyakov <zbr@ioremap.net> Sun, 29 Jan 2012 06:03:13 +0400
269 eblob (0.13.10) unstable; urgency=low
271 * Merge helpers and fixes
273 -- Evgeniy Polyakov <zbr@ioremap.net> Sun, 29 Jan 2012 03:00:13 +0400
275 eblob (0.13.9) unstable; urgency=low
277 * If we are doing prepare, and there is some old data - reserve 2 times as much as requested
279 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 20 Dec 2011 01:12:13 +0400
281 eblob (0.13.8) unstable; urgency=low
283 * Added free space check before trying to reserve space on disk
284 * Truncate stat file precisely to the number of bytes written
285 * Fixed cached keys removal
287 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 20 Dec 2011 01:12:13 +0400
289 eblob (0.13.7) unstable; urgency=low
291 * Added actual index size checks.
292 * Update index early in eblob_write_prepare_disk().
293 * eblob_write() does not need full eblob_write_commit_nolock(), only low-level on-disk part.
295 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 19 Dec 2011 04:36:13 +0400
297 eblob (0.13.6) unstable; urgency=low
299 * Fixed cache entry stall list head processing
301 -- Evgeniy Polyakov <zbr@ioremap.net> Sun, 18 Dec 2011 16:53:13 +0400
303 eblob (0.13.5) unstable; urgency=low
305 * Fixed cache entry removal
307 -- Evgeniy Polyakov <zbr@ioremap.net> Sun, 18 Dec 2011 05:02:13 +0400
309 eblob (0.13.4) unstable; urgency=low
311 * If commit provides size, use it as object size. If prepare reuses existing region, do not change its sizes.
312 * Changed eblob_write_prepare() first to try to check existing region if it is big enough.
314 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 17 Dec 2011 23:54:13 +0400
316 eblob (0.13.3) unstable; urgency=low
318 * Initialize allocated memory for ecache to 0
320 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 17 Dec 2011 06:54:13 +0400
322 eblob (0.13.2) unstable; urgency=low
324 * Optimize prepare (for eblob_write_prepare() only) call to reuse existing prepared area if its size is big enough
326 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 17 Dec 2011 05:41:13 +0400
328 eblob (0.13.1) unstable; urgency=low
330 * Fixed cache balancing
332 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 15 Dec 2011 22:02:13 +0400
334 eblob (0.13.0) unstable; urgency=low
336 * Added configurable two-queue cache for read data by Anton Kortunov <toshic.toshic@gmail.com>
338 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 15 Dec 2011 22:00:13 +0400
340 eblob (0.12.23) unstable; urgency=low
342 * Added eblob_read_nocsum() - read data without csum check
344 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 2 Dec 2011 22:00:13 +0400
346 eblob (0.12.22) unstable; urgency=low
348 * Added eblob_csum_ok() - runtime csum read check
350 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 26 Nov 2011 15:59:13 +0400
352 eblob (0.12.21) unstable; urgency=low
354 * Skip malformed zero entries during iteration
355 * eblob_fill_write_control_from_ram() should not check whether aligned size is enough when doing read command
357 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 24 Nov 2011 23:05:43 +0400
359 eblob (0.12.20) unstable; urgency=low
361 * Initialize eblob_write_control to zeroes in eblob_plain_write()
363 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 23 Nov 2011 23:36:57 +0400
365 eblob (0.12.19) unstable; urgency=low
367 * Multiple prepare/commit fixes for POHMELFS. Better write debug.
369 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 19 Nov 2011 01:18:35 +0400
371 eblob (0.12.18) unstable; urgency=low
373 * Added array of IO locks to protect state update during IO
374 * Simplified eblob_write()
375 * Dropped openssl bits
377 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 14 Nov 2011 16:17:20 +0400
379 eblob (0.12.17) unstable; urgency=low
381 * Fill in-memory rbtree and bloom filter for online generated sorted index
382 * Do not update in-memory structures before pwrite
383 * Added eblob_get_types function
385 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 31 Oct 2011 22:02:21 +0400
387 eblob (0.12.16) unstable; urgency=low
389 * Don't compare flags in bsearch callback
391 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 25 Oct 2011 21:16:23 +0400
393 eblob (0.12.15) unstable; urgency=low
395 * Do not open index and data files again in eblob_iterate
396 * Update unsorted indexes of removed records with BLOB_DISK_CTL_REMOVE flag
397 * Use 50 millions of records in blob by default
398 * Added eblob_merge (instead of old eblob_defrag) which defragments and
399 merges (multiple) blobs into larger one
401 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 24 Oct 2011 18:31:03 +0400
403 eblob (0.12.14) unstable; urgency=low
405 * Added bsearch statistics and on-disk lookup debugs
406 * Use 40 indexes per range block. Use 128 bits per index for bloom.
408 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 19 Oct 2011 20:51:23 +0400
410 eblob (0.12.13) unstable; urgency=low
412 * Fixed sorted index bsearch range calculation
414 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 18 Oct 2011 18:41:25 +0400
416 eblob (0.12.12) unstable; urgency=low
418 * Added bloom filter in sorted index blocks
419 * Added tree for range index search
421 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 15 Oct 2011 05:36:21 +0400
423 eblob (0.12.11) unstable; urgency=low
425 * Only read mapped data blob if EBLOB_ITERATE_FLAGS_ALL flag is set
427 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 12 Oct 2011 00:51:56 +0400
429 eblob (0.12.10) unstable; urgency=low
431 * Returned offline defrag tool
433 * Check if record is removed in blob
435 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 11 Oct 2011 01:22:10 +0400
437 eblob (0.12.9) unstable; urgency=low
443 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 03 Oct 2011 20:48:53 +0400
445 eblob (0.12.8) unstable; urgency=low
447 * Use internal ctl iterator when truncating last record
448 * Added initial data offset shift into eblob gen
450 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 30 Sep 2011 19:31:15 +0400
452 eblob (0.12.7) unstable; urgency=low
454 * Fixed error checking in eblob_base_remove
455 * Call iteration callback for old blobs when EBLOB_ITERATE_FLAGS_ALL is set
457 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 28 Sep 2011 19:16:14 +0400
459 eblob (0.12.6) unstable; urgency=low
461 * If we have old entry, mark it removed always, not only when flag is set.
463 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 27 Sep 2011 15:51:14 +0400
465 eblob (0.12.5) unstable; urgency=low
467 * Added overwrite eblob flag
468 * Only copy/splice old data into new chunk when append/overwrite flag is set
470 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 27 Sep 2011 01:03:47 +0400
472 eblob (0.12.4) unstable; urgency=low
474 * Made eblob_gen_index embed-only
476 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 23 Sep 2011 18:07:21 +0400
478 eblob (0.12.3) unstable; urgency=low
480 * Close race between sort lookups and uncompleted sort setup in bctl
482 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 21 Sep 2011 19:36:33 +0400
484 eblob (0.12.2) unstable; urgency=low
486 * Added eblob_gen_index util to generate index files from data blobs
487 * Extended debug in eblob helpers
489 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 21 Sep 2011 15:03:37 +0400
491 eblob (0.12.1) unstable; urgency=low
493 * Use temporary offsets when iterating over blobs.
495 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 15 Sep 2011 03:15:09 +0400
497 eblob (0.12.0) unstable; urgency=low
499 * Implemented append write.
500 * Added iteration flags
502 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 13 Sep 2011 00:27:25 +0400
504 eblob (0.11.2) unstable; urgency=low
506 * Do not lock eblob_commit_ram()
508 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 09 Sep 2011 20:18:45 +0400
510 eblob (0.11.1) unstable; urgency=low
512 * Fixed bug with on-disk index lookup
513 * Added iterator in Python binding
515 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 06 Sep 2011 23:51:29 +0400
517 eblob (0.11.0) unstable; urgency=low
519 * Get rid of unused config fields
520 * Moved comparison function into include/eblob/blob.h
521 * Initial error value in eblob_read_range_on_disk() should be 0
522 * Added records_in_blob into cfg config which limits maximum number of
523 records before blob is closed
525 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 31 Aug 2011 00:23:46 +0400
527 eblob (0.10.13) unstable; urgency=low
529 * Use rb_prev() to iterate over tree in range request, since weRBtree is
530 sorted in descending order
531 * Set hash->rb_root to RB_ROOT prior its usage
533 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 30 Aug 2011 00:26:56 +0400
535 eblob (0.10.12) unstable; urgency=low
537 * Added rbtree.h into library/Makefile.am
538 * Revert "Always read eblob_disk_control from data_fd in
539 eblob_fill_write_control_from_ram()"
541 -- Evgeniy Polyakov <zbr@ioremap.net> Sun, 28 Aug 2011 05:27:09 +0400
543 eblob (0.10.11) unstable; urgency=low
545 * Always account for on-disk entries
546 * Switched from hash table to rbtree to store keys
548 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 26 Aug 2011 00:40:28 +0400
550 eblob (0.10.10) unstable; urgency=low
552 * Added EBLOB_TRY_OVERWRITE hash_flags flag. We try to overwrite data only
553 when it is set or for EBLOB_TYPE_META writes
554 * Always read eblob_disk_control from data_fd in
555 eblob_fill_write_control_from_ram()
556 * When updating index, put there wc->flags without BLOB_DISK_CTL_REMOVE set.
558 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 23 Aug 2011 04:59:39 +0400
560 eblob (0.10.9) unstable; urgency=low
562 * If sorted index size does not match unsorted, remove and regenerate sorted
564 * Fixed write-control-back for compressed data.
566 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 23 Aug 2011 04:06:38 +0400
568 eblob (0.10.8) unstable; urgency=low
570 * Use eblob_iterate_control->thread_num to indicate threads exiting, for
571 example when file iteration completes
572 * Remove key from hash table, if it happend to point to removed entry
573 * Added NOTICE debug about eblob_read() result: data/index fd, offset, size
575 * Added paranoidal check into eblob_read(), which checks that index read
576 from disk is not marked as removed.
577 * Added id search into eblob_index_info structure
578 * Extended regex matched info
580 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 18 Aug 2011 18:56:23 +0400
582 eblob (0.10.7) unstable; urgency=low
584 * workaround for old indexes, which did not set dc.disk_size
586 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 12 Aug 2011 23:15:45 +0400
588 eblob (0.10.6) unstable; urgency=low
590 * Added extensive error debug for E2BIG error in
591 eblob_fill_write_control_from_ram()
593 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 12 Aug 2011 23:05:45 +0400
595 eblob (0.10.5) unstable; urgency=low
597 * If eblob_fill_write_control_from_ram() read disk control from index and
598 its data_size or disk_size are 0, reread it from data blob
600 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 12 Aug 2011 20:05:23 +0400
602 eblob (0.10.4) unstable; urgency=low
604 * Update data header in overwrite
605 * Read ctl from index when reading, since overwrite does not update data
608 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 11 Aug 2011 23:35:36 +0400
610 eblob (0.10.3) unstable; urgency=low
612 * Fixed nasty bug in alignment calculation, which may lead to unability to
613 read data. Also need to copy write_control even in overwrite case
615 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 11 Aug 2011 04:30:14 +0400
617 eblob (0.10.2) unstable; urgency=low
619 * Added BLOB_DISK_CTL_WRITE_RETURN flag, which specifies whether
620 eblob_write_control should be copied back into data
622 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 11 Aug 2011 02:35:49 +0400
624 eblob (0.10.1) unstable; urgency=low
626 * We should check key first, since second loop in eblob_find_on_disk()
627 starts with different key
628 * Propagate key into RAM if we read it from disk
629 * Added eblob_regex_iter into bin_PROGRAMS
630 * Added utility eblob_index_info
631 * Added python binding
633 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 10 Aug 2011 23:12:55 +0400
635 eblob (0.10.0) unstable; urgency=low
639 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 10 Aug 2011 05:49:55 +0400
641 eblob (0.9.9) unstable; urgency=low
643 * Unified on-disk search for exact match and non-removed entries
644 * Generate sorted index for blobs which index is less than max index already
646 * Added index_size to stop iterator, if index grew under us
648 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 08 Aug 2011 23:34:32 +0400
650 eblob (0.9.8) unstable; urgency=low
652 * eblob_hash_data() should use high bits untouched
654 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 06 Aug 2011 01:35:52 +0400
656 eblob (0.9.7) unstable; urgency=low
658 * Get eblob_write_control from RAM only when all its fields are zeroes, so
659 it is plain eblob_commit_write() call
662 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 05 Aug 2011 01:47:55 +0400
664 eblob (0.9.6) unstable; urgency=low
666 * Do not send range replies for removed data and multiple times for objects,
667 which are present on disk and in RAM
669 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 03 Aug 2011 21:11:53 +0400
671 eblob (0.9.5) unstable; urgency=low
673 * Fixed old eblob iteration
674 * Implemented on-disk range requests
676 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 02 Aug 2011 17:17:58 +0400
678 eblob (0.9.4) unstable; urgency=low
680 * Fixed range requests (it does not iterate over on-disk index yet)
681 * Mark existing index entry as removed in prepare hook
683 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 01 Aug 2011 21:58:11 +0400
685 eblob (0.9.3) unstable; urgency=low
687 * We must check what bsearch() return and return error if needed.
689 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 30 Jul 2011 01:20:56 +0400
691 eblob (0.9.2) unstable; urgency=low
693 * When adding new column and reallocating bases we should sort base_ctls
694 * Added local checksum calculation conde isntead of locked openssl
696 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 29 Jul 2011 23:56:49 +0400
698 eblob (0.9.1) unstable; urgency=low
700 * configure.in udpate
702 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 27 Jul 2011 21:06:23 +0400
704 eblob (0.9.0) unstable; urgency=low
706 * Export convenient prepare/commit helpers
707 * Added write offsets
708 * Do not remove old index
709 * Search in both directions frm bsearch()-found entry when looking up key in
711 * Refactor sorted generation code
712 * Added paranoidal check about opening existing blobs for writing
714 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 27 Jul 2011 20:52:22 +0400
716 eblob (0.8.7) unstable; urgency=low
718 * Create sorted indexes on startup. Use them instead of plain indexes.
719 * Fixed eblob_realloc_base_type() invocation from eblob_add_new_base().
720 * Fixed int overflow during lock allocation.
721 * Initialize log_file_ only when we setup log_file string.
723 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 22 Jul 2011 01:46:58 +0400
725 eblob (0.8.6) unstable; urgency=low
728 * Added ability to overwrite data in place
729 * Fixed race between object removal and sorted index generation (not
732 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 19 Jul 2011 22:41:18 +0400
734 eblob (0.8.5) unstable; urgency=low
736 * Use /dev/stdout as default log file if NULL was provided in constructor
737 * Implemented on-disk index
738 * Added boost::regex check and compile regex iterator if it is present
740 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 19 Jul 2011 02:00:09 +0400
742 eblob (0.8.4) unstable; urgency=low
744 * Added thread num param to iterator_callbacks structure
746 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 15 Jul 2011 19:07:40 +0400
748 eblob (0.8.3) unstable; urgency=low
750 * Only run automatic defrag if enabled. Disabled by default.
751 * Force ascending index sorting at blob loading time
753 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 14 Jul 2011 02:04:47 +0400
755 eblob (0.8.2) unstable; urgency=low
757 * Use single defragmentation iterator
760 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 13 Jul 2011 21:54:36 +0400
762 eblob (0.8.1) unstable; urgency=low
764 * If data was not compressed, but BLOB_DISK_CTL_COMPRESS flag was set,
765 return data as is and clear flag
766 * Do not mark the same entry as removed twice
768 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 13 Jul 2011 20:35:42 +0400
770 eblob (0.8.0) unstable; urgency=low
772 * Added more checks for malformed entries. Recover index if possible.
773 * Added eblob_remove_blobs(), which removes all blobs from disk. Root is
774 requred to get path through /ptoc/self/fd
775 * Allow eblob(struct eblob_config *cfg) constructor only, i.e. with logger
777 * Added automatic defragmentation
779 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 08 Jul 2011 03:05:26 +0400
781 eblob (0.7.0) unstable; urgency=low
783 * Get rid of mapped file as in-memory index
784 * Extended iterator interface
785 * Added C++ cleanup_blobs() empty method
787 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 05 Jul 2011 22:01:29 +0400
789 eblob (0.6.1) unstable; urgency=low
791 * Disable memory index in mmap file
793 -- Evgeniy Polyakov <zbr@ioremap.net> Sun, 03 Jul 2011 02:03:48 +0400
795 eblob (0.6.0) unstable; urgency=low
797 * Added snappy compression support.
799 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 29 Jun 2011 03:53:56 +0400
801 eblob (0.5.2) unstable; urgency=low
803 * Added start/max types into iterator. Exoport nice interface outside.
805 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 28 Jun 2011 01:32:38 +0400
807 eblob (0.5.1) unstable; urgency=low
809 * Create new files, if eblob dir is empty
811 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 25 Jun 2011 03:38:43 +0400
813 eblob (0.5.0) unstable; urgency=low
815 * Added multiple columns support
817 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 25 Jun 2011 03:05:16 +0400
819 eblob (0.4.4) unstable; urgency=low
821 * Added eblob_remove_hashed() and eblob::remove_hashed()
823 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 22 Jun 2011 20:27:12 +0400
825 eblob (0.4.3) unstable; urgency=low
827 * Return real data offset, do not force clients to mess with sizeof(struct
830 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 21 Jun 2011 02:45:45 +0400
832 eblob (0.4.2) unstable; urgency=low
835 * Renames write methods
837 -- Evgeniy Polyakov <zbr@ioremap.net> Sun, 19 Jun 2011 01:52:10 +0400
839 eblob (0.4.1) unstable; urgency=low
841 * Switched to fixed-size eblob_key interface
843 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 18 Jun 2011 00:33:48 +0400
845 eblob (0.4.0) unstable; urgency=low
848 * Added namespace zbr
849 * Do not iterate if file size is zero
851 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 17 Jun 2011 21:16:06 +0400
853 eblob (0.3.14) unstable; urgency=low
855 * Added eblob range query
856 * Added remove() method
859 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 16 Jun 2011 21:28:55 +0400
861 eblob (0.3.13) unstable; urgency=low
863 * Overwrite hash entry if we asked to replace it and sizes match
864 * Use (part of) provided key as hash table index
865 * Preallocate more space for hash entries in a bucket
866 * Save references to open data/index failes in iterator
867 * Initial implementation of startup defragmentation
868 * Extended eblob_iterator class to support index and data iterators
870 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 07 Jun 2011 12:03:49 +0400
872 eblob (0.3.12) unstable; urgency=low
874 * Use the same mmap file for subsequent starts by default
875 * Grow and start map file by 1 Gb
877 -- Evgeniy Polyakov <zbr@ioremap.net> Fri, 03 Jun 2011 07:27:19 +0400
879 eblob (0.3.11) unstable; urgency=low
881 * Do not move entries around, since we are closing down whole mapping anyway
882 * Use posix_fallocate() to preallocate sufficiently large mmap files
883 * Added completion callback and matched callback counters into iterator
884 * Allocate/free mmap_file and use eblob file by default as a base path for
886 * truncate map file to 0 at cleanup
888 -- Evgeniy Polyakov <zbr@ioremap.net> Thu, 02 Jun 2011 07:24:06 +0400
890 eblob (0.3.10) unstable; urgency=low
892 * Remap new portions of backend allocation file at different locations.
894 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 01 Jun 2011 10:52:25 +0400
896 eblob (0.3.9) unstable; urgency=low
898 * Do not unmap map_base prior new map
900 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 01 Jun 2011 09:18:29 +0400
902 eblob (0.3.8) unstable; urgency=low
904 * Use mmap(MAP_FIXED)
906 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 01 Jun 2011 09:03:39 +0400
908 eblob (0.3.7) unstable; urgency=low
910 * Use mremap(MREMAP_FIXED | MREMAP_MAYMOVE)
912 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 01 Jun 2011 08:51:53 +0400
914 eblob (0.3.6) unstable; urgency=low
916 * Use munmap/mmap instead of mremap, sine the former may fail miserably
918 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 01 Jun 2011 08:39:41 +0400
920 eblob (0.3.5) unstable; urgency=low
922 * Fixed ostringstream and its std::string dereference
924 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 01 Jun 2011 08:26:21 +0400
926 eblob (0.3.4) unstable; urgency=low
929 * Use ostringstream for mmap file name
931 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 01 Jun 2011 07:21:55 +0400
933 eblob (0.3.3) unstable; urgency=low
937 -- Evgeniy Polyakov <zbr@ioremap.net> Wed, 01 Jun 2011 06:31:19 +0400
939 eblob (0.3.2) unstable; urgency=low
941 * Added library version numbers
943 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 31 May 2011 13:29:03 +0400
945 eblob (0.3.1) unstable; urgency=low
947 * Fixed shlibs generation
949 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 31 May 2011 13:02:16 +0400
951 eblob (0.3.0) unstable; urgency=low
953 * Use mmapped file as a base for all hash entries allocations
954 * Added version into debian's dh_makeshlibs
955 * Moved from linked lists into arrays in eblob hash table
956 * Made eblob prepare/commit more thread friendly
958 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 31 May 2011 09:41:19 +0400
960 eblob (0.2.0) unstable; urgency=low
962 * Export eblob_read_file_index() which returns blob index as well as fd,
963 size and offset for given record.
965 -- Evgeniy Polyakov <zbr@ioremap.net> Sat, 14 May 2011 00:38:31 +0400
967 eblob (0.1.7) unstable; urgency=low
971 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 01 Mar 2011 00:03:53 +0300
973 eblob (0.1.6) unstable; urgency=low
975 * Correctly set index's disk_size to sizeof(struct eblob_disk_control)
977 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 28 Feb 2011 23:49:38 +0300
979 eblob (0.1.5) unstable; urgency=low
981 * Allocate a bit more space for filename to include .index suffix.
983 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 28 Feb 2011 23:09:19 +0300
985 eblob (0.1.4) unstable; urgency=low
987 * Implemented run-time index generation and fixed defragmented offsets.
989 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 15 Feb 2011 03:05:10 +0300
991 eblob (0.1.3) unstable; urgency=low
993 * Do not lock entries in eblob_hash_insert_raw() since they should be locked
996 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 08 Feb 2011 02:38:28 +0300
998 eblob (0.1.2) unstable; urgency=low
1000 * Set memory locking limits to infinity if EBLOB_HASH_MLOCK is set in
1003 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 08 Feb 2011 02:31:33 +0300
1005 eblob (0.1.1) unstable; urgency=low
1007 * Use mlockall(MCL_CURRENT | MCL_FUTURE) to lock all current and future
1008 allocations when EBLOB_HASH_MLOCK is set.
1010 -- Evgeniy Polyakov <zbr@ioremap.net> Tue, 08 Feb 2011 02:22:36 +0300
1012 eblob (0.1.0) unstable; urgency=low
1014 * Switched to sha512 and 64-byte IDs
1016 -- Evgeniy Polyakov <zbr@ioremap.net> Mon, 29 Nov 2010 23:43:56 +0300
1018 eblob (0.0.1) unstable; urgency=low
1020 * libeblob is a low-level IO library which stores data in huge blob files appending records one after another.
1022 -- Evgeniy Polyakov <zbr@ioremap.net> Sun, 28 Jul 2010 20:09:20 +0400