forked from reverbrain/elliptics
-
Notifications
You must be signed in to change notification settings - Fork 9
/
elliptics-bf.spec
3401 lines (2915 loc) · 165 KB
/
elliptics-bf.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
Summary: Distributed hash table storage
Name: elliptics
Version: 2.27.6.5
Release: 1%{?dist}
License: GPLv2+
Group: System Environment/Libraries
URL: http://www.ioremap.net/projects/elliptics
Source0: %{name}-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: python-devel
BuildRequires: eblob-devel >= 0.24.0
BuildRequires: libblackhole-devel = 1.9.0
BuildRequires: libev-devel libtool-ltdl-devel
BuildRequires: cmake msgpack-devel python-msgpack
BuildRequires: handystats >= 1.11.6
%define boost_ver %{nil}
BuildRequires: boost%{boost_ver}-devel
BuildRequires: python-virtualenv
%description
Elliptics network is a fault tolerant distributed hash table
object storage.
%package devel
Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
Elliptics network is a fault tolerant distributed hash table
object storage.
This package contains libraries, header files and developer documentation
needed for developing software which uses the cairo graphics library.
%package client
Summary: Elliptics client library (C++/Python bindings)
Group: Development/Libraries
%description client
Elliptics client library (C++/Python bindings)
%package client-devel
Summary: Elliptics library C++ binding development headers and libraries
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: libblackhole-devel = 1.9.0
%description client-devel
Elliptics client library (C++/Python bindings), devel files
%prep
%setup -q
%build
export LDFLAGS="-Wl,-z,defs"
export DESTDIR="%{buildroot}"
-%{cmake} .
#make %{?_smp_mflags}
make
#make test
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
rm -f %{buildroot}%{_libdir}/*.a
rm -f %{buildroot}%{_libdir}/*.la
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%post client -p /sbin/ldconfig
%postun client -p /sbin/ldconfig
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%doc README
%{_bindir}/dnet_ioserv
%{_libdir}/libelliptics.so.*
%{_mandir}/man1/*
%files devel
%defattr(-,root,root,-)
%{_bindir}/dnet_run_servers
%{_libdir}/libelliptics.so
%defattr(-,root,root,-)
%files client
%defattr(-,root,root,-)
%{_bindir}/dnet_iterate
%{_bindir}/dnet_iterate_move
%{_bindir}/dnet_find
%{_bindir}/dnet_ioclient
%{_bindir}/dnet_notify
%{_bindir}/dnet_ids
%{_bindir}/dnet_balancer
%{_bindir}/dnet_recovery
%{_bindir}/dnet_client
%{_libdir}/libelliptics_client.so.*
%{_libdir}/libelliptics_cpp.so.*
%{python_sitelib}/elliptics/core.so.*
%{python_sitelib}/elliptics_recovery/*
%{python_sitelib}/elliptics/*.py*
%{python_sitelib}/elliptics*.egg-info
%files client-devel
%defattr(-,root,root,-)
%{_includedir}/*
%{_libdir}/libelliptics_client.so
%{_libdir}/libelliptics_cpp.so
%{_datadir}/elliptics/cmake/*
%{python_sitelib}/elliptics/core.so
%changelog
* Mon Apr 23 2018 Kirill Smorodinnikov <[email protected]> - 2.27.6.5
- logger: rename data_* and json_* in write access logs
* Sat Mar 31 2018 Kirill Smorodinnikov <[email protected]> - 2.27.6.4
- Remove useless check
- recovery: use monitor with `with` statement
- Fix typos
- recovery: limit waiting for results from a process pool
* Wed Mar 28 2018 Kirill Smorodinnikov <[email protected]> - 2.27.6.3
- logger: do not filter access logs
- fix: output correct status in access log for transaction
* Tue Feb 27 2018 Kirill Smorodinnikov <[email protected]> - 2.27.6.2
- Fix using method of an entry with an error
* Wed Feb 21 2018 Kirill Smorodinnikov <[email protected]> - 2.27.6.1
- access: attach trace_id to access context
- access: use less wrapped logger for access
* Tue Feb 13 2018 Kirill Smorodinnikov <[email protected]> - 2.27.6.0
- logs: introduce `dnet_access_context`
- recovery: use attribute for `unavailable_groups`
- Remove access log level and introduce separated access logger instead
- recovery: add attribute container to monitor stats
- Separate `dnet_process_reply()` from `dnet_process_recv()`
- recovery: monir style fix
- fix typo
- recovery: add number of unavailable groups to statistics
- Update monitor tests
- Update obtaining backends statistics via binary protocol
- Update obtaining backends statistics via HTTP
- Update parsing http request
* Mon Dec 11 2017 Kirill Smorodinnikov <[email protected]> - 2.27.5.0
- Refactor client code for commands from newapi
- Simplify usage of aggregasted()
- log: add output helpers for some stl containers
- Remove incorrect typedef
- log: add access log on trans destruction
- Fix typo
- tests: remove useless print
- log: add 'access' log level
- tests: sleep 1s to get updated backend's statistics
- stats: dump stats from handystats into string
- Fix typo
* Tue Nov 07 2017 Kirill Smorodinnikov <[email protected]> - 2.27.4.1
- dnet_client: fix printing defrag and inspect state
* Thu Nov 02 2017 Kirill Smorodinnikov <[email protected]> - 2.27.4.0
- Add test_inspect_backend test
- Allow to set ioprio to backend via config
- Add support of eblob's background inspect
- eblob: update to 0.24.0
* Thu Nov 02 2017 Kirill Smorodinnikov <[email protected]> - 2.27.3.6
- dnet_client: fix using wrong conversion
- dnet_client: fix missed 'status' property
- dnet_client: fix heappush missed argument
- dnet_client disable exceptions for lookup session
* Mon Oct 30 2017 Kirill Smorodinnikov <[email protected]> - 2.27.3.5
- dnet_client: Make compare create tmp_dir if it doesn't exist
* Fri Oct 27 2017 Kirill Smorodinnikov <[email protected]> - 2.27.3.4
- dnet_client: add compare command
- Stop bulk_read when the client has gone
- Fix typos
- tests: add test_dc_with_insufficient_route_list
* Mon Oct 23 2017 Kirill Smorodinnikov <[email protected]> - 2.27.3.3
- recovery: remove old RouteList class
- recovery: make sure that all specified groups are presented in route-list
* Wed Oct 11 2017 Kirill Smorodinnikov <[email protected]> - 2.27.3.2
- Cleanup includes in dnet.c
- Use modern handystats macro for formatted metrics
- Add statistics of handled commands per backend with statuses
- Do not check datasort_dir availability at startup
- log if some value from backend's config wasn't parsed
- Disable cache_weight and use disk_weight for all read requests
* Tue Oct 03 2017 Kirill Smorodinnikov <[email protected]> - 2.27.3.1
- elliptics_unique_lock refactoring and improvements
- Do not handle by cache commands with DNET_FLAGS_NOCACHE
- Add tests for reading/writing data from disk to cache via new commands
- Fix reading a key with non-empty json and empty data
- Remove unused code from local_session
- cache: add reading/writing data with json from cache to backend
* Mon Sep 25 2017 Kirill Smorodinnikov <[email protected]> - 2.27.3.0
- cleanup
- cache: fix race
- pytest: fix test fail
- recovery: use watched logger
- python: add optional argument to elliptics.Logger and elliptics.create_node
- remove useless includes
- add `make_watched_logger()` helper
- update blackhole version in depencies
* Mon Sep 18 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.14
- fix sending bulk_read response as DNET_CMD_READ_NEW
- fix bulk_read with non-unique keys
* Fri Sep 08 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.13
- server-send: do not ignore failed writes
* Mon Sep 04 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.12
- Use monotonic time instead of system
- util: use common timer instead of pair of gettimeofday
- Update backend's weight only by positive timings
- stats: finally get rid of histograms
* Wed Aug 02 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.11
- update test with corrupted data
- verify checksum for headers on read
- Add elliptics-client alternative to shlibs args
* Wed Jul 26 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.10
- Return -ENOENT if a backend is not found
- fix 'io.output.queue.size' statistic
* Wed Jul 12 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.9
- Update handystats to >= 1.11.6
- do not reinterpret_cast nullptr
- Do not reset stalled net_state in dnet_io_process_network
* Fri Jun 30 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.8
- replace fd by ioflags in `blob-write-new:` log
* Thu Jun 29 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.7
- add data_- and json_- csum_time to 'blob-read-new' log
- create logger with asynchronous sink by make_file_logger
- add version to 'Elliptics starts' log
- add error logs when it is failed to read record's headers
* Wed Jun 21 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.6
- Move 'RECV cmd' logs for iterator to DEBUG level
- logs: add err to 'Could not create state' message
* Wed Jun 07 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.5
- python: pass remotes as is in elliptics.create_node
* Mon Jun 05 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.4
- backends: reset backend's state in case of error
* Mon Jun 05 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.3
- stats: add interfaces' speed to procfs/net
* Wed May 31 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.2
- depends: update handystats version to >= 1.11.4
- Move dnet_logger_get_trace_bit() to public header
* Tue Apr 11 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.1
- debian: add shlibs:Depends, misc:Depends to elliptics-dev package
* Fri Apr 07 2017 Kirill Smorodinnikov <[email protected]> - 2.27.2.0
- cleanup code
- config: cleanup code
- use uint32_t for backend_id
- refactoring: remove unused code
- logger: small refactoring & cleanup
- logger: add trace_scope ctor from session
- logger: refactoring attributes and functions names
- backends: shareable io pools
- server send: small memory optimization
- new bulk_read race fix
- new bulk_read in python binding
* Thu Mar 16 2017 Kirill Smorodinnikov <[email protected]> - 2.27.1.1
- new bulk_read command
- monitor: small refactoring
- logger: optimizations: 1) use std::vector instead of std::list in 'struct trace'; 2) check logging level in DNET_LOG macro
* Mon Mar 06 2017 Kirill Smorodinnikov <[email protected]> - 2.27.1.0
- srw: RIP
- srw: update to cocaine v0.12.12
* routes: prevent adding route to lost connection
- fix: remove references to removed submodule
- indexes: RIP
- fix: add lock around running throw local route table
- monitor: cleanup code
- monitor: refactor http server and add final log
- logs: move RECV log to info level and add timings
- Update srw to cocaine 0.12.11
- recovery: refactoring after latest changes
- recovery: removed unnecessary code, that removes uncommitted keys from dc and server-send recoveries
- recovery: use common process_merged_keys() in both dump and non-dump recoveries
- recovery: remove expired uncommitted keys
- recovery: use CAS with data timestamp for remove operations
- newapi: remove CAS with data timestamp fixes
- Fix timestamp cas for records without ext header
- newapi: remove CAS with data timestamp
- tests: added chunked server-send test to new api tests
- recovery: added test that reproduces bug with incorrect chunked server_send
- recovery: fixed bug with incorrect chunked server_send
- fix some issues found by clang static analyzer
- fix compilation errors on clang
- network: bugfix: no io-thread awake full_wait condvar, while net thread waits for it
- dc recovery: update status on server_send error
- recovery: use --data-flow-rate parameters in adjustment of timeout for server-send
- recovery: use old dc recovery only on ENXIO errors
- Add test for overridden in backend queue timeout
- Add queue_timeout to backends' config in monitor
- Allow to specify queue_timeout for a backend
- recovery: use cas_timestamp on write
- dc recovery: set correct json_timestamp on write
- recovery: enforce node destruction in main thread to ensure that all io-threads are completed before node destruction
- Update to blackhole v1.3.0-1
- fix(debian): update control to proper versions of cocaine
- refact(cocaine): adapt to 0.12.10
- recovery: use elliptics iterator error codes in stats
- recovery: optimizations
- ioserv: fork process before logger initialization
- recovery: dc: sort bucket items by physical order before server send
- blob_id & data_offset returned via a new protocol, used in a modified IteratorResultContainer
- recovery: merge: removed obsolete Recovery code; used server-send, copy-iter everywhere
- server-send: check that moving keys to itself doesn't permitted
- recovery: dump corrupted keys into {tmp_dir}/corrupted_keys file
- config: allow to put handystats config inside monitor object
- cache: allow to set cache size in kilo-, mega- and etc. bytes
- logs: decreas number of logs printed on info level
- recovery: retry only timeouted or broken connection attempts
- logger: cleanup elliptics/logger.hpp
- merge elliptics_cpp into elliptics_client
- logger: add const to logger_ref
- logger: set 'flush' to 1 message for file logger
- deprecate indexes subsystem
- net: do not choose route table check victims
- fix session.hpp code style
- using external sort for iterator result container sorting
- recovery: fail immediately when some iteration is failed
- logger: use local timezone in timestamp specification
- logger: update to blackhole v1.2.1
- separate package and protocol versions
- logger: migrate to blackhole v1
- debian: temporary rename elliptics-client to elliptics-client2.27
- fix using improper index
- cache: fix truncating data after sync
- net: add send_limit option
- localnode: add tracing support
- srw: better headers logging in tests
- srw: connect tracing mechanics of elliptics and cocaine
- localnode: accept {c,io}flags by all methods
- localnode: set DNET_FLAGS_NOLOCK for lookups
- localnode: handle exceptions for cocaine::deferred method calls
- recovery: added removed_uncommitted_keys & removed_corrupted_keys stats to 'recover' section
- forward: add ability to set forward node in session
- client: remove boost asio symbols from elliptics_client
- recovery: added 'commands' section in statistics
- recovery: do not skip big keys in dc recovery via server send
- debian: fixed elliptics-client depends on libblackhole1
- debian: add elliptics_node.hpp to elliptics-dev
- srw: use new cocaine repository interface
- srw: adapt to cocaine-v12.9, blackhole-v1.0.0rc1
- debian: remove install files of cocaine-plugin-elliptics
- cache: small fix in clear_json_timestamp()
- dnet_client: --json/--json-file and or --data/--data-file can be omitted
- iter: reset size of uncommitted records because it is unknown.
- tests: update newapi iterator tests for testing 7a48176
- packages: add libblackhole1 to elliptics and elliptics-client depends
- iterator: add to DNET_FLAGS_NOLOCK cflags for iterator
- net: fix addicting net thread on sending responses to one state
- remove useless #if #include #else #include #endif
- cache: replace raw_data_t by std::string
- Cleanup code
- cache: add json and json_timestamp to data_t
- cache: cleanup code
- cache: refactoring
- cache: handling of WRITE_NEW command with json
- backend: fix in log message for WRITE_NEW: data_offset -> data_size
- python: wrap python_async_result::iterator to free GIL in long operations
- cache: handling of READ_NEW & LOOKUP_NEW command with json
- tests: added cache tests to new api tests
- cocaine: remove libcocaine-plugin-elliptics
- session: added description of set_cache_lifetime()
- stats: update commands and top statistics for {READ,WRITE}_NEW
- tests: fixed bad cast of err in locks test
- oplock: lock keys during server-send
- server-send: write data by chunks
- server-send: use congestion_control_monitor for async writes with dynamic batch size
- dnet_client: add '-T/--trace-id' option to all commands
- dnet_client: add new subcommands
- dnet_client: refactor the code
- python: add docstrings to elliptics.newapi.Session methods
- git: add cocaine-plugin-elliptics temporary build files to .gitignore
- python: add update_json to elliptics.newapi.Session
- depends: update depends on libcocaine-dev and libcocaine-core3 to '>= 0.12.8.15'
- pytests: fix srw tests which occasionally fails
- tests: fix running pytests
- build: fix blackhole upper limit
- build: stick to cocaine-v12.8 and blackhole-v1.0beta1 (temporary)
- debian: add Suggests dependencies to elliptics-dev
- recovery: fix hanging process of multiprocessing.Manager
- tests: new target `test_python`
- stylistic changes (tests/, srw/, cocaine/)
- localnode: use newapi, read() returns record_info, write() not accepts offset
- srw: link with new cocaine-io-util shared lib
- srw: improve formatting in worker errors logging
- srw: more specific logging for errors raised in srw->process
- srw: comments and spell checking
- srw: change log level to debug in tests
- srw: pass sph to worker in cocaine invocation headers
- srw: add test for dispatch errors (unknown app, unknown event)
- pytests: fix failing monitor tests
- Remove log on session destroy
- debian: update cocaine depepdencies to 0.12.8
- srw: adapt to cocaine-v12.8
- srw: temporary fix for cocaine-v12.7
- srw: basic adaptation to cocaine-v12.7
- tests: fix race in reconnect test
- tests: fix sessions and server nodes lifetime issues
- tests: remove empty file
- tests: test.cpp falls out of test naming pattern
- srw: mark destroy phase in the log
- server: mark the end of server node destruction
- server: distinguish config errors from others
- debian: bump minimum blackhole version (>= 1.0.0-0alpha10)
- debian: update dependencies, make dependency on cocaine rigid for now
- build: rename target elliptics_cocaine to elliptics_srw
- build: drop direct dependency on libelliptics_cocaine from libelliptics
- tests: fix test output out of sync problem (observable when running on build farm)
- tests: impove test output readability
- tests: fix target name typo: dnet_queue_timeoue_test
- tests: safer way to set environment variables
- cleanup, comments and spelling fixes
- tests: srw_test.cpp: `sess` renamed to `client`
- tests: proper multinode support for srw and srw apps
- tests: target `test` should depend on `core_python` (elliptics python binding)
- tests: fix python srw tests (fixture cleanup and proper call order)
- build: use proper cmake construct for relative paths
- tests: framework little cleanup
- tests: remove libev, add binding/cpp dependencies
- srw: drop test app dependency on cocaine-core (cocaine-framework-native had stopped to force it)
- srw: refactor and adapt to cocaine-v12, blackhole-v1
- srw: move init/fini methods out of dnet.c completely to srw.cpp
- localnode: adapt to cocaine-v12, blackhole-v1
- foreign/asio: new submodule moved out of cocaine/ to the top level
- exec_context: add set_flags() method
- make methods to create exec_context accessible to srw module
- build: search for msgpack once only
- build: full library name in cmake module for cocaine-framework-native
- logging: little cleanup and double-free error avoidence
- comment texts correction
- plugins: adapt to cocaine-v12, blackhole-v1
- Add test for 'initial_config' in monitor statistics
- monitor: add 'initial_config' to enabled backend's json
- config: use libkora-util
- recovery: use absolute path for dumping stats from monitor
- python: remove unused 'server' argument from test functions
- Add json_timestamp to elliptics.newapi.Session
- Check RO status of backend on WRITE_NEW
- newapi: write CAS with data & json timestamps
- Add multi option '--user-flags' to dnet_client iterate
- python: Fix cloning newapi.Session
- Fix using data after free
- Fix returning wrong error status by plain_write and commit
- python: return None in read/lookup result entry's property on error
- newapi: overloaded get_timestamp() and added reset_timestamp() for interface consistancy
- newapi: fixed non-empty json timestamp on empty json
- Remove updating json_capacity by WRITE_NEW without DNET_IO_FLAGS_PREPARE
- added adjustable json_timestamp to newapi session
- mask annoying warning happening at the deep of blackhole v0.2
- move blackhole-dev from deps to submodule
- tests: fix compilation warning in server-send tests
- tests: add test for removing backend
- Provide 'remove_backend' via Python binding
- Provide 'remove_backend' via C++ binding
- Add 'remove' backend command
- docs: add comments to session methods
- Cleanup code by removing useless 'state' argument
- Fix typos
- tests: added description of m_serializable var in config_data class
- ioserv: fixed incorrect detection of backends count in dnet_server_io_init
- tests: backends: add backend to ioserv.conf after ioserv launch and enable this backend
- ioserv: dynamically parse & insert backend on DNET_BACKEND_ENABLE command
- json: Add 'trans' to 'finished' logs for {READ,WRITE}_NEW
- Add test for lookuping corrupted key
- Validate record on lookup if its checksum is requested
* Fri May 13 2016 Evgeniy Polyakov <[email protected]> - 2.26.11.0
- trans: always set @wait_ts at allocation time to node's wait timeout
- it will be overwritten if there is session's timeout
- this fixes 'wait-ts: 0' strings in logs for transactions allocated without session like ROUTE_LIST
- trans: minor clanup, remove transaction from all lists/trees under one lock
- test: server_send() timeout test has to check iterator's result, not each key's status
- backend: fix hanging backend intialization
- session: set session timeout to copy iterator and server_send() control structure
- server_send: extend control structures and add write timeout, set it for write sessions
- node: fixed auto assignment
- recovery: cast options.user_flags_set to int
- pytests: added TestRecoveryUserFlags: checks recovery with specified user_flags_set
- recovery: added --user_flags option: recover key if at least one replica has user_flags from specified user_flags_set
* Thu Mar 24 2016 Evgeniy Polyakov <[email protected]> - 2.26.10.3
- io: do not handle lookup by cache if it does not have the key, propagate error to dnet_cmd_process_raw() and call backend callback
- Move updating backend's weight to dnet_process_recv
- logs: fix mistake in format string
- logs: changed level of start/finish sent log messages
- logs: added helpers to print dnet_io_attr and dnet_trans
- Indent fixes
* Sat Mar 05 2016 Evgeniy Polyakov <[email protected]> - 2.26.10.2
- dc recovery: fix skipping keys when a whole server-send is failed
- server-send: add client address to 'sending response' log
- cmake: add option to disable long tests
- iterator-copy: stop eblob iterator if write error has been occurred
- server-send: move the check of write error occurence
- Fix status in ack for request failed with -ENXIO
- server_send: add tests for bad cases
- Fix hanging of backend initialization
- route: do not spam logs with debug route table content every time route table is requested
- binding: added cflags_checksum & cflags_nocache to python binding
- Fixed data size in write response:
- python: added `set_delay` method
- fixed trans number in a result in case of timeout
- spec: fixed version string comparison
* Sat Jan 23 2016 Evgeniy Polyakov <[email protected]> - 2.26.10.1
- trans: remove transaction from timer tree in network thread to allow IO thread to run long callbacks and this would not affect 'real' timing for transaction in question
- set blackhole-dev' version to `0.2.4-1`
- trans: update transaction's timestamp just after it has been received right in the network thread. This allows to account for long unavailability of the IO thread, but yet do not complete transaction with timeout error
- dc_recovery: fixed extra 'recovered_keys' stats update on timeout
- trans: fixed race between timeout scanning thread and completion callback invocation, the latter does not remove transaction from the timer tree and transaction may be grabbed and freed by timeout checking thread
- dc_recovery: updated recovery/recovery.qdoc
- dc_recovery: added option --no-server-send
- build: Removed `EBLOB_LOG_SPAM`
- dc_recovery: processing of uncommitted keys in server-send recovery
- dc_recovery: retries of timeouted remove & server-send operations
- dc_recovery: explicitly remove corrupted keys
- dc_recovery: optimization: use server-send for small/medium keys
* Sun Jan 10 2016 Evgeniy Polyakov <[email protected]> - 2.26.9.4
- session: added new server_send() method which works with vector of elliptics::key. This is the most generic method, others use it internally.
* Thu Dec 10 2015 Evgeniy Polyakov <[email protected]> - 2.26.9.3
- package: depend on eblob 0.23.11+, which contains new iterator flag to verify checksum
- session: extended error message when dnet_mix_states() fails, include ioflags, key and number of groups
- recovery: Iterator class refactoring
- recovery: added description of ServerSendRecovery class & its methods
- merge recovery: optimization: use copy-iterator & server-send for small/medium keys
- tests: recovery: check that merge recovery removes moved keys from the source backend
- tests: added test which writes data into cache with small lifetime/sync timeout, previously cache overwrote user's timestamp with current time, this test checks that timestamp is still valid
- local_session: do not overwrite valid user's timestamp with current time
- binding: python: added server_send & start_copy_iterator session methods
- server_send: print queue size when sending write request
- server_send: set larger write timeout if node's wait timeout is less than 60 seconds
- iterate_move: example application should use zero iterator flags to prevent confusion (when no-meta flag is set, all timestamps are zeroed)
- server_send: implemented dynamic size of the queue of pending writes
- iterate_move: added wait timeout option
- server_send: broadcast write error to all blocked thread
- tests: cmake's add_custom_target() is unreliable with setting envvars
- tests: instruction on how to add new c++ test and additional cleanup
- iterate: set EBLOB_ITERATE_FLAGS_VERIFY_CHECKSUM for start_copy_iterator() (requires 0.23.11+ eblob)
* Wed Nov 25 2015 Evgeniy Polyakov <[email protected]> - 2.26.9.2
- fixed crash caused by using freed memory
- tests: server-send tests operate with 2 sessions
- tests: server_send tests now check response status
- server_send: set response status to reflect possible write/remove errors
- ioclient: use dnet_print_time() to print modification time
- server_send: filters and checkers should only work for aggregated result
- basic_handler: added comment desribing set_total() method
- trans: added error debug into common transaction allocation path when we've failed to find a state
- ioclient: print group id when lookup succeeds
- ioclient: fixed lookup info dump, allow to use raw ID specified via -I option
* Fri Nov 13 2015 Evgeniy Polyakov <[email protected]> - 2.26.9.1
- tests: set iterator flags to zero in read-one-range test
- tests: added simple mix-states test which tests that reads and writes succeed, it doesn't check whether groups are actually mixed or not, this is done in weights test, where global node's mix states flags is tested
- iterator: automatically set key-range flag if there is at least one range in the request
- recovery: fixed hanging up when there is no key which should be recovered
- config: added new options into example config
- ioflags: added mix-states flag, which forces groups to be mixed according to state weights
* Sat Oct 24 2015 Evgeniy Polyakov <[email protected]> - 2.26.9.0
- io: added timestamp compare-and-swap flag, it allows to write data only when on-disk timestamp is less than to be written data timestamp, or when there is no data on disk.
- backends: remove filesystem and module backends
- srw: added ability to reply via response stream
- package: put iterator examples into client package
* Tue Oct 06 2015 Evgeniy Polyakov <[email protected]> - 2.26.8.0
- cleanup: stop all node thread pools, then destroy monitor, then cleanup node thread pools
- net: correctly set socket option to the proper socket
- Indent fixes
- session: implemented server-send method, which sends given keys from one server node to multiple remote groups
- iterator: implemented server-send iterator, which sends all iterated keys to multiple remote groups
- package: depend on eblob 0.23.5+, where chunk_dir option has been added
- trans: fixed possible NULL pointer dereference
- config: read_only option for backend
- route: fixed ids update possible unintialized pointer free
- small fix: use variable after checking that it isn't null
- atomic: sub/add should return new value like inc/dec do
- atomic: all atomics are actually long, not int
- Updated debug logs, fixed minor bug with server socket prio setting. Fixed BE/LE issues when sending ID container
- backend: fixed ponential NULL pointer dereference
- tests: added small delay and big description for simultaneously started servers
- route: fixed JOIN command with zero enabled backends
- id: refactor and fix backend id container handling
- state: extended a bit state reset debug
- trans: fixed dnet_trans_iterate_move_transaction(), it must delete transaction from any list where it might live via trans_list_entry
- route: fixed route list validation
- packet: added comments about new commands and relation to dnet_cmd_needs_backend()
- config: 'datasort_dir' option in backend section
- session: read_data() comment update
- Added more connection debug
- iterator: added example iterator which runs over specified group and copies/moves data to requierd destination point
- dnet: if there was any error - send ACK to notify client with error code and destroy transaction. Previously transaction would stuck and timeout if there is checksum error.
- trans: if IO transaction can not be allocated, do not call completion twice
- crypto: fixed invalid processing of data block larger than buffer in sha512_file()/sha512_file_ctx()
- timeout: accurately check timeouted transactions using microseconds
* Wed Aug 19 2015 Evgeniy Polyakov <[email protected]> - 2.26.7.0
- state: split backend weight into cache/disk pair and update them separately according to IO flags
- eblob: fixed write commit log - have to write correct commit size
- io: new blocking request queue instead of dnet_oplock()
- tests: added test for checking that dnet_opunlock() unlocks key
- tests: added dnet_locks_test: testing of oplocks in backend request queue
- measure points: io.cmd.{}.lock_time erased; pool.{}.{}.search_trans_time added
* Mon Jul 27 2015 Evgeniy Polyakov <[email protected]> - 2.26.6.2
- recovery: zero-sized keys are actually valid
- eblob: write ext header when committing record (if it hasn't been written already for this IO request)
- eblob: when doing prepare, perform plain write with ext header right after prepare
- eblob: fixed integer overflow for uncommitted records during iteration
- iterator: added --no-meta option to example cpp iterator code
* Wed Jul 15 2015 Evgeniy Polyakov <[email protected]> - 2.26.6.1
- recovery: monitor: fixed metrics: 'local_read_bytes', 'remote_written_bytes' etc
- recovery: recover keys by window not by batch - closes
- Previous logic - recovery gets batch of keys, recovers them in parallel,
- wait until all recovers are finished and goes to next batch of keys
- Current logic - recovery starts to recover batch of keys in parallel,
- as soon as recovering of any key is finished, succeessfuly or not,
- it starts to recover next key
- recovery: removed 'filtered_keys' from logs and stats - it is always equal to iterated_keys
- recovery: monitor: fixed set_counter for 0
- recovery: removed unused code and fixed comments
- test: cleanup logger after each recovery - fixed mixing logs from different recoveries
- recovery: use '-L' option for all recovery logs
- recovery: decreased level of stderr logs to WARNING
- recovery: added '-T/--trace-id' option to dnet_recovery - allows to mark servers' logs connected with recovery
- python: added `trace_bit` to elliptics.Session
- build: fixed build on rhel
- oplocks: use dnet_id instead of dnet_raw_id for taking into account group_id
* Thu Jul 09 2015 Evgeniy Polyakov <[email protected]> - 2.26.6.0
- iterator: fixed segfault on start_iterator without specified groups
- eblob: updated eblob version
- recovery: added using record_flags from read, lookup and iterator results for correct recovering of keys checksummed by chunks
- eblob: added support of new eblob checksums
* Wed Jun 24 2015 Evgeniy Polyakov <[email protected]> - 2.26.5.5
- iterator: force reading header of uncommitted records
* Mon Jun 15 2015 Kirill Smorodinnikov <[email protected]> - 2.26.5.4
- backend: added parsing backend_id by eblob_backend
- compilation warning fix on precise (undefined UINT64_MAX)
* Thu Jun 04 2015 Kirill Smorodinnikov <[email protected]> - 2.26.5.3
- logs: changed level of 'Failed to get VFS statistics' to NOTICE because it spams log and isn't caused by critical error.
- network: sockets are lost from node's reconnect list after dropped connection to net state (after stall_count timeout)
- tests: added description of backend weights test
- recovery: allowed to use string value for '-L/--log-level'
- recovery: moved gathering of route list into get_routes() at main process - made temporary node/session be freed after the route list is received.
- tests: new backend weights test
- more comments
- logs: changed format of backend_id
- renamed dnet_idc_insert -> dnet_idc_insert_nolock
- fixed incorrect releasing of resources
- logs, optimization: use dnet_log instead of dnet_log_error after error on pthread_* & some malloc+memset -> calloc
- network: calculate & use connection weight by backend
- backends: used const pointers for key/value arguments of dnet_config_entry callback - remove useless copying of value.
- backend: eblob: made `eblob_backend_cleanup` to call `eblob_cleanup` only if eblob was initialized
- monitor: fixed memory leaks of `dnet_config_backend` internals - added calling `cleanup()`.
- fix: moved checking c->eblob into `dnet_blob_config_cleanup` - `eblob_backend_cleanup` should not be called if the backend wasn't proper initialized.
- docs: added description to dnet_blob_config_cleanup().
- updated missed module_backend functions.
- eblob: when using prepare+plain_write+commit flags, commit number of written bytes, not number of allocated bytes on disk
- session: added prepare/write/commit tuple description
- tests: added simultaneous prepare/write/commit test
* Wed May 06 2015 Evgeniy Polyakov <[email protected]> - 2.26.5.2
- package: depend on 0.22.22+ eblob which brings defrag stop command
- network: fixed bug with when total_count < failed_count in dnet_socket_connect_new_sockets()
- dnet_client, ioclient: added stop_defrag command
* Tue Apr 28 2015 Evgeniy Polyakov <[email protected]> - 2.26.5.1
- network: fixed bug with negative route_list_count
* Mon Apr 27 2015 Evgeniy Polyakov <[email protected]> - 2.26.5.0
- network: don't use dnet_node_state_num() to estimate number of ready events in epol
- pytests: added tests that checks new flag elliptics.record_flags.uncommitted:
- * serial of write_prepare, write_plain and write_commit with checking data accessibility
- * new tests of merge and dc recovery with mixing uncommitted keys into recovering keys.
- core: added common for all backends flag DNET_RECORD_FLAGS_UNCOMMITTED which is set for record is uncommitted and can't be read
- iterator: made iterator collects uncommitted records
- recovery: added handling uncommitted records, added options prepare-timeout which specifies timeout for uncommitted records after which such records should be deleted
- recovery: fixed hanging on pool.close() - there is a bug in multiprocessing
- package: depend on 0.22.21+ eblob, it contains defrag adn prepare/commit changes needed by elliptics
- ioclient: added more description of defrag modes
- network: refactored dnet_addr_socket & dnet_connect_state related resource handling logic
- logs: added error logs at places where iterator can fail
- ioclient: added description of 'compact' defragmentation mode
- core: used timedwait for waiting condition variable - fixed hanging on exit
- iterator: added checking that the backend supports iterator before run iterator
- python: allow to use all basestrings for elliptics.Id initialization not only str
- network: dnet_addr_socket is class now, thus handling its resources. sockets container is std::map instead of c-style intrusive list (of sockets)
- session, backend: added new defragmentation level & command 'compact' - datasort heavy-fragmented blobs only
- network: use stall_count from node instead of hard-coded constant
- network: fixed possible deadlock and double resource release in dnet_check_all_states()
- network: send ping command to remote node if transactions stall count reaches its limit instead of resetting net_state
- recovery: fixed typo and merged disabling checksums for all but the first chunk
- recovery: use close to elliptics' log format in recovery logs
- recovery: fixed statistics calculation
- build: fixed build on rhel 6 with boost v1.41.0-25
* Fri Mar 27 2015 Evgeniy Polyakov <[email protected]> - 2.26.4.4
- config: fixed bug when invalid remote (e.g. whose net address couldn't be resolved) from config leads to dnet_ioserv termination during initialization step
- pool: fixed crash on working with invalid evs[i].data.ptr (dnet_net_state) after releasing of this net_state on EPOLLERR at previous iteration over evs[i]
* Fri Mar 27 2015 Evgeniy Polyakov <[email protected]> - 2.26.4.3
- package: depend on 0.22.20+ eblob because of API changes
* Fri Mar 27 2015 Evgeniy Polyakov <[email protected]> - 2.26.4.2
- network io handler iterates only single event, where epoll_wait() may return more than one
- added top events settings to monitoring/top provider
- net stats in procfs provider: rx/tx bytes, packets, error count for net interfaces
- removed unused sha384 functions and unification with eblob cryptolib
- mmap elimination - mmap() replaced with pread(). Corrupted filesystem may return -EIO for some reads, while
- trying to access that data via mmap ends up with SIGBUS signal, which kills whole eblob user.
* Mon Mar 23 2015 Evgeniy Polyakov <[email protected]> - 2.26.4.1
- json: fixed crash on generating statistics for disabled at startup backends
- Used local node address for state in local_session: fixed invalid address at logs.
- net: connection between servers with different number of addresses is not allowed.
- If connected node has different number of addresses fail its socket processing.
- core: use rbtree to store groups list
- recovery: fixed error logging format in dc recovery
- tests: refactored tests for event statistics
- Added TOP statistics implementation - it returns set of keys which generate the most amount of traffic
* Thu Mar 12 2015 Evgeniy Polyakov <[email protected]> - 2.26.3.37
- Get rid of autogenerated typedefs file
- recovery: dc: do not check checksum while reading on all but the first chunk
- statistics: moved adding `group` to `backend::config` or `backend::config_template` into fill methods
- statistics: provided `to_json` methods for eblob and filesystem config templates
* Wed Jan 28 2015 Evgeniy Polyakov <[email protected]> - 2.26.3.36
- package: depend on 0.22.15+ eblob
- logs: fixed printing trace_id at logs while receiving/sending packets
- iterator: made iterators with `no-meta` flag to return zero timestamp.
- Now if iterator faces a record with corrupted exteded header it will return a key with empty extended header.
* Sat Jan 17 2015 Evgeniy Polyakov <[email protected]> - 2.26.3.35
- logger: let file logger to watch to its sink file and allow file to be moved/rotated
- Indent cleanup
* Tue Dec 23 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.34
- recovery: fixed recovering keys which have several alive copies at one backend
- tests: updated description of test_session_iterator cases
- python: limited types of object that can be used for elliptics.Id initialization
- stat: do not fill in backend::config object for non-enabled backends, it contains strings only, but it must be parsed instead.
- Use backend::config_template object for those backends.
- recovery: used total_size instead of size for determining record size.
- recovery: escaped dumping keys that allready consistent in all groups
- recovery: added recovery_speed to merge stats
- iteration: removed double checking of ranges - keys is already filtered in eblob
- iteration: added new iteration flag: DNET_IFLAGS_NO_META which turns off reading extended header from blob and speedups,
- but all keys that will be returned by such iteration will have empty metadata (timestamp and user_flags).
- recovery: added '-M' option to dnet_recovery which speedups iteration phases of recovery but sacrifices checking metadata.
- Recovery with this option will not check metadata, will not replace old records by new ones and
- will only copy some available replica of keys to groups which do not have these keys.
- pytests: added case to test_session_iterator that check iterating with no_meta flag
- recovery: added 'recovery_speed' and 'iteration_speed' to statistics. Both values are mesuared in records per second.
- python: made elliptics.Id to be initialized by any iterable object and group
- recovery: replaced cPickle by msgpack for packing intermediate results
- recovery: added 'total_keys' statistics that shows how much keys should be recovered/processed
- python: fixed gil_guard
- bindings: added start_time and end_time methods for async_result: both for C++ and Python bindings.
- They return timestamps when async result was created and finished.
- Fixed calculation tnsec of elapsed_time.
- config: use uint32_t for parsing group from config - disallow setting negative group.
- Pytests: added iterator tests.
- Pytests: moved fixture to global conftests. Disabled srw for test cluster in test_specific_cases. Cleaned up pytests code.
- Made dumping key enabled by default, to disable it introduced new option -> -u
- don't add option for key dumping in dc_recovery
- Added option for dumping into text file all iterated keys
- Fixed code indent
- config: do not reparse config at each backend init - only if config was modified.
- Removed useless copying of an array at config methods.
- Disable only non-disabled backends at cleanup.
* Mon Nov 10 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.33
- lookup: extended lookup address to return dnet_addr, not address string
- pytests: fixed broken index tests - use common cluster for all test and isolated cluster for test_special_cases
* Fri Oct 24 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.32
- tests: created config struct for create_nodes method and moved all argument to it
- pytests: added test case for checking correct handling situation when 2 backends from different nodes has equal group and ids
- pytests: made server node isolated - now server nodes do not know about each other
- core: reset state if dnet_idc_update_backend has been failed.
* Thu Oct 23 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.31
- session: get rid of handmade address-to-string conversion, use dnet_addr_string() and friends helpers
- addr: use getnameinfo() to properly determine family and automatically dereference sockaddr
- addr: new thread-safe helpers to print address strings
- Fixed remove_on_fail implementation
* Tue Oct 21 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.30
- recovery: removed odd increasing of iterations
- recovery: fixed memory leak at merge recovery
- python: removed wrapping address method at result entries that inherited from CallbackResultEntry
- recovery: Moved code from dnet_recovery to recovery.py for using/testing it from pytests.
- Added 'portable' method to Ctx that returns lightweight copy of the context that can be used by multiprocessing.
- Removed monitor from context, left only stats - proxy object for sending updates to monitor from different processes/threads.
- Removed using global context, use portable context insead of.
- Moved process pool initialization and destruction into common recovery.py - removed duplicating code.
- Recovery: Use cached route-list for speedup recovering
- recovery: implemented one-node recovery for merge from dump
- recovery: cleanups global reference to context
- recovery: correctly close and join process pool
- recovery: correctly stops monitor threads
- test: decreased number of backends and nodes at pytests - decreased number of threads and processes used from tests
- cmake: added blackhole headers lookup
- recovery: used threading.Event for waiting complete
- recovery: decreased log level of log that looking up key from dump fail failed
- tests: reduce number of io/net threads
- eblob: allow small leters in size modificators M,m are for megabyte and so on
* Tue Oct 14 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.29
- package: depend on 0.22.9+ eblob where init errno code was introduced
- route: do not request route list if node flags includes DNET_CFG_NO_ROUTE_LIST
- recover: do not print error on lookup fail while recovering keys from dump - fail is an ok situation
- recover: skips keys that are missed on all nodes
- python: use dict if OrderedDict is not available
- recover: fixed and recovery from dump. Added test case for recovering keys from dump.
- python: added 'backend_id', 'trace_id' and 'trans' to callback_result_entry
- python: removed duplicated calls - use bp::bases for inheritance between different result_entry and base callback_result_entry
- backend: eblob_init sets errno on fail - use it for returning correct error code
- backends: do not process commands aimed to uninitialized backend
- python: added set_backend_ids method to elliptics.Session.
- dnet_balancer: added option '-u/--update' that turns no remote update ids on backends after balancing.
- dnet_balancer: added outputing final dht spread between nodes/backends.
- recovery: added output format for statistics.
- recovery: skipping on iteration key with zero size of data.
- Python: fixed missing _node at cloned session.
- api: added resetting namespace by setting empty namespace.
- logs: added log that net thread has been finished.
- ioclient: backend status messages whitespace cleanup
- addr: added dnet_create_addr_str() helper which parses string and fills dnet_addr structure
- package: depend on 0.10.2+ handystats
- backend: added possibility to delay execution of every backend command by X ms
- init: fixed IO pool initialization
* Wed Oct 08 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.28
- python: fixed TypeError on some python version
- blackhole: enabled blackhole log rotation. Blackhole reopens log file if the original file has been moved or removed.
- spec: handystats dependency updated to 0.10
- auth: check client version at first and send self version only to client with right version.
- dc_recovery: Fix variable name: it was undefined name
- python: Fix some PEP8 warnings. Bad identation is fixed.
- spec: fixed bogus dates
- monitor: update to handystats 1.10
- example: monitoring-stats.txt lists measured values
- example: added sample config file for handystats
- monitor: io input/output/commands stats fixed and improved
- monitor: added support for formatted metrics names
- monitor: complete replacement of react
- monitor: using handystats library to gather runtime statistics
- srw: removed dumping @info result to the log
- rapidjson: correctly handle NaN values, small double values
- srw: added log-output: true into application's profile top level to dump crashlog into log
- test: monitor: open json dump file for writing
- test: write_cas: do not use lambda, use plain function instead (checking RHEL6 issue)
- run_servers: added 2 seconds sleep to wait for server/app initialization
- file: do not chroot to root dir, since with multuple backends there are multuple roots in the same process context
- state: dnet_state_create() reference counter fix/change
- backend: moved object size calc (getting into account total size and io->size/io->offset) into common header from eblob.
- find: set DNET_FLAGS_DIRECT_BACKEND flag which will force client code to set backend ID
- session: when using send-to-all-backends set backend id via dnet_session_set_direct_backend() call.
- fixed check for gcc version: support for noexcept on class constructor available only since gcc 4.6
- monitor: use one lock_guard for both: checking backend state and dumping backend json.
- monitor: Monitor uses almost all others, so it should be stopped at first.
* Sun Oct 05 2014 BogusDateBot
- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday,
by assuming the date is correct and changing the weekday.
Sun Jul 26 2010 --> Sun Jul 25 2010 or Mon Jul 26 2010 or Sun Aug 01 2010 or ....
Sun Jul 28 2010 --> Sun Jul 25 2010 or Wed Jul 28 2010 or Sun Aug 01 2010 or ....
Thu Nov 30 2010 --> Thu Nov 25 2010 or Tue Nov 30 2010 or Thu Dec 02 2010 or ....
Thu Nov 23 2011 --> Thu Nov 17 2011 or Wed Nov 23 2011 or Thu Nov 24 2011 or ....
Sun Mar 13 2012 --> Sun Mar 11 2012 or Tue Mar 13 2012 or Sun Mar 18 2012 or ....
Sat Apr 27 2012 --> Sat Apr 21 2012 or Fri Apr 27 2012 or Sat Apr 28 2012 or ....
Sun Apr 28 2012 --> Sun Apr 22 2012 or Sat Apr 28 2012 or Sun Apr 29 2012 or ....
Thu Jul 28 2014 --> Thu Jul 24 2014 or Mon Jul 28 2014 or Thu Jul 31 2014 or ....
* Tue Sep 30 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.27
- recovery: added another one (last) fix for compatibility with python2.6 which doesn't support multiple open with one with
- recovery: fixed multiple open at one with (python2.6)
- Pytests: if procfs statistics: vm, io or stat; contain nonzero error - do not asserts internal statistics
- monitor: added 'error' and 'string_error' to procfs statistics: vm, io and proc
- file: fixed file_info timestamp reading
- trans: when destructing transaction, write not only state, but also backend
- monitor: clear dnet_vm_stat at dnet_get_vm_stat
- Recovery: fixed circular references in dc recovery. Fixed static analysis and memory profiler warnings.
- Pytests: fixed vfs statistics test - zero value for some metrics is valid.
- file: fixed metadata blob initialization
- lookup: there are 2 lookup stages: cache and disk, do not send ack if we succeeded searching for the key
- forward: cleanup forward path, put transaction allocation into forward function
- file: fixed lookup command and lookup timestamp for missed metadata
* Sun Sep 28 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.26
- net: put state in dnet_connect_route_list_complete
- connect: add_remote() must always return error when failed to connect to any remote node
- fs: set default directory-bit-numnber to 16, otherwise backend doesn't work if appropriate config option is not specified
- balancer: print correct message if remote hasn't been specified
- pytest: more comments
- Pytest: set tests timeout to 300 sec
- Pytests: added test for recovering corrupted data
- Recovery: removed duplicates from list of groups with outdated data. Fixed crash after failed iteration.
- Recovery: changed default logging level for dnet_recovery
- Backends: added new backend state: DNET_BACKEND_UNITIALIZED for backends that have not been specified in config file.
- Do not include status of unitialized backends to monitor statistics and backends status of unitialized backends to monitor statistics and backends status response.
- Core: do not recalculate state weight after commands without data
* Thu Sep 18 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.25
- net: setup state epoll_fd before sending AUTH
- Python: added comments to route.py
- Python: speeded up elliptics.RouteList initialization
* Thu Sep 18 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.24
- route: fixed deadlock in routes.cpp
- Block dependency from next major version of elliptics
- stats: provide backend directly from cmd processing, do not try to find it using cmd->backend_id
- session: roughly exit on 'impossible' condition
- stat: do not dereference incorrect (negative or too large) backend_id
- route: Reset state if JOIN fails by any reason b0a8c47
- library: Use copy addresses at state_move_to_dht
- Build-Deps: blackhole-dev (>= 0.2.1-1)
- find: Add backend_id to dnet_find output
* Tue Sep 16 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.23
- stats: implemented per-backend command counters
- log: returned back extended io command log
- stats: only print commands which have non-zero counters
- ioclient: added options to change backend status (enable, disable, ro, writable)
- cache: slru destruction debug
- stats: get rid of histograms
* Wed Sep 10 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.22
- net: Surround state->node_entry changes by state_lock
* Wed Sep 10 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.21
- net: Use list_splice_init correctly
- monitor: compress returned data via both http and elliptics protocols
* Tue Sep 09 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.20
- monitor: compress every possible json reply from server to client including error jsons
- monitor: static function in headers must be inlined
- net: Fixed race condition of route-list counter
- net: Fixed parsing of route list for dual stack
- server: Set not-null address for accepting state
- net: Fixed debug output for route lists
- library: Added session::request_single_cmd
- trans: Fixed trans_id at transactions' destruction