• Content Count

  • Joined

  • Last visited

About eazq

  • Rank
    Advanced Member
  1. BTS 2.2 free edition. About 1TB data in 5 folders. 2+1 nodes in the replica set. 1.30-1.49GiB RAM used. GUI almost unusable on a 4core 2GHz CPU with 8GiB memory. GUI unusable on a 2core 1.5GHz CPU with 8GiB memory. Windows 10. Is it normal?
  2. Unless your Win32/Win64 application explicitly issues system calls WITHOUT the case insensitive flag set. Microsoft's own stock applications and default applications written for Windows actually don't support name case sensitivity, simply because at Microsoft they decided they shouldn't be aware of name case (for usability or compatibility?), not because Windows kernel can't handle them correctly. Similarly in Mac OS, where your choice is more granular, because you can set at formatting time if a volume is to be case-preserving or case-sensitive.
  3. Just in case, one day, your team will improve the btsync's name management code, here is a note about file systems under NT operating system family (modern Windows variants are descendants of NT). Whole namespace is managed by a kernel mode subsystem called "Ob" (Object Manager). Since XP/2003, Ob can run in two distinct modes: case preserving mode (default)case sensitive mode (former default mode, useful mostly when you install the POSIX environment subsystem, called by marketing people Interix, SFU, SUA and historically inherited from its ancestor kernel at DEC).Before XP, NT's object manager used to always run in case sensitive mode and only Win32 environment subsystem used to issue system calls with case insensitive flag set. Please, open regedit and select this key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive That is a REG_DWORD value which can be 1 for running the kernel in case-preserving mode and 0 for running the kernel in case-sensitive mode. Since you must set a positive value to enable a negative behaviour ("in-sensitive") you may guess that it is a later addition to the registry: in fact it was added after NT 5.0 (Windows 2000). Just make btsync query that key, or give advanced users an advanced option to retain actual names sent from case sensitive btsync peers.
  4. Porting apps from Android http://developer.blackberry.com/native/documentation/core/porting_from_android_ndk.html
  5. Perhaps BT developers should just add a configuration option for Win64 builds, for the "adventurous ones" or those who need exact replication and have peers which are case preserving AND case sensitive. @RomanZ It is not a matter of liking or not liking: since the protocol is intended to mirror, it is an incomplete protocol if each peer namespace capability is not propagated to the others, either to disable replication (because a node can't implement the exact namespace semantics of other peers in the replica set), or to ask user what to do/notify there are issues (to avoid overwriting files in case a peer is case sensitive and it is only case preserving: I know you create *.conflict, but that's inelegant and turns a replica into a mess for noobs).
  6. Imagine I want to use btsync to share a folder, but that folder does not actually exist. Well, it does not exist on a file system that btsync can scan and checksum. I'd like a way to tell btsync: create a new shared folder (that is, create a new key);don't care about the actual location on the local file system to bind that key to;ask me (the API client) about the folder structure, file enumeration, file content stream etc;I (the API client) will tell you when changes happen (file content changes, file creation, file deletion, file moving, ACL, ownership, ...);when the API client is not connected to btsync, handle the (virtual) folder as unavailable (just like now btsync does for disconnected USB drives). Same goal could be achieved by writing a virtual file system driver, but that's a major task for Linux/Windows, instead a way in btsync API to tell btsync that a (shared) folder is virtual and will depend on a user-mode application for all I/O could offer a portable way (for application-level developers) to share data without saving it in advance to a file system.
  7. Windows: actually NTFS is a case preserving file system and could have two or more files with the same name in the same folder just like most Unix file systems do (there's a specific flag to set, OBJ_CASE_INSENSITIVE, when calling NtCreateFile API, to enable POSIX semantics), but Explorer could then not handle them correctly.
  8. Unlikely that BT is purposely going to burn a (successful) product like btsync that could mark computer historywhen content distribution is a booming businesswhen NSA wiretapping is still hotly debatedwith enterprise market in mindjust for a naive and superficial approach to security.
  9. @GreatMarko Perhaps you could just post that same procedure in the New Features forum asking the developers to add a new per-folder action to "relocate a folder", that is exactly performing the step you kindly listed here. Just ask the user to select the target folder. @RomanZ Perhaps you could distinguish the case of a file in unknown state and a case of a file which requires performing some I/O toward a given peer. A file waits in the unknown state until the engine decides it should perform I/O. In other words, deciding if synchronization is required (chatting btsync instances, but not transferring actual data) is not synchronizing. Not yet at least. This could make things much more clear and apparent to most users.
  10. "Based on BTSync" means the application actively uses the BTSync APIs, doesn't it?
  11. Perhaps this is a feature for the paying users: install a Windows file system filter driver to track file changes in real time from kernel mode, instead of getting notifications in a user mode application. You could even move almost all btsync code to kernel mode, if you have developers that can do networking in kernel mode, and keep in user mode only the configuration/presentation components.
  12. For the backup... if you mean revision of files (history of files, whole life of a file etc.), you should probably put a btsync node over a storage which can do near-CDP, like snapshots in ZFS. FreeNAS, for instance, has official support for btsync. A single FreeNAS node with btsync and a properly set snapshot task will remember for you the history of a file/folder. If THAT node will fail, you won't loose the current contents of the folders, because the quorum is still 2 (the other nodes), but you will loose the whole history of files. Unless you set another FreeNAS box to receive the snaphosts created on the first one: this second ZFS box won't need to run btsync (that is it will be just a slave node to keep the history and won't be part of the replication-set defined by btsync).
  13. Well, the core idea and algorithms behind and inside btsync are those of RAID-1. In storage technology, you have a logical volume above two or three physical disks: write is performed wrinting to any disk the same information and waiting until all disks say "Written!"reading is performed bye reading from the disk that replies the fastername quorum or goal the number of disks (that is the number of distinct copies of your data that exist in the array)As soon as you share a (new) folder with btsync, you have what is called a degraded RAID-1 array. Think the folder is the single disk above. As soon as another instance of btsync connects to that folder (that is, you run btsync on another computer and add a folder for the key you shared on the first one) that turns the pair of folders into a logical RAID-1 array. You can add new btsync that connect to the same share, that is you can increase the quorum of that share as much as you like (actually there a hardwired limit of 50 directly connected btsync instances). So, what are (some of) the differences between a RAID controller and btsync? a RAID controller manages data to locally connected disks; btsync manages a (portion) of a local diska RAID contoller writes data usually in a synchronous way; btsync is completely asynchronousan array created by a RAID controller has a fixed goal/quorum for the data you write in that you set at creation time; btsync has a dynamic quorum, that can go up (when more computers join a share) and can go down (when computers disconnect from a share)a RAID controller performs a full rebuild of the array to get back to the fixed quorum/goal as soon as possible; btsync simply tries to update what changed asking for changes to any other newer copy of the missing/outdated data. In short, as soon as you have enough computers/nodes running btsync and joining the same share to match the quorum that fits your needs and synchronization is effective, you have a geographically distributed RAID array.
  14. Sorry, GreatMarko. My comment was neither in response to yours, nor to itsjustmatt's one. Intentionally not using automatic quotation, out of context, philosophic, and ironic. By means of juxtaposition of a question about HCI and an apparent double indirection, mathematical lingo, a smiley...). Damn serious was instead my suggestion about asking the user, at first run, about her/his skills: primer or advanced? Please, pass it to your usability/HCI team. Regards.
  15. itsjustmatt: "Sharing is the whole freaking point of the software, why would one hide the button to do that?" GreatMarko: "Menu -> Settings -> Advanced -> Use key" Me: QED GreatMarko, to be fair, what if I am given - say 10k - to consult about a radically new GUI technique similar to the following screenshot? ;-) http://s4.postimg.org/yh99su8rx/bts_startup_question.png IMHO, that should make quite happy both parties, Metro lovers, and KISS adepts.