forked from reverbrain/elliptics
-
Notifications
You must be signed in to change notification settings - Fork 0
/
elliptics-bf.spec
3044 lines (2587 loc) · 148 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.26.11.1
Release: 2%{?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: libcocaine-core2-devel >= 0.11.2.0
BuildRequires: cocaine-framework-native-devel >= 0.11.0.0
BuildRequires: eblob-devel >= 0.23.11
BuildRequires: libblackhole-devel = 0.2.4
BuildRequires: libev-devel libtool-ltdl-devel
BuildRequires: cmake python-msgpack
BuildRequires: handystats >= 1.10.2
BuildRequires: compat-msgpack-devel
BuildRequires: boost-devel
BuildRequires: python-virtualenv
Obsoletes: srw
%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 -n cocaine-plugin-elliptics
Summary: Elliptics plugin for Cocaine
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description -n cocaine-plugin-elliptics
cocaine-plugin-elliptics
%package client-devel
Summary: Elliptics library C++ binding development headers and libraries
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: libblackhole-devel = 0.2.4
%description client-devel
Elliptics client library (C++/Python bindings), devel files
%prep
%setup -q
%build
export LDFLAGS="-Wl,-z,defs"
export DESTDIR="%{buildroot}"
%{cmake} -DWITH_COCAINE=on .
#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
%files -n cocaine-plugin-elliptics
%defattr(-,root,root,-)
%{_libdir}/cocaine/elliptics-extensions.cocaine-plugin
%files client
%defattr(-,root,root,-)
%{_bindir}/dnet_iterate
%{_bindir}/dnet_iterate_move
%{_bindir}/dnet_find
%{_bindir}/dnet_ioclient
%{_bindir}/dnet_index
%{_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
%{python_sitelib}/elliptics_recovery/*
%{python_sitelib}/elliptics*.egg-info
%files client-devel
%defattr(-,root,root,-)
%{_includedir}/*
%{_libdir}/libelliptics_client.so
%{_libdir}/libelliptics_cpp.so
%{_datadir}/elliptics/cmake/*
%changelog
* Fri Aug 11 2017 Arkady L. Shane <[email protected]> - 2.26.11.1-2
- push all python libraries to client package not client-devel
* Fri Jan 13 2017 Evgeniy Polyakov <[email protected]> - 2.26.11.1
- man: converted to unix format, fixed comment macroses
- python: use common python path
- test: only include placeholders for newer boost
- Updated elliptics to compile with gcc6 on fedora25 (updated boost and msgpack)
- json: fixed isnan() invocation in c++ code
- 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
* Tue Sep 02 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.19
- Pytest: added checking requesting all categories.
- monitor: add 'group' to 'backend->config' only if it was requested
* Tue Sep 02 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.18
- reconnect: always add address into reconnection queue until it is EEXIST, ENOMEM or EBADF error
* Tue Sep 02 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.17
- Python: fixed make_writable
* Tue Sep 02 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.16
- monitor: restored 'group' at 'backend->config'
- python: added make_readonly and make_writable to elliptics.Session
- monitor: removed commands history
* Wed Aug 27 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.15
- elliptics: Fixed handler::total at several places
- monitor: forced deflate of the transmitted json
- recovery: now if dc couldn't read the newer version of the key - it skips it and use next one by timestamp and so on
- Monitor: moved config of disabled backend to 'backend->config'
- Pytest: marked each test case by unique trace_id
- Pytests: added monitor statistics to log
- monitor: now monitor listen the same net family as the node does
- merge recovery: added user-friendly log when group has only one node with one backend
- tools: added '-n/--check_nodes' option to dnet_balancer for printing only nodes spread without route-list
- Python: completely removed old interface elliptics.Session.get_routes and used new elliptics.Session.routes wherever needed
- package: depend on blackhole 0.2.0-2 and higher
* Tue Aug 26 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.14
- server: Fixed io queue limits
- client: Throw -EPROTO if we connected to wrong addr
- client: Fixed checkers at merge_indexes
- client: Recover files on read also for -EILSEQ
- client: Don't lose trace_id at timeout
* Mon Aug 25 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.13
- session: implemented bulk_remove() method
- tests: since timeouts are now long, fix its overflow test
- config: fixed misleading config error exception message
- timeouts: all timeouts are long
- config: only try to add new nodes if remotes() vector contains some addresses
- trans: extended timeout transaction log
- client: Explicitly link with boost-system
- package: depend on blackhole 0.2.0-0rc10
* Fri Aug 22 2014 Ruslan Nigmatullin <[email protected]> - 2.26.3.12
- Logs: removed '\n' from the end of logs - blackhole adds '\n'
- example: Added backend_id to example config
- balancer: changed usage removed spread by percentages
- server: Don't check for forward if direct request
- backends: Write duration of backend's init
- backends: set correct error if missed backend_id
- Monitor: wrapped json generation by try/catch
- backends: Make unique log for every backend
- node: EEXIST for state is 'good' error
* Thu Aug 21 2014 Ruslan Nigmatullin <[email protected]> - 2.26.3.11
- Logger: Write logs in local time
* Thu Aug 21 2014 Ruslan Nigmatullin <[email protected]> - 2.26.3.10
- Python: removed using of dropped elliptics.log_level.data
- Log: fixed typo and fixed spaces
- backends: Added mandatory field backend_id
* Wed Aug 20 2014 Ruslan Nigmatullin <[email protected]> - 2.26.3.9
- dnet_client: Fixed default log level
- server: Add backend_id to every log at io pool
* Wed Aug 20 2014 Ruslan Nigmatullin <[email protected]> - 2.26.3.8
- logger: Log io/c/indexes/cfg flags with names
- node: Print cfg flags on start
* Wed Aug 20 2014 Ruslan Nigmatullin <[email protected]> - 2.26.3.7
- client: Added ability to construct session from dnet_node
- server: Make possible to send request yourself
- cocaine: added read_latest to elliptics service
- server: Added option.parallel option
- dnet_client: Return non-zero code on fail
- thread: Changed name pattern for threads
* Tue Aug 19 2014 Ruslan Nigmatullin <[email protected]> - 2.26.3.6
- backend: Read config at backend's start
- logger: Removed useless premature optimization
* Tue Aug 19 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.5
- logger: do not even try to process logging if log level is small enough
* Mon Aug 18 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.4
- Get rid of foreign/blackhole include dir which can contain old/obscure version of the package
* Mon Aug 18 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.3
- Rebuild with the proper blackhole-dev package
* Sun Aug 17 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.2
- state: minor cleanups, optimizations and fixes
- stack: print minimum stack size (1M) if current stack size is less than that
* Fri Aug 15 2014 Evgeniy Polyakov <[email protected]> - 2.26.3.1
- monitor: stat fixes
- backends: added ability to make backends readonly
- monitor: added config stats
* Thu Aug 14 2014 Ruslan Nigmatullin <[email protected]> - 2.26.3.0
- cache: Added ability to configure backend's cache
- client: Added send_to_each_node
- client: Drop direct_backend flag at set_direct_id
- client: monitor_stat should accept address, not id
- config: Make possible to set io thread num per backend
- config: options.*_thread_num is required field
- example: Removed out-to-dated ioserv.conf
- logger: Don't print destruction packets
- Monitor: Added 'procfs' stats that includes 'vm', 'io' and 'stat'
- monitor&statistics: moved stat_log and stat_log_count statistics to monitoring statistics
- Python: fixed lookup_address and doc strings
- Python: removed session.get_routes()
- Python: removed session.update_status by elliptics.Id
- Python: replaced elliptics.Id by elliptics.Address at session.monitor_stat
* Mon Aug 11 2014 Ruslan Nigmatullin <[email protected]> - 2.26.2.0
- API: Changed signature of "complete" methods
- backends: Make possible to start several backends per time
- cache: Don't send 2 packets as lookup reply
- callback: Write to log about each processed packet
- client: Added optimization for key's transformation
- client: Added parallel_lookup
- client: Added quorum_lookup
- client: Moved read/write_file logic to c++ binding
- client: Refactored implemenation of handling replies from server
- client: Removed unused client's methods
- client: Returned error from add_state with more sense
- cpp: data_buffer should consider size of counter
- dnet_balancer: fixed error exit when one of real route matches with 00..0 or ff..f
- eblob: Fixed log levels between eblob & elliptics
- Monitor: reorganized monitor statistics from different backends
- protocol: Changed DNET_TRANS_REPLY to DNET_FLAGS_REPLY
- Pytests: added prepare/plain/commit test when it rewrites key from closed blob by bigger data
- Recovery: wrapped os.rename by try/except for catching os.rename exception
- run_servers: added generating monitor section in ioserv config
- run_servers: Write pid of dnet_ioserv's to log
- tests: Added 3 more tests about lookup results
- tests: Generate random trace_id for each test case
- weights: increase temporal selection-only (not state) weights (multiply by 10 on each step) until they sum up into large enough number for random selection
* Mon Aug 04 2014 Ruslan Nigmatullin <[email protected]> - 2.26.1.1
- logger: Use blackhole's level's formatter
- server: Connect to remotes asynchronously
- net: Fixed race at converting node to server one
* Mon Aug 04 2014 Ruslan Nigmatullin <[email protected]> - 2.26.1.0
- Python: implemented elliptics.Node.add_remotes which has replaced old elliptics.Node.add_remote
- Pytests: added waiting for appearance enabled backends in route list at test_recovery
- Tools: fixed dnet_recovery
- cocaine: Connect to all remotes simultaneously
- indexes: Fixed shard id & count values in secondary indexes
- backends: Added more logs about init/cleanup
- net: Fixed connection to server with big ids files
* Sun Aug 03 2014 Ruslan Nigmatullin <[email protected]> - 2.26.0.4
- library: Fixed race of creating dht states
-
* Sun Aug 03 2014 Ruslan Nigmatullin <[email protected]> - 2.26.0.3
- route: Add states after join_request to dht_list
- library: Added really asynchonous add_remote_state
- library: Reimplemented reconnection thread
- * Now it makes reconnection and route list requests simultaneously, which gradually decreasis time of this operations with low-latency network
- net: Removed autodiscovery support
-
* Fri Aug 01 2014 Ruslan Nigmatullin <[email protected]> - 2.26.0.2
- Fixed version
* Fri Aug 01 2014 Ruslan Nigmatullin <[email protected]> - 0.6.0.2
- client: Added is_final field to result_entry
- client: Added new filters for entry::is_final
- client: Fixed bulk operations
- client: Fixed time formatting in file_logger
- dnet_client: Long live, dnet_client
- indexes: Fixed set_indexes in multibackend systems
- linking: Fixed linking errors at Fedora 20 and Ubuntu Lucid
- logger: Updated for blackhole-0.2.0-0rc2
- Monitor: made monitor section in config for dnet_ioserv and added new history_length and call_tree_timeout to the section.
- pytests: Fixed test for existen filters
- python: Fixed signature of Logger.log
- server: Do not kill own state because of timeout
* Wed Jul 30 2014 Ruslan Nigmatullin <[email protected]> - 2.26.0.1
- config: Moved to usage of dynamic_t
- logger: Fixed segfault
- srw: Really, don't send exec to every backend
- protocol: Moved trace_id to dnet_cmd from dnet_id
- * Added trace_bit as command flag instead of special trace_id's bit
* Tue Jul 29 2014 Ruslan Nigmatullin <[email protected]> - 2.26.0.0
- backends: Ability not to enable backends at start
- backends: Added ability to change backend's ids
- backends: Added API for enable/disable/status backends
- backends: Added defrag API, added fields to status
- backends: Added DNET_CMD_CONTROL_BACKEND command to enable and disable backends
- backends: Added field to know current defrag state, added fields to know about
- backends: Generate ids from /dev/urandom
- backends: Only return defrag_state if possible
- backends: Set direct flag for control and status
- backends: Store current backends' states
- client: Added node::from_raw API
- client: Changed ger_routes signature
- client: Introduced address structure
- Core: made update_status used address for addressing to node.
- Eblob: removed iterate_thread_num specification at eblob_backend.
- elliptics: Added multi-backend support in route lists
- ioclient: Moved to new defrag API
- logger: Moved to Blackhole as logging system
- logger: changed trace_id output to hex.
- monitor: added raw function for removing statistics provider by name. Removed duplicated code.
- monitor: Link with elliptics_client
- node: Fixed more conflicts
- pool: Introduce thread-local queue
- pool: Make io-thread init log more verbose
- Pytest: Added tesing dnet_recovery with all modes.
- Pytest: Added parameters for specifying number of nodes and number of backends that should be run in test cluster.
- Python: Added new interface for supporting multibackends. Used elliptics.Address where it can be used and removed duplicating interfaces. Added new abilities to elliptics.RouteList for working with backend_id.
- Python: Added support backend_id to route list.
- Python: Fixed dnet_balancer and for working with new multibackends route list.
- Python: Removed group_id from elliptics.
- Recovery: made dnet_recovery works with new multibackends route list. Added ability to specifies backend_id (via '-i') when dnet_recovery runs for one node ('--one-node')
- routelist: Added support for DNET_CMD_UPDATE_IDS
- routelist: Don't send ack for route-list request
- routelist: Send only addresses at route tables
- run_servers: Added 'backends' option support
- server: Removed node::id
- server: Separated backend to external structure
- statistics: Added ability to remove providers
- tests: Added sleep in recovery test
- tests: Added test for backend's control
- tests: Apps should write logs to different files
* Mon Jul 28 2014 Evgeniy Polyakov <[email protected]> - 2.25.6.4
Thu Jul 28 2014 --> Thu Jul 24 2014 or Mon Jul 28 2014 or Thu Jul 31 2014 or ....
- reconnect: reconnect to addresses which were timed out during connection
* Mon Jul 28 2014 Evgeniy Polyakov <[email protected]> - 2.25.6.3
Thu Jul 28 2014 --> Thu Jul 24 2014 or Mon Jul 28 2014 or Thu Jul 31 2014 or ....
- recv: do not dereference data stored in state, since to that moment it can be overwritten by the next command from the same client(socket)
- route: let regular route table update also get route table from nodes explicitly added via dnet_add_state() and helpers
- state: print error if no state has been found for given ID
- version: added check/read functions
* Thu Jul 24 2014 Evgeniy Polyakov <[email protected]> - 2.25.6.2
- weight: print full weight change, not only first 3 digits
- Logs: changed trace_id output to hex
* Wed Jul 23 2014 Evgeniy Polyakov <[email protected]> - 2.25.6.1
- state: when (re)creating state after recevied reverse lookup we must copy received address array into this new state
- route: cleaned up debug messages
- trans: cache transaction reply flags to make processing bulletproof against callback which can change cmd->flags
* Tue Jul 22 2014 Evgeniy Polyakov <[email protected]> - 2.25.6.0
- package: depend on 0.22.0+ eblob which provides range iterators
- iterate: output more useful info about iterated keys
- iterate: added option to parse dnet_balance output file and select ranges which DO NOT belong to selected node and request those ranges from remote node
- dnet_add_state: if we failed to add any remote addr because they already exist in the route table, return 0 to indicate success
- iterator: switched to new iterator scheme where ranges and ctl structure are provided directly into backend. Eblob uses this data to skip ranges in indexes if they are sorted.Eblob: removed iterate_thread_num specification at eblob_backend.
- cmake: install timer.hpp with other headers
- tests: stop after the first test failure
* Fri Jul 18 2014 Kirill Smorodinnikov <[email protected]> - 2.25.5.1
- Recovery: fixed merge index mismatch if some of merging shards have unfilled shard_id and shard_count
- Pytests: turned on exit on first fail to make it easer to find the problem. Used separated log files for all node and client
- IOClient: fixed checking dnet_add_state result
* Sun Jul 13 2014 Evgeniy Polyakov <[email protected]> - 2.25.5.0
- Let's use Travis-CI to check every commit
- route: new batch request completion logic
- Pytests: added group_id check in result entries
- Added batch connect/listen mechanism
- addr: switched C API to dnet_addr structure
- There is no required() at boost::program_options on lucid
* Wed Jul 09 2014 Kirill Smorodinnikov <[email protected]> - 2.25.4.21
- Python: fixed address group_id in result entries.
- srw-test: fixed signed-unsigned warning
- tests: cleaned up srw timeout test: removed misleading debug output when everything is ok, voided unused variable
- config: removed comment about unused 'do-not-update-metadata' flag
- srw: use full namespace name for ioremap::elliptics::lexical_cast() function
- indexes: Handle failed parsed indexes metadata from msgpack …
- index_perf: added index performance tool
- utils: moved common functions to utils header
- timer: added elapsed timer
- srw-test: moved thread-watchdog class outside timeout test function for older compilers happiness
* Fri Jun 27 2014 Evgeniy Polyakov <[email protected]> - 2.25.4.20
- trans: ascending transaction number order instead of descending
- trans: new timeout transaction completion logic
* Tue Jun 24 2014 Evgeniy Polyakov <[email protected]> - 2.25.4.19
- Pytests: fixed test_session_indexes - wait set_indexes/remove_indexes results
- submodule: removed react, started to use git:// instead of http://
* Mon Jun 23 2014 Evgeniy Polyakov <[email protected]> - 2.25.4.18
- Core: Added unmapping IPv4 from mapped IPv6 address
- client: Added session::recovery_index method
- client: Introduced merge_indexes method
- tests: Docs for test_index_metadata added
- index: More docs for get_index_metadata helper function
-
* Wed Jun 18 2014 Evgeniy Polyakov <[email protected]> - 2.25.4.17
- Pytests: added testing of index interface: set/update/remove
- Recovery: Added dumping iterated keys to dump file(s) that could be used for resuming recovery after some issues
- Recovery: Fixed splitting ranges in small pieces for merging them in different processes.
- Replaced pickle with CPickle
- fixed 'zero length field name in format' bug on Python2.6
- Added traceback print to exception log
- Python: used one argument for id and context at exec_, made src_key last argument
- Core: fixed hanging up iteration on cond_wait.
- There was race condition: after successful dnet_send_reply another thread removes the state and before original thread stucks on waiting condition variable.
- After that no one thread will wake up original thread via broadcasting conditional variable
- Documentation: added docs how merge works with -f/--dump-file
- Recovery: fixed stats group name in merge. Show all key at read/write/merge/remove failures. Fixed exit code in dc.
- Recovery: Added merge recovering the list of keys from dump file
- Monitor: clear m_cmd_info_current after swap
- Recovery: Enabled -r reusable (so you can specify several remotes). -o should be followed by adress of node that should be processed
* Fri Jun 06 2014 Evgeniy Polyakov <[email protected]> - 2.25.4.16
- spec: do not require boost libraries, they will be populated from devel package version
- debian: do not install libelliptics_cocaine.so.*, it is being built statically now
- Don't link with json
- spec: added libtool-ltdl-devel dependency for cocaine
- spec: added libev dependency for cocaine
* Thu Jun 05 2014 Evgeniy Polyakov <[email protected]> - 2.25.4.15
- srw: Added commentary about event's naming
- library: made dnet_request_cmd() non-blocking
- rpm: Enable build with Cocaine
- srw: Removed app@ part from Cocaine event
- tests: Check status code for every entry in bulk_write
- tests: Don't use ports from ip_local_port_range
* Tue May 20 2014 Evgeniy Polyakov <[email protected]> - 2.25.4.14
- build: depend on 0.21.40+ eblob to force double eblob size reservation
- io: do not proceed IO command to backend if cache-only IO flag has been set
- ioserv: exit with negative error status if ioserv could not start because of config error
- config: updated blob flags doc
- build: remove generated pyversions at clean
- build: removed deprecated XB-Python*. Updated url at setup.py.
* Thu May 15 2014 Evgeniy Polyakov <[email protected]> - 2.25.4.13
- state: new weight adjusting mechanism
* Tue May 13 2014 Evgeniy Polyakov <[email protected]> - 2.25.4.12
- rpm: fixed msgpack for python package name.
- core: request route list from node after reconnect.
- debian: fixed build on lucid: there is no dh_python here and we have to use python-central.
- debian: dh-python instead of python-support
- Core: fixed requesting route list always from the same node per group.
- Recovery: Added msgpack-python to dependencies.